kafka 安装配置
2017-07-25 10:35
281 查看
一、Zookeeper的安装与配置
1.安装
解压安装文件到zookeeper
tar -zxf zookeeper-3.4.10.tar.gz
重命名
sudo mv zookeeper-3.4.10 /usr/local/
2. 配置
创建数据目录tmp/data
mkdir -p /var/data/zookeeper/data
sudo chmod 777 /var/data/zookeeper/data
将zoo_sample.cfg复制到zoo.cfg
cp /usr/local/zookeeper-3.4.10/conf/zoo_sample.cfg
/usr/local/zookeeper-3.4.10/conf/zoo.cfg
编辑zookeeper配置文件
sudo nano /usr/local/zookeeper-3.4.10/conf/zoo.cfg
改写dataDir目录位置
dataDir=/var/data/zookeeper/data
修改log目录
dataLogDir=/var/log/zookeeper/logs
告知zookeeper集群信息 2888是zookeeper服务之间通信的端口;3888是zookeeper与其他应用程序通信的端口
server.0=node1:2888:3888
server.1=node2:2888:3888
server.2=node3:2888:3888
3.将安装文件发送到其他节点
//将zookeeper目录发送到node2上
scp -r ~/zookeeper-3.4.10 QCloud@192.168.1.16:/usr/local
//将zookeeper目录发送到node3上
scp -r ~/zookeeper-3.4.10 QCloud@192.168.1.17:/usr/local
在master上运行:
sudo nano /var/zookeeper/data/myid
//输入 0 保存退出
在node2上运行:
sudo nano /var/zookeeper/data/myid
//输入 1 保存退出
在node3上运行:
sudo nano /var/zookeeper/data/myid
//输入 2 保存退出
每台机器都要操作
sudo chmod 757 -R /usr/local/zookeeper-3.4.10
启动zookeeper
每台机器都要启动
cd ~/zookeeper/bin
/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
关闭zookeeper
每台机器都要关闭
cd ~/zookeeper/bin
/usr/local/zookeeper-3.4.10/bin/zkServer.sh stop
验证机器状态
可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果。
cd ~/zookeeper/bin
/usr/local/zookeeper-3.4.10/bin/zkServer.sh status
注:只有在集群所有机器都启动的情况下才可以查看
ps:记得修改防火墙配置
二、kafka的安装配置
1.安装
sudo tar -zxf kafka_2.10-0.9.0.0.tgz -C /usr/local
2.配置
cd /usr/local/kafka_2.10-0.9.0.0/config
配置生成数据存放目录
sudo mkdir -p /var/log/kafka/logs
修改数据目录的属组和属主
sudo chown -R QCloud:QCloud /usr/local/kafka
sudo nano server.properties
broker.id=0 #当前机器在kafka机器里唯一标识,与zookeeper的myid一个意思,由于我使用独立zookeeper这里可以注释掉
port=9092 #socket监听的端口
host.name=node1#broker绑定的IP,我这里三台机器都绑定了,后面远程复制的时候记得修改
num.network.threads=3 #broker处理网络的线程数目
num.io.threads=8 #broker处理IO的线程数目
socket.send.buffer.bytes=102400#kafka发送数据缓冲区的大小,到达阈值才发送
socket.receive.buffer.bytes=102400#kafka接收数据缓冲区的大小,达到阈值才落地
socket.request.max.bytes=104857600#kafka所能接受的数据最大值,100MB,这个值应该小于机器配置的Java heap,一般Java heap为内存的1/4
log.dirs=/var/log/kafka/logs#存储消息的目录位置
num.partitions=1#每个主题的默认分区数目,更多的分区可以允许更多的消费,可以提高性能
num.recovery.threads.per.data.dir#在kafka启动和关闭flush时,还原日志时,对于每个数据目录所能使用的线程数目
log.flush.interval.message=10000#当消息达到10000条时就会强制刷一次数据到磁盘
log.flush.interval.ms=1000 #每过1秒就会强制刷数据到磁盘,单位毫秒
log.retention.hours=16#消息最大持久化时间,单位小时,即7天
log.retention.bytes=1073741824#一种持久化策略,当剩余段文件不低于这个阈值,当前段就会从日志消息中删除
log.segment.bytes=1073741824#一个段文件的最大值,达到最大值会另起一个新的segment
log.retention.check.interval.ms=300000#每300秒去检验一下段文件是否能被删除
zookeeper.connect=192.168.1.15:2181,192.168.1.16:2181,192.168.1.17:2181 #设置zookeeper的端口
zookeeper.connect.timeout.ms=6000 #连接zookeeper的超时时间
ps:其他节点只需要修改hostname即可
测试
先启动zookeeper
/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
各个节点启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
关闭kafka集群
./kafka-server-stop.sh
创建一个Topic实例:
./kafka-topics.sh –create –zookeeper 192.168.1.15:2181 –replication-factor 3 –partitions 1 –topic hello
在一台机器上创建一个发布者
./kafka-console-producer.sh –broker-list 192.168.1.16:9092 –topic hello
在一台机器上创建一个订阅者
./kafka-console-consumer.sh –zookeeper 192.168.1.17:2181 –topic hello –from-beginning
至此搭建完毕
kafka配置优化
配置优化都是修改server.properties文件中参数值
1.网络和io操作线程配置优化
建议配置: 一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数加1.
num.io.threads主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。配置线程数量为cpu核数2倍,最大不超过3倍.
2.log数据文件刷新策略
为了大幅度提高producer写入吞吐量,需要定期批量写文件。 建议配置:
每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=10000
每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000
3.日志保留策略配置
当kafka server的被写入海量消息后,会生成很多数据文件,且占用大量磁盘空间,如果不及时清理,可能磁盘空间不够用,kafka默认是保留7天。
建议配置:
保留三天,也可以更短
log.retention.hours=72
段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快(如果文件过小,则文件数量比较多,
kafka启动时是单线程扫描目录(log.dir)下所有数据文件)
log.segment.bytes=1073741824
4.配置jmx服务
kafka server中默认是不启动jmx端口的,需要用户自己配置
vim bin/kafka-run-class.sh
1.安装
解压安装文件到zookeeper
tar -zxf zookeeper-3.4.10.tar.gz
重命名
sudo mv zookeeper-3.4.10 /usr/local/
2. 配置
创建数据目录tmp/data
mkdir -p /var/data/zookeeper/data
sudo chmod 777 /var/data/zookeeper/data
将zoo_sample.cfg复制到zoo.cfg
cp /usr/local/zookeeper-3.4.10/conf/zoo_sample.cfg
/usr/local/zookeeper-3.4.10/conf/zoo.cfg
编辑zookeeper配置文件
sudo nano /usr/local/zookeeper-3.4.10/conf/zoo.cfg
改写dataDir目录位置
dataDir=/var/data/zookeeper/data
修改log目录
dataLogDir=/var/log/zookeeper/logs
告知zookeeper集群信息 2888是zookeeper服务之间通信的端口;3888是zookeeper与其他应用程序通信的端口
server.0=node1:2888:3888
server.1=node2:2888:3888
server.2=node3:2888:3888
3.将安装文件发送到其他节点
//将zookeeper目录发送到node2上
scp -r ~/zookeeper-3.4.10 QCloud@192.168.1.16:/usr/local
//将zookeeper目录发送到node3上
scp -r ~/zookeeper-3.4.10 QCloud@192.168.1.17:/usr/local
在master上运行:
sudo nano /var/zookeeper/data/myid
//输入 0 保存退出
在node2上运行:
sudo nano /var/zookeeper/data/myid
//输入 1 保存退出
在node3上运行:
sudo nano /var/zookeeper/data/myid
//输入 2 保存退出
每台机器都要操作
sudo chmod 757 -R /usr/local/zookeeper-3.4.10
启动zookeeper
每台机器都要启动
cd ~/zookeeper/bin
/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
关闭zookeeper
每台机器都要关闭
cd ~/zookeeper/bin
/usr/local/zookeeper-3.4.10/bin/zkServer.sh stop
验证机器状态
可以通过ZooKeeper的脚本来查看启动状态,包括集群中各个结点的角色(或是Leader,或是Follower),如下所示,是在ZooKeeper集群中的每个结点上查询的结果。
cd ~/zookeeper/bin
/usr/local/zookeeper-3.4.10/bin/zkServer.sh status
注:只有在集群所有机器都启动的情况下才可以查看
ps:记得修改防火墙配置
二、kafka的安装配置
1.安装
sudo tar -zxf kafka_2.10-0.9.0.0.tgz -C /usr/local
2.配置
cd /usr/local/kafka_2.10-0.9.0.0/config
配置生成数据存放目录
sudo mkdir -p /var/log/kafka/logs
修改数据目录的属组和属主
sudo chown -R QCloud:QCloud /usr/local/kafka
sudo nano server.properties
broker.id=0 #当前机器在kafka机器里唯一标识,与zookeeper的myid一个意思,由于我使用独立zookeeper这里可以注释掉
port=9092 #socket监听的端口
host.name=node1#broker绑定的IP,我这里三台机器都绑定了,后面远程复制的时候记得修改
num.network.threads=3 #broker处理网络的线程数目
num.io.threads=8 #broker处理IO的线程数目
socket.send.buffer.bytes=102400#kafka发送数据缓冲区的大小,到达阈值才发送
socket.receive.buffer.bytes=102400#kafka接收数据缓冲区的大小,达到阈值才落地
socket.request.max.bytes=104857600#kafka所能接受的数据最大值,100MB,这个值应该小于机器配置的Java heap,一般Java heap为内存的1/4
log.dirs=/var/log/kafka/logs#存储消息的目录位置
num.partitions=1#每个主题的默认分区数目,更多的分区可以允许更多的消费,可以提高性能
num.recovery.threads.per.data.dir#在kafka启动和关闭flush时,还原日志时,对于每个数据目录所能使用的线程数目
log.flush.interval.message=10000#当消息达到10000条时就会强制刷一次数据到磁盘
log.flush.interval.ms=1000 #每过1秒就会强制刷数据到磁盘,单位毫秒
log.retention.hours=16#消息最大持久化时间,单位小时,即7天
log.retention.bytes=1073741824#一种持久化策略,当剩余段文件不低于这个阈值,当前段就会从日志消息中删除
log.segment.bytes=1073741824#一个段文件的最大值,达到最大值会另起一个新的segment
log.retention.check.interval.ms=300000#每300秒去检验一下段文件是否能被删除
zookeeper.connect=192.168.1.15:2181,192.168.1.16:2181,192.168.1.17:2181 #设置zookeeper的端口
zookeeper.connect.timeout.ms=6000 #连接zookeeper的超时时间
ps:其他节点只需要修改hostname即可
测试
先启动zookeeper
/usr/local/zookeeper-3.4.10/bin/zkServer.sh start
各个节点启动kafka
./kafka-server-start.sh -daemon ../config/server.properties
关闭kafka集群
./kafka-server-stop.sh
创建一个Topic实例:
./kafka-topics.sh –create –zookeeper 192.168.1.15:2181 –replication-factor 3 –partitions 1 –topic hello
在一台机器上创建一个发布者
./kafka-console-producer.sh –broker-list 192.168.1.16:9092 –topic hello
在一台机器上创建一个订阅者
./kafka-console-consumer.sh –zookeeper 192.168.1.17:2181 –topic hello –from-beginning
至此搭建完毕
kafka配置优化
配置优化都是修改server.properties文件中参数值
1.网络和io操作线程配置优化
broker处理消息的最大线程数
num.network.threads=xxxbroker处理磁盘IO的线程数
num.io.threads=xxx建议配置: 一般num.network.threads主要处理网络io,读写缓冲区数据,基本没有io等待,配置线程数量为cpu核数加1.
num.io.threads主要进行磁盘io操作,高峰期可能有些io等待,因此配置需要大些。配置线程数量为cpu核数2倍,最大不超过3倍.
2.log数据文件刷新策略
为了大幅度提高producer写入吞吐量,需要定期批量写文件。 建议配置:
每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=10000
每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000
3.日志保留策略配置
当kafka server的被写入海量消息后,会生成很多数据文件,且占用大量磁盘空间,如果不及时清理,可能磁盘空间不够用,kafka默认是保留7天。
建议配置:
保留三天,也可以更短
log.retention.hours=72
段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快(如果文件过小,则文件数量比较多,
kafka启动时是单线程扫描目录(log.dir)下所有数据文件)
log.segment.bytes=1073741824
4.配置jmx服务
kafka server中默认是不启动jmx端口的,需要用户自己配置
vim bin/kafka-run-class.sh
最前面添加一行
JMX_PORT=8060相关文章推荐
- CentOS 7.0 安装配置 kafka 消息队列
- Kafka集群安装配置,kafka后台运行的方式,Kafka配置文件中的参数说明
- kafka的安装配置与使用
- Kafka详细教程:下载、安装、配置与集群部署
- KAFKA的安装与配置
- kafka入门1:安装及配置
- Kafka 安装配置
- kafka学习之-集群配置及安装
- Kafka安装配置
- kafka学习(二)--windows下安装配置
- Kafka安装配置
- kafka_2.12-0.10.2.1集群搭建安装配置
- kafka安装配置
- kafka集群安装与配置
- kafka安装配置
- kafka安装配置(转自http://blog.csdn.net/evankaka)
- windows安装配置Kafka后.\bin\windows\kafka-server-start.bat .\config\server.properties 出错
- Kafka安装与配置
- Kafka实战系列--Kafka的安装/配置
- kafka_2.11 安装配置 (详细图文)