您的位置:首页 > 其它

搭建kafka集群

2016-07-26 20:59 351 查看
创建kafka集群

集群规划:1)由于我们使用的是自己的zookeeper进行节点之间的通信,搭建kafka前,zookeeper集群运行。在搭 建kafka之前,我让hadoop集群和zookeeper集群都运行。

2)十二个节点全部用上,由于kafka没有主节点,topic是随机分配的。

搭建前:上网查看资料可以知道,kafka的搭建并不麻烦。麻烦的是调优。

搭建kafka需要配置的有:

1)环境变量 KAFKA_HOME PATH

2)kafka的配置文件server.properties 需要配置broker.id、hostname、log.dirs、zookeeper.connect

开始搭建:

1、下载kafka压缩文件,并重命名

tar xfz kafka_2.11-0.8.2.2.tgz #这里我解压到/usr/local/下

mv kafka_2.11-0.8.2.2 kafka-2.11 #重命名

2、配置文件

1)在文件server.properties里修改

broker.id= #整数,建议根据ip区分。只要集群中这个数不重复就行了,

m1、m2、rm1、rm2、d1、d2、d3、d4、d5、d6、s1、s2分别对应

1 2 3 4 5 6 7 8 9 10 11 12

log.dirs=/usr/local/kafka-2.11/kafka-data #建立文件夹kafka-data,并在这指明其路径

host.name=m1 #在不同的节点上写不同的名字,eg:在节点m1上写m1

advertised.host.name=m1 #在不同的节点上写不同的名字,eg:在节点m1上写m1

socket.send.buffer.bytes=1048576 #socket的发送缓冲区,原来为100*1024

socket.receive.buffer.bytes=1048576 #socket的接收缓冲区,原来为100*1024

socket.request.max.bytes=104857600 #这个值没变,以后需要调的话再说

zookeeper.connect=d1:2181,d2:2181,d3:2181,d4:2181,d5:2181

注意:更改不同的节点的broker.id和hostname

2)启动kafka

在每台机器上执行: bin/kafka-server-start.sh -daemon config/server.properties &

尾部加上&的作用是可以启动完之后直接按 回车 退出,继续下一步操作。

关闭kafka

在每台机器上执行: bin/kafka-server-start.sh config/server.properties &

3)
创建topic

bin/kafka-topics.sh --create --zookeeper d3:2181,d1:2181,d2:2181,d4:2181,d5:2181 --replication-factor 1 --partitions 1 --topic test

4) 查看Topic

bin/kafka-topics.sh --list --zookeeper d3:2181,d1:2181,d2:2181,d4:2181,d5:2181

5) producer发送消息(假设我们在m1上,开一个终端,发送消息至kafka(m1模拟producer))

bin/kafka-console-producer.sh --broker-list m1:9092 --topic test ##这里的m1可以是任何节点名称

在发送消息的终端输入:Hello Kafka

6)consumer接收消息 (假设我们在m2上,开一个终端,显示消息的消费(m2模拟consumer))

bin/kafka-console-consumer.sh --zookeeper d3:2181,d1:2181,d2:2181,d4:2181,d5:2181 --topic test --from-beginning

“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“” 2016.07.27

kafka集群已经搭建好,今天改了配置两个地方,一个是hostname等号后面换成了主机的IP,另一个advertised.host.name=的值也是换成了对应的主机IP

另外,producer发送消息,通过更改指令中的 m1:9092,已经可以工作。

“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“‘’”

2016.07.28

今天早上起来发现昨天kafka集群的进程全部死掉。

在网上查找相关资料,有个这样一个“在控台启动了kafka之后,关闭控台后,集群就也关闭了“”

答案是:开启kafka的命名中加上 -daemon 就行了,即

bin/kafka-server-start.sh -daemon config/server.properties &

ok ,刚才重启了下终端,jps查看进程。kafka进程还在。问题解决

又来问题了,我之前一直是在创建topic,但是从没有删除过,删除命令我并不知道,查了下

删除命令是bin/kafka-topics.sh --zookeeper d1:2181,d2:2181,d3:2181,d4:2181,d5:2181 --topic topicname --delete

但是呢,出现这样的提示

Topic test is marked for deletion.
#这里test是我创建的topic名字

Note: This will have no impact if delete.topic.enable is not set
to true.

解决办法:通过在配置文件sever.property中添加delete.topic.enable=true,然后重启kafka集群,就可以了完全删除
了。查看topic时,已经不能看到删除的topic了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: