Kafka集群搭建


环境准备


1. kafka安装包上传到服务器并解压

[hadoop@hadoop01 ~]tar -zxvf /opt/soft/kafka_2.11-0.10.2.1.tgz -C /opt/apps/

2. 进入kafka的config目录下,修改server.properties文件

[hadoop@hadoop01 ~]$ cd /opt/apps/kafka_2.11-0.10.2.1/config/
[hadoop@hadoop01 config]$ vim server.properties

broker.id=1
host.name=192.168.42.101
log.dirs=/opt/data/kafka
zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181

说明:

  • 只修改列出的4个配置即可,其余保持默认
  • host.name这个配置在原来的文件中没有,需要自己添加,而且建议写成IP地址而不是主机名,这个配置在Kafka单节点或者伪分布式集群中不需要配置
  • broker.id在每个节点上是唯一的,我设置的hadoop01的broker.id=1,hadoop02的broker.id=2,hadoop03的broker.id=3
  • log.dirs指定的kafka中的数据的存放位置,默认的tmp目录会定期清空,所以需要修改,而且指定的目录需要在启动kafka集群之前创建好
  • zookeeper.connect如果不指定,将使用kafka自带的zookeeper

3. 分发安装包

[hadoop@hadoop01 apps]$ scp -r kafka_2.11-0.10.2.1 hadoop03:`pwd`

4. 分别修改hadoop02和hadoop03的broker.id和host.name

5. 在每个节点下创建log.dirs指定的目录

6. 启动zookeeper服务

[hadoop@hadoop01 ~]$ zkServer.sh start
[hadoop@hadoop02 ~]$ zkServer.sh start
[hadoop@hadoop03 ~]$ zkServer.sh start

7. 在3个节点上都启动kafka

[hadoop@hadoop01 kafka_2.11-0.10.2.1]$ bin/kafka-server-start.sh -daemon config/server.properties
[hadoop@hadoop02 kafka_2.11-0.10.2.1]$ bin/kafka-server-start.sh -daemon config/server.properties
[hadoop@hadoop03 kafka_2.11-0.10.2.1]$ bin/kafka-server-start.sh -daemon config/server.properties

# -daemon选项的意思是后台启动服务

8. 验证kafka服务是否启动

9. 测试kafka集群

(1) 在任意节点上创建"test01"这个topic

[hadoop@hadoop01 kafka_2.11-0.10.2.1]$ bin/kafka-topics.sh \
--create \
--zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 \
--replication-factor 1 \
--partitions 1 \
--topic test01

(2) 在hadoop01上开启kafka-console-producer,往test01这个topic中写数据

[hadoop@hadoop01 kafka_2.11-0.10.2.1]$ bin/kafka-console-producer.sh 
--broker-list hadoop01:9092,hadoop02:9092,hadoop03:9092 \
--topic test01

(3) 在另一台节点上开启kafka-console-consumer把hadoop01节点接受到的数据打印出来

[hadoop@hadoop02 kafka_2.11-0.10.2.1]$ bin/kafka-console-consumer.sh \
--zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 \
--topic test01 \
--from-beginning

Kafka集群搭建成功!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习之tensorflow实战篇

windows下mysql忘记root密码,如何重设密码

添加windows下mysql服务 以管理员身份打开cmd,执行 mysqld --install net stop mysql # 忘记密码找回 找到mysq...

35550
来自专栏运维小白

增加网卡注意点

在虚拟机增加一个新的网卡之后,并设置为仅主机模式 开启虚拟机,用ifconfig命令,查看是否已经加载了网卡——>安装ifconfig包:yum install...

24280
来自专栏about云

如何通过官网查找hadoop、hbase、hive版本兼容信息

问题导读 1.如何查看hbase与hadoop的兼容? 2.hive是否与所有hadoop兼容? 3.hadoop2.7.1 hbase1.2.x hive...

45680
来自专栏黑白安全

msf学习笔记

root@kali:~# service postgresql start  ##启动pgsql数据库(5432接口未启动状态【netstat -pantu |...

9010
来自专栏Aloys的开发之路

Unix/Linux操作系统中如何在sqlplus/rman中使用方向键

默认情况下在Unix/Linux中使用Oracle的sqlplus/rman是无法使用↑↓←→几个方向键进行操作的,要想达到Windows下使用sqlplus/...

22160
来自专栏自由而无用的灵魂的碎碎念

Java中有Package的类如何编译运行

最近看《java编程思想》的时候,使用javac编译了一下带package的java文件,可惜运行失败了。

12840
来自专栏运维小白

克隆虚拟机的注意点

在虚拟机中的 “管理”——>克隆虚拟机 更改虚拟机的IP,配置文件为 /etc/sysconfig/network-scripts/ifcfg-ens32 中 ...

21190
来自专栏测试文章

当影响范围内Nginx默认配置文件中开启缓存

当影响范围内Nginx默认配置文件中开启缓存功能时,攻击者可以通过发送包含恶意构造 range 域的 header 请求,来获取响应中的缓存文件头部信息。在某些...

210110
来自专栏编程思想之路

Android6.0之修改或者查看系统属性值

系统属性值存在于system.prop文件中,也有一些存在于settings中 1,查看settingsprovider中的值的方法 命令为adb shell ...

50750
来自专栏运维技术迷

HTTP响应可视化测试工具-httpstat

httpstat是一款可以测试http状态的可视化工具,通过这个工具可以看出来http响应信息。包括dns解析、tcp连接等信息,httpstat一共有gola...

41080

扫码关注云+社区

领取腾讯云代金券