1、打开ambari的首页,如:http://ip:8080/,默认账号和密码都是admin,进行登录。
2、点击左下角的Action,添加服务 Add Service ,勾选kafka ,如下图
3、按下一步下一步的步骤添加了几个工作节点的ip地址,然后进行下载安装,等待安装完毕后,选择Service Actions--->start 启动
4、启动完后,就可以往kafka推送消息,推送消息的时候是在不同的机器上进行推送,出现推送的异常。
[2017-08-22 15:04:34,018] ERROR support.LoggingProducerListener: Exception thrown when sending a message with key='3' and payload='{"id":"3","data":"hello world“”}' to topic topic_test,
名称 | 说明 | 有效值 |
listeners | 监听列表(以逗号分隔 不同的 协议(如plaintext,trace,ssl、 不同的IP和端口)),hostname 如果设置为0.0.0.0则绑定所 有的网卡地址;如果hostname 为空则绑定默认的网卡。 如果 没有配置则默认为 java.net .InetAddress .getCanonicalHostName() | 如:PLAINTEXT: //myhost: 9092, TRACE://: 9091 或 PLAINTEXT: //0.0.0.0 :9092, |
最后排查出原因是kafka的listeners默认设置的localhost,导致其他主机在访问broker的ip无法访问,解决办法是在对每台安装kafaka的节点各自设置自己的ip:port或者主机名:port。
如下图所示。
5、通过命令订阅数据频道topic_test,可以接收到数据,订阅命令如下:
./kafka-console-consumer.sh --topic topic_test --zookeeper ip:2181 --from-beginning
查看所有topic的列表命令如下:
./kafka-topics.sh --list --zookeeper ip:2181
6、由于推送主题频道的消息结构变更了,Consumer消费客户端在订阅主题频道的时候无法接收到往该频道推送的消息,查看group的设置的也是唯一的,之后删除了
Zookeeper的所有topic,重新启动连接kafka推送与订阅,订阅主题频道的数据接收恢复正常。删除Zookeeper的命令如下:
zookeeper-client
rmr /brokers/topics
注释:怀疑是否是groupid的问题,但又因为kafka的borker的每个分区只能被同个组group的一个消费者订阅,可又因为没修改Kafka的borker的pation.num的分区数,kafka的默认分区数是1