配置kafka之前首先要配好JDK
然后配置zookeeper
2、安装
kafka
下载地址:
http://kafka.apache.org/
3、设置环境变量
【单机测试】:
首先修改环境变量:
KAFKA_HOME=/usr/local/adsit/yting/apache/kafka/kafka_2.9.2-0.8.1.1
PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$HIVE_HOME/bin:$MAVEN_HOME/bin:$MAHOUT_HOME/bin:$SCALA_HOME/bin:$STORM_HOME/bin:$REDIS_HOME/bin:$FLUME_HOME/bin:$KAFKA_HOME/bin
cd进入安装目录: /kafka_2.9.2-0.8.1.1
1、
启动zookeeper:
(自带的zookeeper)
# bin/zookeeper-server-start.sh config/zookeeper.properties &
2、
启动kafka server
# bin/kafka-server-start.sh config/server.properties &
3、
创建topic
# bin/kafka-topics.sh --create --zookeeper
localhost:2181 --replication-factor 1 --partitions 1 --topic test &
(注意此时主机名应该改成localhost,否则无法找到主机)
4、
列出topic
# bin/kafka-topics.sh --list --zookeeper localhost:2181
5、
新开一个终端运行producer并发送消息
# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
在下面随意输入消息(enter即发送);(按ctrl+z结束发送。)
6、
新开一个终端运行consumer接收消息
# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
成果:在一个producer和一个consumer条件下,主要实现以下功能
1、创建topic
2、producer发送message
3、consumer接收message
【集群测试】
修改hostname:# sudo gedit /etc/
hostname
修改三个主机的hostname分别为:m1 m2 m3
然后重启
修改hosts文件:# sudo gedit /etc/
hosts
192.168.23.128 m1
192.168.23.135 m2
192.168.23.136 m3
每一个主机修改kafka中
config/server.properties
broker.id=1 (不同主机boker.id不同)
port=9092
host.name=m1(根据不同的主机的hostname设置)
advertised.host.name=m1(
根据不同的主机的hostname设置
)
log.dirs=/home/hadoop/kafka_2.9.2-0.8.1.1/kafka-logs
zookeeper.connect=m1:2181,m2:2181,m3:2181
1、在每个机器上启动zookeeper(zookeeper-3.4.6)下面以m1为例子:
# zkServer.sh start
3、查看启动状态
# zkServer.sh status
2、在每个机器上启动kafka server
# /home/hadoop/kafka_2.9.2-0.8.1.1/bin/kafka-server-start.sh /home/hadoop/kafka_2.9.2-0.8.1.1/config/server.properties &
3、在m1上创建topic
# /home/hadoop/kafka_2.9.2-0.8.1.1/bin/kafka-topics.sh --create --topic test --replication-factor 3 --partitions 2 --zookeeper m1:2181
4、在m1上查看topic
# /home/hadoop/kafka_2.9.2-0.8.1.1/bin/kafka-topics.sh --list --zookeeper m1:2181
5、在m2上发消息到kafka,(m2模拟producer)
# /home/hadoop/kafka_2.9.2-0.8.1.1/bin/kafka-console-producer.sh --broker-list m1:9092 --sync --topic test
6、在m3上查看消息,(m3模拟consumer)
# /home/hadoop/kafka_2.9.2-0.8.1.1/bin/kafka-console-consumer.sh --zookeeper m1:2181 --topic test --from-beginning