一.Kafka简介
1.介绍
Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。
2.Zookeeper的功能以及工作原理
ZooKeeper是什么? ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
二.环境搭建要求
Linux服务器
Java环境(jdk1.8以上)
没wget需要 yum -y install wget 安装
定义zookeeper目录结构:mkdir -p /opt/zookeeper
定义kafka目录: Mkdir -p /opt/kafka
下载zookeeper包: cd /opt/zookeepe
wget https://mirrors.aliyun.com/apache/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz下载kafka包:cd /opt/kafka
wget https://mirrors.aliyun.com/apache/kafka/1.1.0/kafka_2.12-1.1.0.tgz
三.配置启动zookeeper
kafka自带zookeeper,但是也可以使用自己安装的zookeeper。
- 使用kafka自带的zookeeper
kafka自带的zookeeper的启动文件默认在kafka的启动目录下,也就是kafak的bin目录。
- 使用自己集群里的zookeeper
找到自己zookeeper的安装目录的bin目录
- 进入zookeeper目录:Cd /opt/zookeeper/
- 解压:tar -zxvf zookeeper-3.4.12.tar.gz
- 进入配置文件:cd /opt/zookeeper/conf
- 打开:cp zoo_sample.cfg zoo.cfg
dataDir 定义:zookeeper保存数据的目录;
dataLogDir= #Zookeeper将写数据的日志文件保存在这个目录里;
server.1 这个1是服务器的标识也可以是其他的数字, 表示这个是第几号服务器,用来标识服务器, 这个标识后续会用到;
第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口。默认3888。 修改完成后,保存即可。
创建节点的myid(节点非0开始可以从1开始做节点但是要有规则)
Vim /opt/zookeeper/zkdata/myid下写入1(2节点到时候写入2)启动服务:cd /opt/zookeeper/zookeeper-3.4.12/bin
./zkServer.sh start ###启动
./zkServer.sh status ###启动后一定要查看
四.Kafka搭建
cd /opt/kafka
tar zxvf kafka_2.12-1.1.0.tgz
cd /opt/kafka/kafka_2.12-1.1.0/config #进入kafka配置目录
cp server.properties server.properties.bak #备份kafka默认配置文件
修改配置文件: vim server.properties

kafka启动需要选择配置文件
broker.id=1 #当前机器在集群中的唯一标识
listeners=PLAINTEXT://10.15.21.62:9092 #监听端口
advertised.listeners=PLAINTEXT://10.15.21.62:9092 #提供给生产者,消费者的端口号。可以不设置则使用listeners的值,logs日志路径没有的话需要创建启动可以绝对路径:
启动:./kafka-server-start.sh -daemon …/config/server.properties
五. 测试kafka
- 先创建一个测试主题:./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic dgp

- 查看主题: ./kafka-topics.sh --list --zookeeper localhost:2181

- 发送一些消息:./kafka-console-producer.sh --broker-list localhost:9092 --topic dgp

- 启动命令行消费者,将消息转储到标准输出:
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic d --from-beginning
