Kafka集群部署及測试
题记
眼下我们对大数据进行研究方向以Spark为主,当中Spark Streaming是能够接收动态数据流并进行处理。那么Spark Streaming支持多源的数据发送端,比如TCP、ZeroMQ、自然也包含Kafka,并且Kafka+SparkStreaming的技术融合也比較经常使用并且成熟,所以我们须要搭建一个Kafka集群进行流数据的測试。
--------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/chinagissoft
QQ群: idkey=db34317167632c01ab4750de87c000ae63cf173cf6fcbbd724ae60213272da91">16403743
宗旨:专注于"GIS+"前沿技术的研究与交流,将云计算技术、大数据技术、容器技术、物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方式
转载说明:文章同意转载。但必须以链接方式注明源地址。否则追究法律责任!
--------------------------------------------------------------------------------------
环境介绍
眼下我们的环境还是原有的Hadoop集群和Spark集群。
三台集群,一台主节点。两台子节点。
- 192.168.12.210 master
- 192.168.12.211 slave1
- 192.168.12.212 slave2
相同,我们的目标在这三台机器部署Kafka集群,另外同一时候包含Zookeeper集群。
眼下安装的kafka版本号为:kafka_2.10-0.8.2.1(当中2.10是支持的Scala版本号,0.8.2.1是kafka版本号)
下载地址: https://kafka.apache.org/downloads.html
安装步骤
眼下对于开源软件的部署,特别是在Linux环境下,基本上为绿色安装,也就是仅仅须要解压缩软件包就可以。
1、在210集群进行操作
解压缩kafka软件包
tar –xvf kafka_2.10-0.8.2.1
2、创建zookeeper的数据文件夹并设定server编号
mkdir zk_dir
然后再zk_dir文件夹下创建一个myid文件,编辑该文件,设置一个server唯一编号就可以。比如在210机器上。myid文件仅仅须要输入1就可以。
3、改动%KAFKA_HOME%/config里面的配置文件,编辑 config/zookeeper.properties 文件,添加下面配置:
dataDir=/home/supermap/zk_dir/
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.12.210:2888:3888
server.2=192.168.12.211:2888:3888
server.3=192.168.12.212:2888:3888
- tickTime:zookeeper server之间的心跳时间间隔。以毫秒为单位。
- dataDir:zookeeper 的数据保存文件夹。我们也把 zookeeper server的 ID 文件保存到这个文件夹下
- clientPort:zookeeper server会监听这个port。然后等待客户端连接。
- initLimit:zookeeper 集群中 follower server和 leader server之间建立初始连接时所能容忍的心跳次数的极限值。
- syncLimit:zookeeper 集群中 follower server和 leader server之间请求和应答过程中所能容忍的心跳次数的极限值。
- server.N:N 代表的是 zookeeper 集群server的编号。
对于配置值,以 192.168.12.210:2888:3888 为例。192.168.12.210 表示该server的 IP 地址,2888 port表示该server与 leader server的数据交换port,3888 表示选举新的 leader server时候用到的通信port。
4、改动%KAFKA_HOME%/config里面的配置文件
a. 编辑 config/server.properties 文件
supermap@master:~/kafka_2.10-0.8.2.1/config$ grep ^[a-z] server.properties
broker.id=1
port=9092
host.name=192.168.12.210
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/home/supermap/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
zookeeper.connect=192.168.12.210:2181,192.168.12.211:2181,192.168.12.212:2181
zookeeper.connection.timeout.ms=6000
- broker.id:Kafka broker 的唯一标识。集群中不能反复。
- port: Broker 的监听端口,用于监听 Producer 或者 Consumer 的连接。
- host.name:当前 Broker server的 IP 地址或者机器名。
- zookeeper.contact:Broker 作为 zookeeper 的 client,能够连接的 zookeeper 的地址信息。
- log.dirs:日志保存文件夹。
注意:改动zookeeper.connect为自己集群的IP及port信息,HostName输入本机的IP。broker.id设置为唯一数字就可以。比如210机器我设置的id=1.
b. 编辑 config/producer.properties 文件
supermap@master:~/kafka_2.10-0.8.2.1/config$ grep ^[a-z] producer.properties
metadata.broker.list=192.168.12.210:9092,192.168.12.211:9092,192.168.12.212:9092
producer.type=async
compression.codec=none
serializer.class=kafka.serializer.DefaultEncoder
- broker.list:集群中 Broker 地址列表。
- producer.type: Producer 类型,async 异步生产者,sync 同步生产者。
c. 编辑 config/consumer.properties 文件
supermap@master:~/kafka_2.10-0.8.2.1/config$ grep ^[a-z] consumer.properties
zookeeper.connect=192.168.12.210:2181,192.168.12.211:2181,192.168.12.212:2181
zookeeper.connection.timeout.ms=6000
group.id=test-consumer-group
- zookeeper.connect: Consumer 能够连接的 zookeeper server地址列表。
当我们将210机器的配置所有设置完成之后,我们使用scp工具将kafka文件夹和zk_dir文件夹复制到211和212机器上,特别注意须要改动几个文件。
1、config/server.properties 文件的broker.id和hostname
2、zk_dir/myid
简单的能够将两个id相应起来,可是必需要保证集群环境中ID唯一
服务启动
对于kafka集群我们须要启动两个服务。
1、分别在三台不同集群启动zookeeper服务
前台启动:sh /home/supermap/kafka_2.10-0.8.2.1/bin/zookeeper-server-start.sh /home/supermap/kafka_2.10-0.8.2.1/config/zookeeper.properties
后台启动:nohup sh /home/supermap/kafka_2.10-0.8.2.1/bin/zookeeper-server-start.sh /home/supermap/kafka_2.10-0.8.2.1/config/zookeeper.properties &
注意:一開始启动第一台机器,服务信息会提示不能连接其它两台机器的消息输出。
这个是正常的。假设其它两台机器服务都启动了就没有问题了。
[2016-03-21 23:12:04,946] WARN Cannot open channel to 2 at election address /192.168.12.211:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:402)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:840)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:762)
[2016-03-21 23:12:04,949] WARN Cannot open channel to 3 at election address /192.168.12.212:3888 (org.apache.zookeeper.server.quorum.QuorumCnxManager)
java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:368)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:402)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:840)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:762)
2、分别在三台不同集群启动kafka服务
前台启动:sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-server-start.sh /home/supermap/kafka_2.10-0.8.2.1/config/server.properties
后台启动:nohup sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-server-start.sh /home/supermap/kafka_2.10-0.8.2.1/config/server.properties &
验证安装
1、创建和查看消息主题
连接zookeeper。创建一个名为user-behavior-topic的topic
supermap@master:~$ sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-topics.sh --create \
> --replication-factor 3 \
> --partition 3 \
> --topic user-behavior-topic \
> --zookeeper 192.168.12.210:2181,192.168.12.211:2181,192.168.12.212:2181
Created topic "user-behavior-topic".
查看此topic属性
supermap@master:~$ sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-topics.sh --describe --zookeeper 192.168.12.210:2181,192.168.12.211:2181,192.168.12.212:2181 --topic user-behavior-topic
Topic:user-behavior-topic PartitionCount:3 ReplicationFactor:3 Configs:
Topic: user-behavior-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
Topic: user-behavior-topic Partition: 1 Leader: 3 Replicas: 3,1,2 Isr: 3,1,2
Topic: user-behavior-topic Partition: 2 Leader: 1 Replicas: 1,2,3 Isr: 1,2,3
查看已经创建的topic列表
supermap@master:~$ sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-topics.sh --list --zookeeper 192.168.12.210:2181,192.168.12.211:2181,192.168.12.212:2181 user-behavior-topic
user-behavior-topic
2、创建消息生产者发送消息
sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-console-producer.sh --broker-list 192.168.12.210:9092,192.168.12.211:9092,192.168.12.212:9092 --topic user-behavior-topic
3、创建消息消费者接收消息
sh /home/supermap/kafka_2.10-0.8.2.1/bin/kafka-console-consumer.sh --zookeeper 192.168.12.210:2181,192.168.12.211:2181,192.168.12.212:2181 --from-beginning --topic user-behavior-topic
Kafka集群部署及測试的更多相关文章
- kafka 集群部署 多机多broker模式
kafka 集群部署 多机多broker模式 环境IP : 172.16.1.35 zookeeper kafka 172.16.1.36 zookeeper kafka 172.16 ...
- Zookeeper+Kafka集群部署(转)
Zookeeper+Kafka集群部署 主机规划: 10.200.3.85 Kafka+ZooKeeper 10.200.3.86 Kafka+ZooKeeper 10.200.3.87 Kaf ...
- 3、Kafka集群部署
Kafka集群部署 1)解压安装包 [ip101]$ tar -zxvf kafka_2.11-0.11.0.0.tgz -C /opt/app/ 2)修改解压后的文件名称 [ip101]$ mv k ...
- Zookeeper+Kafka集群部署
Zookeeper+Kafka集群部署 主机规划: 10.200.3.85 Kafka+ZooKeeper 10.200.3.86 Kafka+ZooKeeper 10.200.3.87 Kaf ...
- Kafka集群部署 (守护进程启动)
1.Kafka集群部署 1.1集群部署的基本流程 下载安装包.解压安装包.修改配置文件.分发安装包.启动集群 1.2集群部署的基础环境准备 安装前的准备工作(zk集群已经部署完毕) 关闭防火墙 c ...
- Kafka集群部署以及使用
Kafka集群部署 部署步骤 hadoop102 hadoop103 hadoop104 zk zk zk kafka kafka kafka http://kafka.apache.org/down ...
- 分布式消息系统之Kafka集群部署
一.kafka简介 kafka是基于发布/订阅模式的一个分布式消息队列系统,用java语言研发,是ASF旗下的一个开源项目:类似的消息队列服务还有rabbitmq.activemq.zeromq:ka ...
- zookeeper集群+kafka集群 部署
zookeeper集群 +kafka 集群部署 1.Zookeeper 概述: Zookeeper 定义 zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目 Zooke ...
- Kafka集群部署
一. 关于kafka Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据. 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键 ...
随机推荐
- CMake之CMakeLists.txt编写入门
自定义变量 主要有隐式定义和显式定义两种. 隐式定义的一个例子是PROJECT指令,它会隐式的定义< projectname >_BINARY_DIR和< projectname & ...
- windows系统下nodejs安装、环境配置及删除NPM全局配置
nodejs安装及设置NPM全局路径 删除NPM全局路径配置 一.nodejs安装及设置NPM全局路径 第一步:下载安装文件 下载nodejs,官网:http://nodejs.org/downloa ...
- TYVJ 1288 飘飘乎居士取能量块
背景 9月21日,pink生日:9月22日,lina生日:9月23日,轮到到飘飘乎居士(狂欢吧,(^__^) 嘻嘻--). 描述 9月21日,今天是pink的生日,飘飘乎居士当然要去别人的领土大闹一番 ...
- POJ 3630 trie树
Phone List Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26559 Accepted: 8000 Descripti ...
- 【Leetcode】376. Wiggle Subsequence
Description: A sequence of numbers is called a wiggle sequence if the differences between successive ...
- Vue 区别
computed和methods区别 效果是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值. 而methods,在重新渲染的时候,函数总会重新调用执行.
- JS 有趣的eval优化输入验证
//eval就是计算字符串[可以放任何js代码]里的值 . var str1='12+3'; eval(str1); . var str2='[1,2,3]'; eval(str2[]); .eval ...
- CodeForces 245C-Game with Coins
题意:给你一个n,紧接着n个正数,然后有一种操作:选择一个x满足(x*2+1<=n)一次可以把下标为 x,2*x,2*x+1的三个数同时减一: 问,最少几次操作可以使n个数字变为零(已经是0的 ...
- windows系统通过命令行查看配件的详细信息
今天我在工作中遇到这样一个问题:客户服务器用的是win 2012系统,不打开机箱,不借助其他类似于鲁大师软件的情况下查看内存条的详细信息 刚开始的时候我通过systeminfo命令,只能查出来总的内存 ...
- PHP 设计模式之工厂模式 (静态工厂模式)
### 工厂模式: 由工厂类根据参数来决定创建出哪一种产品类的实例.工厂类是指包含了一个专门用来创建其他对象的方法的类.所谓按需分配,传入参数进行选择,返回具体的类.工厂模式的最主要作用就是对象创建的 ...