kafka集群部署方案
ZooKeeper
第一步主机名称到IP地址映射配置
ZooKeeper集群中具有两个关键的角色Leader和Follower。集群中所有的结点作为一个整体对分布式应用提供服务集群中每个结点之间都互相连接所以在配置的ZooKeeper集群的时候每一个结点的host到IP地址的映射都要配置上集群中其它结点的映射信息。例如我的ZooKeeper集群中每个结点的配置以zk-01为例/etc/hosts内容如下所示:
192.168.0.11 zk-01
192.168.0.12 zk-02
192.168.0.13 zk-03
第二步配置更改配置文件
ZooKeeper采用一种称为Leader election的选举算法。在整个集群运行过程中只有一个Leader其他的都是Follower如果ZooKeeper集群在运行过程中Leader出了问题系统会采用该算法重新选出一个Leader。因此各个结点之间要能够保证互相连接必须配置上述映射。ZooKeeper集群启动的时候会首先选出一个Leader在Leader election过程中某一个满足选举算的结点就能成为Leader。整个集群的架构可以参考http://zookeeper.apache.org/doc/trunk/zookeeperOver.html#sc_designGoals。第二步修改ZooKeeper配置文件在其中一台机器zk-01上解压缩zookeeper-3.3.4.tar.gz修改配置文件conf/zoo.cfg内容如下所示
tickTime=2000
dataDir=/home/hadoop/storage/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zk-01:2888:3888
server.2=zk-02:2888:3888
server.3=zk-03:2888:3888
第三步远程复制分发安装文件上面已经在一台机器zk-01上配置完成ZooKeeper现在可以将该配置好的安装文件远程拷贝到集群中的各个结点对应的目录下
scp -r zookeeper-3.3.4/ shirdrn@zk-02:/home/hadoop/installation/
scp -r zookeeper-3.3.4/ shirdrn@zk-03:/home/hadoop/installation/
第四步设置myid在我们配置的dataDir指定的目录下面创建一个myid文件里面内容为一个数字用来标识当前主机conf/zoo.cfg文件中配置的server.X中X为什么数字则myid文件中就输入这个数字例如
建立data目录
mkdir -pv /home/hadoop/storage/zookeeper
shirdrn@zk-01:~/installation/zookeeper-3.3.4$ echo "1" > /home/hadoop/storage/zookeeper/myid
shirdrn@zk-02:~/installation/zookeeper-3.3.4$ echo "2" > /home/hadoop/storage/zookeeper/myid
shirdrn@zk-03:~/installation/zookeeper-3.3.4$ echo "3" > /home/hadoop/storage/zookeeper/myid
启动zookeeper服务, 分别在3个机器上zk_01zk_02zk_03:
bin/zkServer.sh start
查看状态
bin/zkServer.sh status
#####################################Kafka部署
一、安装Kafka
wget http://apache.fayea.com/kafka/0.9.0.0/kafka_2.11-0.9.0.0.tgz
wget http://apache.fayea.com/kafka/0.9.0.0/kafka_2.10-0.9.0.0.tgz
wget http://apache.fayea.com/kafka/0.8.2.2/kafka_2.11-0.8.2.2.tgz
wget http://apache.fayea.com/kafka/0.8.2.2/kafka_2.10-0.8.2.2.tgz
wget http://apache.fayea.com/kafka/0.8.2.2/kafka_2.9.2-0.8.2.2.tgz
wget http://apache.fayea.com/kafka/0.8.2.2/kafka_2.9.1-0.8.2.2.tgz
# tar zxvf kafka_2.9.1-0.8.2.2.tgz -C /usr/local/
# cd /usr/local/kafka_2.9.1-0.8.2.2/
二、我们安装3个broker分别在3个机器上zk_01zk_02zk_03:1、编辑zk_01
# vim config/server.properties
broker.id=0
port=9092
zookeeper.connect=zk_01:2181,zk_02:2181,zk_03:2181
--------------------------------------------------------------
vim consumer.properties
zookeeper.connect=zk-01:2181,zk-02:2181,zk-03:2181
----------------------------------------------------------------
vim producer.properties
metadata.broker.list=zk-01:9092,zk-02:9092,zk-03:9092
2、编辑zk_02
# vim config/server.properties
1 broker.id=1
2 port=9092
6 zookeeper.connect=zk_01:2181,zk_02:2181,zk_03:2181
--------------------------------------------------------------
vim consumer.properties
zookeeper.connect=zk-01:2181,zk-02:2181,zk-03:2181
----------------------------------------------------------------
vim producer.properties
metadata.broker.list=zk-01:9092,zk-02:9092,zk-03:9092
3、编辑zk_03
# vim config/server.properties
1 broker.id=32
2 port=9092
6 zookeeper.connect=zk_01:2181,zk_02:2181,zk_03:2181
--------------------------------------------------------------
vim consumer.properties
zookeeper.connect=zk-01:2181,zk-02:2181,zk-03:2181
----------------------------------------------------------------
vim producer.properties
metadata.broker.list=zk-01:9092,zk-02:9092,zk-03:9092
三、启动Kafka服务, 分别在3个机器上zk_01zk_02zk_03:
nohup bin/kafka-server-start.sh config/server.properties &
测试
a.启动一个服务端
bin/kafka-server-start.sh config/server.properties
b.查看topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
查看topic描述
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
c.测试生产者写入信息消费者收到信息
启动一个生产者
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
开启一个消费者
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning
http://my.oschina.net/lgscofield/blog/485004
http://xiaorui.cc
本文出自 “我的天空” 博客,谢绝转载!
原文地址:http://sky66.blog.51cto.com/2439074/1727532