安装zookeeper(以两个节点为例master、slave)
1.解压zookeeper安装包
tar -zxvf zookeeper-3.4.12.tgz
2.配置(先在一台节点上配置)
2.1添加一个zoo.cfg配置文件
cd $ZOOKEEPER/conf
mv zoo_sample.cfg zoo.cfg
2.2修改配置文件(zoo.cfg)
dataDir=/home/hadoop/zookeeper-3.4.12/data
server.1=master:2888:3888
server.2=slave:2888:3888
、、、
server.id=host:port1:port2
//其中id为一个数字,表示zk进程的id,这个id也是dataDir目录下myid文件的内容。host是该zk进程所在的IP地址,port1表示follower和leader交换消息所使用的端口,port2表示选举leader所使用的端口。
2.3在(dataDir=/home/hadoop/zookeeper-3.4.12/data)创建一个myid文件,里面内容是server.N中的N(server.2里面内容为2)
echo "1" > myid
2.4将配置好的zookeeper拷贝到其他节点
scp -r zookeeper-3.4.12/ slave:/home/hadoop/
2.5注意:在其他节点上一定要修改myid的内容
在slave应该将myid的内容改为2 (echo “2” > myid)
3.启动集群
分别启动各节点的zookeeper
bin/zkServer.sh start
安装Kafka
1.解压kafka
tar -xzf kafka_2.11-2.0.0.tgz
2.编辑config/server.properties文件
修改broker.id(唯一的):broker.id=0
zookeeper.connect=master:2181,slave:2182
log.dirs=/home/hadoop/kafka_2.11-2.0.0/logs
3.启动kafka服务
bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 &
kafka测试使用
1.创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic test
2.列出所有topic
bin/kafka-topics.sh --list --zookeeper localhost:2181
3.向topic中写入数据(Kafka的进程ID为28094,占用端口为9092)
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
4.消费数据
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning(旧方法)
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning(新方法)
5.查看指定topic的详情
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
kafka多broker配置
> cp config/server.properties config/server0.properties
> cp config/server.properties config/server1.properties
> cp config/server.properties config/server2.properties
现在编辑这些新文件并设置以下属性:
config/server0.properties:
broker.id=0
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-logs-0
config/server1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1
config/server2.properties:
broker.id=2
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-logs-2
因此我们只需要启动三个节点:
bin/kafka-server-start.sh config/server0.properties > /dev/null 2>&1 &
bin/kafka-server-start.sh config/server1.properties > /dev/null 2>&1 &
bin/kafka-server-start.sh config/server2.properties > /dev/null 2>&1 &
创建一个复制因子为3的新主题:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic
查看指定topic的详情
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic my-replicated-topic
参考文档:
http://kafka.apache.org/documentation.html#gettingStarted