kafka基础集群部署
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 本文转自 msj0905 51CTO博客,原文链接:http://blog.51cto.com/sky66/1727532