kafka详解(02) - kafka_2.11-2.4.1安装部署

环境准备

下载安装包

官网下载地址:https://kafka.apache.org/downloads.html

2.4.1版本下载地址:https://archive.apache.org/dist/kafka/2.4.1/kafka_2.11-2.4.1.tgz

Kafka安装包版本使用scala_2.11的版本,即kafka_2.11-kafka版本号.tgz的安装包,经测试scala_2.12的版本在增加topic时非常的慢,具体原因未定位, scala_2.13版本的未测试过

集群规划

hadoop102

hadoop103

hadoop104

zk

zk

zk

kafka

kafka

kafka

Zookeeper环境

Kafka集群需要依赖zookeeper环境,zookeeper安装请参考文档《Zookeeper详解(02) - zookeeper安装部署-单机模式-集群模式》

集群部署

上传解压

将安装包kafka_2.11-2.4.1.tgz上传到服务器的/opt/software并解压到指定目录

[hadoop@hadoop102 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/

修改解压后的文件夹名称

[hadoop@hadoop102 software]$ cd /opt/module/

[hadoop@hadoop102 module]$ mv kafka_2.11-2.4.1/ kafka

在/opt/module/kafka目录下创建logs文件夹

[hadoop@hadoop102 module]$ cd kafka/

[hadoop@hadoop102 kafka]$ mkdir logs

修改配置文件

[hadoop@hadoop102 kafka]$ cd config/

[hadoop@hadoop102 config]$ vi server.properties

修改以下内容:

#broker的全局唯一编号,不能重复

broker.id=0

#删除topic功能使能,当前版本此配置默认为true,已从配置文件移除

delete.topic.enable=true

#处理网络请求的线程数量

num.network.threads=3

#用来处理磁盘IO的线程数量

num.io.threads=8

#发送套接字的缓冲区大小

socket.send.buffer.bytes=102400

#接收套接字的缓冲区大小

socket.receive.buffer.bytes=102400

#请求套接字的缓冲区大小

socket.request.max.bytes=104857600

#kafka运行日志存放的路径

log.dirs=/opt/module/kafka/logs

#topic在当前broker上的分区个数

num.partitions=1

#用来恢复和清理data下数据的线程数量

num.recovery.threads.per.data.dir=1

#segment文件保留的最长时间,超时将被删除

log.retention.hours=168

#配置连接Zookeeper集群地址,zookeeper的host必须要用主机名或hosts中配置的映射,不能直接使用ip地址,直接使用ip会出现无法连接的现象

zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

分发安装包

[hadoop@hadoop102 module]$ scp -r kafka/ hadoop103:/opt/module/

[hadoop@hadoop102 module]$ scp -r kafka/ hadoop104:/opt/module/

配置环境变量(可选)

sudo vim /etc/profile

#KAFKA_HOME

export KAFKA_HOME=/opt/module/kafka

export PATH=$PATH:$KAFKA_HOME/bin

立即生效

source /etc/profile

修改hadoop103和hadoop104上的broker.id

分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的broker.id=1、broker.id=2

集群中每个节点的broker.id不得重复

集群启停

先启动Zookeeper集群

[hadoop@hadoop102 module]$ myzookeeper.sh start

依次在hadoop102、hadoop103、hadoop104节点上启动kafka

[hadoop@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

[hadoop@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

[hadoop@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

查看进程

[hadoop@hadoop102 kafka]$ jpsall

=============== hadoop102 ===============

1237 QuorumPeerMain

1610 Kafka

=============== hadoop103 ===============

1236 QuorumPeerMain

1612 Kafka

=============== hadoop104 ===============

1603 Kafka

1236 QuorumPeerMain

停止kafka集群

[hadoop@hadoop102 kafka]$ bin/kafka-server-stop.sh stop

[hadoop@hadoop103 kafka]$ bin/kafka-server-stop.sh stop

[hadoop@hadoop104 kafka]$ bin/kafka-server-stop.sh stop

kafka群起脚本

[hadoop@hadoop102 kafka]$ vi /home/hadoop/bin/mykafka.sh

添加如下内容

#!/bin/bash

if [ $# -lt 1 ]

then

echo "Input Args Error....."

exit

fi

for i in hadoop102 hadoop103 hadoop104

do

case $1 in

start)

echo "==================START $i KAFKA==================="

ssh $i /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties

;;

stop)

echo "==================STOP $i KAFKA==================="

ssh $i /opt/module/kafka/bin/kafka-server-stop.sh stop

;;

*)

echo "Input Args Error....."

exit

;;

esac

done

添加可执行权限

[hadoop@hadoop102 kafka]$ chmod +x /home/hadoop/bin/mykafka.sh

使用脚本启动kafka集群

[hadoop@hadoop102 kafka]$ mykafka.sh start

使用脚本停止kafka集群

[hadoop@hadoop102 kafka]$ mykafka.sh stop

Kafka基础命令行操作

1)创建topic

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic test

选项说明:

--topic 定义topic名

--replication-factor 定义副本数

--partitions 定义分区数

2)查看当前服务器中的所有topic

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list

3)向topic中发送消息

[hadoop@hadoop102 kafka]$ bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic test

>hello kafka

>hello hadoop

4)从指定topic消费消息

从此刻最新发送到消息开始消费

[hadoop@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic test

加--from-beginning:会把主题中现有的所有的数据都读取出来

[hadoop@hadoop102 kafka]$ bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic test

5)查看某个Topic的详情

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe –-topic test

6)修改分区数

bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter –-topic test --partitions 6

7)删除topic

[hadoop@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic test

kafka详解(02) - kafka_2.11-2.4.1安装部署的更多相关文章

  1. 《算法详解:C++11语言描述》已出版

    经过漫长的编写.修订和印刷过程,书籍<算法详解:C++11语言描述>终于出版了!目前本书已在各大电商平台上架,搜索书名即可找到对应商品.本书的特色在于: 介绍最新的C++11.C++14和 ...

  2. Kafka 详解(二)------集群搭建

    这里通过 VMware ,我们安装了三台虚拟机,用来搭建 kafka集群,虚拟机网络地址如下: hostname                      ipaddress             ...

  3. Kafka详解与总结(一)

    1. Kafka概述 1.1. 消息队列 1)点对点模式(一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推 ...

  4. Linux用户、用户组权限管理详解 --- 02

    2,用户.用户组管理操作详解: 2.1 adduser 添加用户: adduser [-u uid][-g group][-d home][-s shell] -u:直接给出userID        ...

  5. [转]kafka详解

    一.入门     1.简介     Kafka is a distributed,partitioned,replicated commit logservice.它提供了类似于JMS的特性,但是在设 ...

  6. 大数据入门第十七天——storm上游数据源 之kafka详解(一)入门与集群安装

    一.概述 1.kafka是什么 根据标题可以有个概念:kafka是storm的上游数据源之一,也是一对经典的组合,就像郭德纲和于谦 根据官网:http://kafka.apache.org/intro ...

  7. (转)kafka 详解

    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的 ...

  8. 大数据入门第十七天——storm上游数据源 之kafka详解(二)常用命令

    一.kafka常用命令 1.创建topic bin/kafka-topics. --replication-factor --zookeeper mini1: // 如果配置了PATH可以省略相关命令 ...

  9. kafka详解

    一.基本概念 介绍 Kafka是一个分布式的.可分区的.可复制的消息系统.它提供了普通消息系统的功能,但具有自己独特的设计. 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统术语:Kafk ...

  10. Kafka详解六:Kafka如何通过源码实现监控

    问题导读: 1.kafka的消费者组的消费偏移存储,kafka支持两个版本?        2.ConsumerOffsetChecker类的作用是什么?        3.Kafka如何通过源码实现 ...

随机推荐

  1. AgileBoot - 手把手一步一步带你Run起全栈项目(SpringBoot+Vue3)

    AgileBoot是笔者在业余时间基于ruoyi改造优化的前后端全栈项目. 关于AgileBoot的详细介绍:https://www.cnblogs.com/valarchie/p/16777336. ...

  2. Linux根据时间过滤文件

    1.显示20分钟前的文件:       find /sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec ls -l {} \; 2.删除20分钟 ...

  3. day01-3-界面显示&用户登录&餐桌状态显示

    满汉楼01-3 4.功能实现02 4.2菜单界面显示 4.2.1功能说明 显示主菜单.二级菜单和退出系统功能 4.2.2代码实现 先搭建界面显示的大体框架,具体的功能后面再实现 创建MHLView类: ...

  4. ansible应用之安装elk框架

    最近在学习ansible,先大致看了下视频,现在需要练习使用了.对照视频中的练习方式,我觉得用处也不是太大,正好现在还要学习elk,以集群方式部署es,需要执行一些批量命令,而且还有一些修改配置文件的 ...

  5. numpy常用知识点备忘(2)

    x.ravel() 和 x.flatten() : 将多为数组降维到1维.ravel()返回元素的引用(对象不一样,但是元素是引用),flatten()返回新的元素. np.meshgrid(x, y ...

  6. Python基础之模块:7、项目开发流程和项目需求分析及软件开发目录

    一.项目开发流程 1.项目需求分析 明确项目具体功能: 明确到底要写什么东西,实现什么功能,在这个阶段的具体要询问项目经理和客户的需求 参与人员: 产品经理.架构师.开发经理 技术人员主要职责: 引导 ...

  7. 想开发DAYU200,我教你

    摘要:本文主要介绍OpenHarmony富设备DAYU200开发板的入门指导. 本文分享自华为云社区<DAYU200开发指导>,作者: 星辰27. 1 概述 DAYU200开发板属于Ope ...

  8. 解决vue中对象属性改变视图不更新的问题

    在使用VUE的过程中,会遇到这样一种情况, vue data 中的数据更新后,视图没有自动更新. 这个情况一般分为两种, 一种是数组的值改变,在改变数组的值的是时候使用索引值去更改某一项,这样视图不会 ...

  9. OpenMP 教程(一) 深入人剖析 OpenMP reduction 子句

    OpenMP 教程(一) 深入人剖析 OpenMP reduction 子句 前言 在前面的教程OpenMP入门当中我们简要介绍了 OpenMP 的一些基础的使用方法,在本篇文章当中我们将从一些基础的 ...

  10. 查看服务器出口ip

    [root@iZap201hv2fcgry1alvbznZ ~]# curl cip.cc IP : xxx.xxx.xx.xx 地址 : 中国 浙江 绍兴 运营商 : 移动 数据二 : 浙江省绍兴市 ...