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/kafka2.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