目录
Kafka 集群规划
一.Zookeeper集群准备
1.下载
2.解压并修改目录名称
3. 创建data和dataLog目录
4. 创建myid文件
5. 修改配置文件zoo.cfg
6.赋权
7.把修改的zookeeper目录复制到另外两个节点上
8.启动和测试集群
9.故障排查
二.安装Kafka
1.下载
2.解压
3.修改配置文件
4.将 kafka 目录 分发到另外两台服务器上
5.启动集群
6.验证
Zookeeper集群共三台服务器,分别为:node1、node2、node3。
Kafka集群共三台服务器,分别为:node1、node2、node3。
jdk 1.8+ 没安装的点这里 教程
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
wget https://downloads.apache.org/zookeeper/zookeeper-3.6.0/apache-zookeeper-3.6.0-bin.tar.gz
1)解压
tar -xvf apache-zookeeper-3.6.0-bin.tar.gz
2)修改名称
mv apache-zookeeper-3.6.0-bin apache-zookeeper-3.6.0
mkdir /opt/apache-zookeeper-3.6.0/data
mkdir /opt/apache-zookeeper-3.6.0/dataLog
1)进入data 目录
cd /opt/apache-zookeeper-3.6.0/data
2)编辑文件内容 1 即可。第二个节点输入2,第三个节点输入3
echo 1 >myid
1) 进入 conf 目录
cd /opt/apache-zookeeper-3.6.0/conf
2)复制配置文件
cp zoo_sample.cfg zoo.cfg
3)zoo.cfg 在文件末尾添加以下内容
1)编辑 zoo.cfg
vim zoo.cfg
2)添加以下内容
dataDir=/opt/apache-zookeeper-3.6.0/data
dataLogDir=/opt/apache-zookeeper-3.6.0/dataLog
server.1=192.168.10.11:2888:3888
server.2=192.168.10.12:2888:3888
server.3=192.168.10.13:2888:3888
server 可以写主机名,但是要在hosts文件做映射,否则不会生效。
对zookeeper的目录进行授权
chmod 777 -R /opt/apache-zookeeper-3.6.0
scp -r apache-zookeeper-3.6.0 [email protected]:/opt/
scp -r apache-zookeeper-3.6.0 [email protected]:/opt/
分发后别忘了修改data目录下的myid文件中的内容,也给从节点的zookeeper目录赋权
/opt/apache-zookeeper-3.6.0/bin/zkServer.sh start
2.查看状态
/opt/apache-zookeeper-3.6.0/bin/zkServer.sh status
一个Leader 两个 follower
[root@hdp-01 conf]# /opt/apache-zookeeper-3.6.0/bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.6.0/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
1) 若出现启动失败,可查看日志
/opt/apache-zookeeper-3.6.0/bin/zkServer.sh start-foreground
2)大多数的问题都是配置文件的问题,注意在配置文件中一定不要有多余的空格!!!!
http://kafka.apache.org/downloads.html
tar -xvf kafka_2.13-2.5.0.tgz
vim /opt/kafka_2.13-2.5.0/config/server.properties
1)修改 broker.id=1 与上面配置的zookeeper myid 保持一致
2)修改 zookeeper.connect 为三台机器的ip,用逗号隔开
scp -r kafka_2.13-2.5.0 [email protected]:/opt/
scp -r kafka_2.13-2.5.0 [email protected]:/opt/
并分为修改 broker.id 为2 、3
1)启动kafka集群前先启动zookeeper集群
2)进入kafka 目录下,执行以下命令 启动kafka 集群
如果出现 commit_memory(0x00000000c0000000, 1073741824, 0) failed 错误,kafka默认启动内存为1G,可以在配置文件中修改
vim bin/kafka-server-start.sh
后台运行启动方式
./bin/kafka-server-start.sh -daemon config/server.properties &
将默认配置 export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 修改为 export KAFKA_HEAP_OPTS="-Xmx512M -Xms512M"
再次启动即可。
启动成功!
1)创建topic–test
./bin/kafka-topics.sh --create --zookeeper 192.168.10.11:2181, 192.168.10.12:2181, 192.168.10.13:2181 --replication-factor 3 --partitions 3 --topic test
2)查看已经创建的 topic 列表
./bin/kafka-topics.sh --list --zookeeper localhost:2181
3)在master启动生产者(任意一台)
./bin/kafka-console-producer.sh --broker-list 192.168.10.11:9092,192.168.10.12:9092,192.168.10.13:9092 --topic test
4)在另外两台服务器其中之一启动消费者
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.10.11:9092,192.168.10.12:9092,192.168.10.13:9092 --from-beginning --topic test
5)生产者的服务器输入内容,消费者服务器就会显示
生产者
[root@hdp-01 kafka_2.13-2.5.0]# ./bin/kafka-console-producer.sh --broker-list 192.168.10.11:9092,192.168.10.12:9092,192.168.10.13:9092 --topic test
>hello world!
消费者
[root@hdp-02 kafka_2.13-2.5.0]# ./bin/kafka-console-consumer.sh --bootstrap-server 192.168.10.11:9092,192.168.10.12:9092,192.168.10.13:9092 --topic test
hello world!
到此,整个kafka 搭建成功,若有问题错误,欢迎提问指正!