介绍
- Kafka 作为一个消息中间框架,负责在业务高峰时期降低流式处理的压力,也对相应的业务数据进行短期的高容错保存,现在已然成为一个成熟的分布式流式消息处理平台。
部署Zookeeper
- kafka的使用需要协调服务zookeeper的支持,并将kafka的元数据储存在zookeeper中。
下载,解压需要的zookeeper版本
1. [root@hadoop001 sourcecode]# tar -xzvf zookeeper-3.4.5-cdh5.7.0.tar.gz -C /opt/software
配置环境变量
1. export ZOOKEEPER_HOME=/opt/software/zookeeper
2. export PATH=$ZOOKEEPER_HOME/bin:$PATH
修改配置文件
1. [root@hadoop001 conf]# cp zoo_sample.cfg zoo.cfg
2. [root@hadoop001 conf]# vi zoo.cfg
3. 添加修改以下内容:
4. dataDir=/opt/software/zookeeper/data
5. server.1=hadoop001:2888:3888
6. server.2=hadoop002:2888:3888
7. server.3=hadoop003:2888:3888
创建data目录和data/myid文件
1. [root@hadoop001 zookeeper]# mkdir data
2. [root@hadoop001 zookeeper]# touch data/myid
3. [root@hadoop001 zookeeper]# echo 1 > data/myid
分发zookeeper文件到其他节点,并修改相应myid文件
1. [root@hadoop002 zookeeper]# echo 2 > data/myid
2. [root@hadoop003 zookeeper]# echo 3 > data/myid
启动
- [root@hadoop001 zookeeper]# zkServer.sh start
- [root@hadoop002 zookeeper]# zkServer.sh start
- [root@hadoop003 zookeeper]# zkServer.sh start
部署Kafka
- 安装kafka需要java和scala,这里scala版本选择2.11
下载基于scala 2.11的kafka 0.10.0.1
1. [root@hadoop001 sourcecode]# tar -xzvf kafka_2.11-0.10.0.1.tgz -C /opt/software
配置环境变量
1. export KAFKA_HOME=/opt/software/kafka_2.11-0.10.0.1
2. export PATH=$KAFKA_HOME/bin:$PATH
修改配置文件
1. [root@hadoop001 config]# vi server.properties
2. 添加以下内容:
3. broker.id=1
4. port=9092
5. host.name=hadoop001
6. log.dirs=/opt/software/kafka_2.11-0.10.0.1/logs
7. zookeeper.connect=hadoop001:2181,hadoop002:2181,hadoop003:2181/kafka
创建Logs目录
1. [root@hadoop001 kafka_2.11-0.10.0.1]# mkdir logs
后台启动服务
在3台节点执行,启动kafka进程broker
1.[root@hadoop001 kafka_2.11-0.10.0.1]# nohup kafka-server-start.sh $KAFKA_HOME/config/server.properties &
测试
创建一个topic
1. [root@hadoop001 kafka_2.11-0.10.0.1]# kafka-topics.sh --create\ 2. --zookeeper hadoop001:2181,hadoop002:2181,hadoop003:2181/kafka\ 3. --replication-factor 3 --partitions 3 --topic test
启动producer
1. [root@hadoop001 bin]# ./kafka-console-producer.sh --broker-list\ 2. hadoop001:9092,hadoop002:9092,hadoop003:9092 --topic test
启动consumer
1. [root@hadoop001 bin]# ./kafka-console-producer.sh\ 2. --zookeeper hadoop001:2181,hadoop002:2181,hadoop003:2181/kafka\ 3. --from-beginning --topic test