kafka集群环境搭建
作者:链上研发-老杨叔叔
最好的集成环境搭建文章:
本文档完全临摹自此文章
抄一遍:本搭建环境基于zookeeper 3.4.6,和kafka 0.10.0.0
1.说明
kafka集群依赖zookeeper,因此需要先安装zookeeper;
不过kafka本身也集也了zookeeper,但最好不要使用自带的。
2.zookeeper安装
-
2.1 服务器
A测试服务器上:10.8.1.160/home/fangyuan/kafka
B测试服务器上:10.8.1.93/home/tomcat/kafka -
2.2 安装
每台机器都有以下操作(或配置一台,复制到其它机器)
-
2.2.1 安装jdk
已存在,不需要安装
-
2.2.2 下载zookeeper
cd /home/fangyuan
mkdir kafka #与kafka相关的根目录
cd /home/fangyuan/kafka
mkdir zookeeper #zookeeper项目目录
cd /home/fangyuan/kafka/zookeeper
mkdir zkdata #存放快照日志
mkdir zkdatalog#存放事物日志
下载软件
cd /home/fangyuan/kafka/zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
解压软件
tar -zxvf zookeeper-3.4.6.tar.gz -
2.2.3 配置zookeeper
cd /home/fangyuan/kafka/zookeeper/zookeeper-3.4.6/conf
zoo_sample.cfg
这个文件是官方给我们的zookeeper的样板文件,给他复制一份命名为zoo.cfg,zoo.cfg是官方指定的文件命名规则。
复制文件:
cp zoo_sample.cfg zoo.cfg
打开文件:
vi zoo.cfg
配置:
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/fangyuan/kafka/zookeeper/zkdata
dataLogDir=/home/fangyuan/kafka/zookeeper/zkdatalog
clientPort=12181
server.1=10.8.1.93:12888:13888
server.2=10.8.1.160:12888:13888
server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器,这个标识要写到快照目录下面myid文件里
192.168.7.107为集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888
创建myid文件
在10.8.1.160上创建如下,让zookeeper知道自己在哪台机器上(类型域名,通过个面的serve.1找到对应的ip)
echo "1" > /home/fangyuan/kafka/zookeeper/zkdata/myid
在10.8.1.93上创建93上的myid
-
2.2.4 启动zookeeper
进入到Zookeeper的bin目录下
cd /home/fangyuan/kafka/zookeeper/zookeeper-3.4.6/bin
启动服务(3台都需要操作)
./zkServer.sh start
检查服务器状态
./zkServer.sh status
显示如下:(如果Mode显示,等一会儿,重新执行status命令,有可能zookeeper还没完全启动)
JMX enabled by default
Using config: /opt/zookeeper/zookeeper-3.4.6/bin/../conf/zoo.cfg
Mode: follower #他是否为领导
执行jps,查看进程,如果显示zookeeper则说明启动成功
3.kafka安装
-
3.1 kafka下载
-
3.1.1软件环境
1、linux一台或多台,大于等于2
2、已经搭建好的zookeeper集群
3、软件版本kafka_2.11-0.10.0.0.tgz
2、创建目录并下载安装软件 -
3.1.2创建目录
cd /home/fangyuang/kafka
mkdir kafka #创建项目目录
cd kafka
mkdir kafkalogs #创建kafka消息目录,主要存放kafka消息 -
3.1.下载解压
wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz
解压软件
tar -zxvf kafka_2.11-0.10.0.0.tgz
-
-
3.2 修改配置文件
#进入config目录
cd /home/fangyuang/kafka/kafka/kafka_2.11-0.10.0.0/config/
#打开配置文件
vi server.properties
#修改配置文件
#broker.id=0 注释掉,每台服务器的broker.id都不能相同,
#hostname 本机ip
host.name=10.8.1.160
port=19092 #不指定默认是9092
#在log.retention.hours=168 下面新增下面三项
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
#设置zookeeper的连接端口
zookeeper.connect=10.8.1.160:12181,10.8.1.93:12181
作者:链上研发-老杨叔叔
版权声明:本文为链家上海研发中心原创文章,转载请注明出处。
-
3.3启动
从后台启动Kafka集群(3台都需要启动)
cd /home/fangyuang/kafka/kafka/kafka_2.11-0.10.0.0/bin
./kafka-server-start.sh -daemon ../config/server.properties
检查服务是否启动,如果显示kafka进程即启动成功
运行:> jps -
3.4检证
创建Topic来验证是否创建成功
创建Topic
./kafka-topics.sh --create --zookeeper 10.8.1.160:12181 --replication-factor 2 --partitions 1 --topic my-topic
解释
--replication-factor 2 #复制两份
--partitions 1 #创建1个分区
--topic #主题为my-topic
-- ip??
在一台服务器上创建一个发布者
创建一个broker,发布者(ip??,端口??)
./kafka-console-producer.sh --broker-list 10.8.1.160:19092 --topic my-topic
此时:console处于阻塞状态,可以直接输入数据。
在一台服务器上创建一个订阅者
./kafka-console-consumer.sh --zookeeper localhost:12181 --topic my-topic --from-beginning
此时:一旦有数据生成,此处的console中会显示数据
4.监控
KafkaOffsetMonitor
http://www.cnblogs.com/yinchengzhe/p/5123515.html