安装部署(六) Kafka集群安装部署以及Producer和Consumer的JAVA代码测试

本文档介绍了如何安装部署Kafka集群,并提供了Producer和Consumer的JAVA代码进行测试。使用环境为Spark 2.0.0,Scala 2.11.8,JDK 1.8.0_101。
摘要由CSDN通过智能技术生成
Kafka集群安装部署以及Producer和Consumer的JAVA代码测试


kafka scala2.11_0.10.0.0
ubuntu 14.04.04 x64
hadoop 2.7.2

spark 2.0.0

scala 2.11.8

jdk 1.8.0_101

zookeeper 3的集群安装参考spark安装部署中的相应部分。


1、下载
二进制包
https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz


2、解压
root@py-server:/server# tar xvzf kafka_2.11-0.10.0.0.tgz 
root@py-server:/server# mv kafka_2.11-0.10.0.0/ kafka/


3、环境变量
vi ~/.bashrc
export KAFKA_HOME=/server/kafka
export PATH=$PATH:$KAFKA_HOME/bin
source ~/.bashrc


4、配置文件
config/server.properties
root@py-server:/server/kafka/config# vi server.properties 
参考:
http://blog.csdn.net/z769184640/article/details/51585419
# 唯一标识一个broker.
broker.id=0
#绑定服务监听的地址和端口,要填写hostname -i 出来的地址,否则可能会绑定到127.0.0.1,producer可能会发不出消息
listeners=PLAINTEXT://10.1.1.6:9092


#advertised.listeners=PLAINTEXT://your.host.name:9092
advertised.listeners=PLAINTEXT://10.1.1.6:9092
【不设置会出现3tries链接错误】






#存放日志和消息的目录,可以是用逗号分开的目录,同样不推荐使用/tmp【此处没改动,我的还是tmp】
log.dirs=/usr/local/services/kafka/kafka-logs
#每个topic默认partitions的数量,数量较大表示消费者可以有更大的并行度。
num.partitions=2
#Zookeeper的连接配置,用逗号隔开,也可以用10.1.1.6:2181/kakfa这样的方式指定kafka数据在zk中的根目录
zookeeper.connect=10.1.1.6:2181,10.1.1.11:2181,10.1.1.12:2181,10.1.1.13:2181,10.1.1.14:2181


5、分发
拷贝到其他机上
root@py-server:/server# scp -r kafka/ root@10.1.1.11:/server/
root@py-server:/server# scp -r kafka/ root@10.1.1.12:/server/
root@py-server:/server# scp -r kafka/ root@10.1.1.13:/server/
root@py-server:/server# scp -r kafka/ root@10.1.1.14:/server/


修改11-14的环境变量和配置文件,改动的地方如下:
broker.id=1~4[另外四台]
listeners=PLAINTEXT://10.1.1.11~14[另外四台]:9092


6、启动


首先,启动zookeeper集群,启动方法参考spark安装部署那一篇。


然后,再启动每个kafka节点


root@py-server:/server/kafka# ./bin/kafka-server-start.sh -daemon config/server.properties
root@py-11:/server/kafka# ./bin/kafka-server-start.sh -daemon config/server.properties
root@py-12:/server/kafka# ./bin/kafka-server-start.sh -daemon config/server.properties
root@py-13:/server/kafka# ./bin/kafka-server-start.sh -daemon config/server.properties
root@py-14:/server/kafka# ./bin/kafka-server-start.sh -daemon config/server.properties
-daemon放在后台运行。 
【注意:不要直接用kafka-server-start.sh -daemon config/server.properties】
可见:
root@py-14:/server/kafka# jps
1203 Kafka
551 DataNode
2124 Jps
701 NodeManager
911 Worker
28063 SparkSubmit
383 QuorumPeerMain
root@py-14:/server/kafka# 
其他机一样
root@py-server:/server/kafka# jps
18592 NodeManager
7456 Main
18867 Worker
9780 Kafka
17894 DataNode
18073 SecondaryNameNode
18650 Master
17499 QuorumPeerMain
9837 Jps
18269 ResourceManager
17725 NameNode


7、测试


7.1 测试单机topic


7.1.1 创建一个topic名为my-test
root@py-server:/server/kafka# bin/kafka-topics.sh --create --zookeeper 10.1.1.6:2181 --replication-factor 3 --partitions 1 --topic my-test
Created topic "my-test".
#replication-factor是备份数
#partition是分区数


7.1.2 发送消息,ctrl+c终止
root@py-server:/server/kafka# bin/kafka-console-producer.sh --broker-list 10.1.1.6:9092 --topic my-test
今天是个好日子
hello
^Croot@py-server:/server/kafka#


7.1.3 另一台机器上消费消息
root@py-11:/server/kafka# bin/kafka-console-consumer.sh --zookeeper 10.1.1.11:2181 --from-beginning --topic my-test
今天是个好日子
hello
^CProcessed a total of 2 messages
root@py-12:/server/kafka# bin/kafka-console-consumer.sh --zookeeper 10.1.1.12:2181 --from-beginning --topic my-test
今天是个好日子
hello
^CProcessed a total of 2 messages
root@py-12:/server/kafka# 
root@py-server:/server/kafka# bin/kafka-console-consumer.sh --zookeeper 10.1.1.6:2181 --from-beginning --topic my-test
今天是个好日子
hello
^CProcessed a total of 2 messages
root@py-server:/server/kafka# 
其他机一样


继续发送消息则在消费者终端会一直出现新产生的消息。


7.2 查看主题详细
root@py-server:/server/kafka/bin# ./kafka-topics.sh --describe --zookeeper 10.1.1.6:2181 --topic my-test 
Topic:my-test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-test Partition: 0 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
root@py-14:/server/kafka# bin/kafka-topics.sh --describe --zookeeper 10.1.1.6:2181 --topic my-test 
Topic:my-test PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-test Partition: 0 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2


7.3 用zookeeper查询
root@py-14:/server/zookeeper/bin# $ZOOKEEPER_HOME/bin/zkCli.sh
WATCHER::


WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] 
登录成功
[zk: localhost:2181(CONNECTED) 1] ls /
[controller, controller_epoch, brokers, zookeeper, admin, isr_change_notification, consumers, config]
[zk: localhost:2181(CONNECTED) 2] ls /brokers
[ids, topics, seqid]
[zk: localhost:2181(CONNECTED) 3] ls /brokers/ids
[0, 1, 2, 3, 4]
[zk: localhost:2181(CONNECTED) 4] ls /brokers/ids/0
[]
[zk: localhost:2181(CONNECTED) 5] ls /brokers/topics
[my-test]
[zk: localhost:2181(CONNECTED) 6] ls /brokers/topics/test/partitions
Node does not exist: /brokers/topics/test/partitions
[zk: localhost:2181(CONNECTED) 7] ls /brokers/topics/my-test/partitions
[0]
[zk: localhost:2181(CONNECTED) 8] 


8、关闭kafka
pkill -9 -f server.properties


9、应用
参考:
0.10.0.0 
方法和0.8有所不同,不能用0.8.x的例子
http://blog.csdn.net/louisliaoxh/article/details/51577117 主要
http://www.cnblogs.com/fxjwind/p/5646631.html 主要
http://kafka.apache.org/0100/javadoc/index.html?org/apache/kafka/clients/producer/KafkaProducer.html
0.8.x 参考
http://chengjianxiaoxue.iteye.com/blog/2190488
http://www.open-open.com/lib/view/open1407942131801.html
http://blog.csdn.net/z769184640/article/details/51585419
http://wenku.baidu.com/view/7478cab24431b90d6d85c703.html?from=search
高阶:
http://blog.csdn.net/hxpjava1/article/details/19160665
http://orchome.com/11
【注意:网上的代码基本上都是缺这少
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值