一、软件准备
- centos6.9
- Jdk1.8
- kafka_2.11-0.10.0.0
- Zookeeper 3.4.8
二、网络配置(所有节点)
修改hosts
重启生效
三、关闭防火墙(所有节点)
临时关闭防火墙
service iptables stop
四、免密登录配置
略
五、安装JDK(所有节点)
- 卸载自带的jdk
- 解压安装jdk1.8
略
六、ntp配置
略
七、安装zookeeper
- 在/opt中创建zookeeper项目目录
#项目目录
mkdir /opt/zookeeper
#存放快照日志
mkdir /opt/zookeeper/zkdata
#存放事物日志
mkdir /opt/zookeeper/zkdatalog
- 解压
tar -zxvf zookeeper-3.4.8.tar.gz -C /opt/zookeeper/
- 修改配置文件
cd /opt/zookeeper/zookeeper-3.4.8/con
复制一份配置文件
cp zoo_sample.cfg zoo.cfg
修改配置文件,配置自动清理时间为72小时,保留文件数为3个
将zookeeper解压文件分发到各个节点
scp -r /opt/zookeeper/zookeeper-3.4.8 noahdata05:/opt/zookeeper/
scp -r /opt/zookeeper/zookeeper-3.4.8 noahdata06:/opt/zookeeper/
- 创建myid文件
#server1
echo "1" > /opt/zookeeper/zkdata/myid
#server2
echo "2" > /opt/zookeeper/zkdata/myid
#server3
echo "3" > /opt/zookeeper/zkdata/myid
- 启动服务(所有节点)
/opt/zookeeper/zookeeper-3.4.8/bin/zkServer.sh start
出现错误
解决方法:临时关闭防火墙
service iptables stop
- 查看状态
/opt/zookeeper/zookeeper-3.4.8/bin/zkServer.sh status
到此zookeeper安装完成。
八、kafka安装
- 解压
tar -zxvf kafka_2.11-0.10.0.0.tgz -C /opt/kafka
创建kafka日志存放文件,并赋予权限
mkdir /opt/kafka/kafkalogs
chmod 777 /opt/kafka/kafkalogs
- 修改配置文件
vi /opt/kafka/kafka_2.11-0.10.0.0/config/server.properties
实际修改项:
broker.id=0 #每台服务器的broker.id都不能相同
host.name=your_ip
advertised.host.name=your_ip(注意:如果使用云主机,该监听地址需要配置成外网映射ip,否则kafka将无法接收外部生产的数据)
advertised.port=9092
#在log.retention.hours=168 下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=noahdata04:12181,noahdata05:12181,noahdata06:12181
将配置好的文件分发到各个节点,进行修改
- 启动服务
/opt/kafka/kafka_2.11-0.10.0.0/bin/kafka-server-start.sh -daemon /opt/kafka/kafka_2.11-0.10.0.0/config/server.properties &
- 测试
创建topic
/opt/kafka/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --create --topic mytest --replication-factor 2 --partitions 2 --zookeeper noahdata04:12181,noahdata05:12181,noahdata06:12181
查看topic
/opt/kafka/kafka_2.11-0.10.0.0/bin/kafka-topics.sh --list --zookeeper noahdata04:12181,noahdata05:12181,noahdata06:12181
发送消息
/opt/kafka/kafka_2.11-0.10.0.0/bin/kafka-console-producer.sh --broker-list noahdata04:9092 --sync --topic mytest
接受消息,在另一个节点上查看
/opt/kafka/kafka_2.11-0.10.0.0/bin/kafka-console-consumer.sh --zookeeper noahdata04:12181,noahdata05:12181,noahdata06:12181 --topic mytest --from-beginning