《OD大数据实战》Kafka入门实例

官网:

参考文档: 

Kafka入门经典教程

Kafka工作原理详解

一、安装zookeeper

1. 下载zookeeper-3.4.5-cdh5.3.6.tar.gz

下载地址为: http://archive.cloudera.com/cdh5/cdh/5/

2. 解压到/opt/modules/cdh目录

tar -zxvf zookeeper-3.4.5-cdh5.3.6.tar.gz -C /opt/modules/

3. 修改配置

cd /opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6

mkdir dataDir

cd conf

mv zoo_sample.cfg zoo.cfg

vi zoo.cfg
修改内容
dataDir
=/opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6/dataDir

4. 启动zookeeper

cd /opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6
bin/zkServer.sh start

5. 使用jps命令查看是否成功启动

启动成功,会有QuorumPeerMain进程

 

二、安装kafka

1. 下载 kafka_2.11-0.10.0.0.tgz

下载地址为https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz

2. 解压 

解压 kafka_2.11-0.10.0.0.tgz到/opt/modules目录

3. 修改配置

mkdir -p /opt/modules/kafka_2.11-0.10.0.0/dataDir

vi server.properties

修改内容:

log.dirs=/opt/modules/kafka_2.11-0.10.0.0/dataDir

zookeeper.connect=beifeng-hadoop-02:2181

4. 启动kafka

以后台进程方式启动kafka

nohup bin/kafka-server-start.sh config/server.properties >~/kafka-start.log 2>&1 &

5. 使用jps查看是否成功启动

启动成功能看到Kafka进程

 

ps -ef | grep kafka
netstat -tlnup | grep 9092

 

三、单broker模拟生产者和消费者

 1. 创建topic

创建一个叫"test"的topic,只有一个分区,一个副本

bin/kafka-topics.sh --create --zookeeper beifeng-hadoop-02:2181 --replication-factor 1 --partitions 1 --topic test

2. 通过list命令查看创建的topic

bin/kafka-topics.sh --list --zookeeper beifeng-hadoop-02:2181 

3. 发送消息

bin/kafka-console-producer.sh --broker-list beifeng-hadoop-02:9092 --topic test

4. 接收消息

bin/kafka-console-consumer.sh --zookeeper beifeng-hadoop-02:2181 --topic test --from-beginning

 

四、搭建一个多broker的集群

1. 修改配置

cp config/server.properties config/server1.properties
cp config/server.properties config/server2.properties

server1.properties内容修改:

broker.id=1

port=9093

log.dir=/opt/modules/kafka_2.11-0.10.0.0/dataDirServer1

server2.properties内容修改:

broker.id=2

port=9094

log.dir=/opt/modules/kafka_2.11-0.10.0.0/dataDirServer2

2. 启动服务器

 nohup bin/kafka-server-start.sh config/server1.properties >~/kafka-server1-start.log 2>&1 &

 nohup bin/kafka-server-start.sh config/server2.properties >~/kafka-server2-start.log 2>&1 &

 3. 创建有3个副本的topic

bin/kafka-topics.sh --create --zookeeper beifeng-hadoop-02:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

4. 查看topic信息

bin/kafka-topics.sh --describe --zookeeper beifeng-hadoop-02:2181 --topic my-replicated-topic

Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0

解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行。
leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
replicas:列出了所有的副本节点,不管节点是否在服务中.
isr:是正在服务中的节点.
在我们的例子中,节点1是作为leader运行。

5. 生产者

bin/kafka-console-producer.sh --broker-list beifeng-hadoop-02:9092 --topic my-replicated-topic

6. 消费者

bin/kafka-console-consumer.sh --zookeeper beifeng-hadoop-02:2181 --from-beginning --topic my-replicated-topic

 

posted @ 2016-08-09 10:04  沙漏哟  阅读(1117)  评论(1编辑  收藏  举报