设为首页收藏本站

小牛社区-大数据学习交流社区|大数据免费学习资源

 找回密码
 立即注册!

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 26|回复: 0

​Java开发大型互联网-zookeeper集群搭建与kafka broker集群搭建 ...

[复制链接]

79

主题

0

帖子

16

积分

吃土小白

Rank: 1

积分
16
发表于 2017-12-6 04:57:25 | 显示全部楼层 |阅读模式
引言
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop的一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消费。
zookeeper集群搭建
kafka是通过zookeeper来管理集群。
kafka软件包内虽然包括了一个简版的zookeeper,但是感觉功能有限。在生产环境下,建议还是直接下载官方zookeeper软件。
下载 最新版的zookeeper软件
wget http://mirrors.cnnic.cn/apache/zo okeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
解压,并把解压后的文件移动到/var/zookeeper下,重命名为zookeeper00
tar -xzf zookeeper-3.4.8.tar.gz
mv zookeeper-3.4.8 /var/zookeeper/
cd /var/zookeeper/
mv zookeeper-3.4.8 zookeeper00
进入/var/zookeeper/zookeeper00/conf目录下,将zoo_sample.cfg修改为zoo.cfg(因为zookeeper启动时默认读的配置文件就叫zoo.cfg)
cd /var/zookeeper/zookeeper00/conf
mv zoo_sample.cfg zoo.cfg
zookeeper配置文件修改
tickTime=2000 #心跳时间,单位:毫秒
initLimit=10 #Follower在启动时需要在10个心跳时间内从Leader同步数据
syncLimit=5 #超过5个心跳时间收不到Follower的响应,就认为此Follower已经下线
dataDir=/zyxx_data/zookeeper/data00 #zookeeper存储数据的目录
clientPort=2181 #zookeeper服务端口
server.0=192.168.6.56:20881:30881
server.1=192.168.6.56:20882:30882
server.2=192.168.6.56:20883:30883
server.0、server.1、server.2 是指整个zookeeper集群内的节点列表。server的配置规则为:server.N=YYY:A:B
N表示服务器编号
YYY表示服务器的IP地址
A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。
B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)
一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能是A端口和B端口不一样。
zookeeper多节点配置
通过以上配置,一个zookeeper节点就做好了,下面配置多个节点,我们把zookeeper根目录zookeeper00拷贝多份并重命名
cp -a zookeeper00/ zookeeper01
cp -a zookeeper00/ zookeeper02
针对zookeeper01/conf/zoo.cfg和zookeeper02/conf/zoo.cfg,同样需要修改上面几个地方。修改后参数具体如下(由于是在同一台机器上模拟集群,所以dataDir、clientPort不能一样)
** zookeeper01/conf/zoo.cfg **
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zyxx_data/zookeeper/data01
clientPort=2182
server.0=192.168.6.56:20881:30881
server.1=192.168.6.56:20882:30882
server.2=192.168.6.56:20883:30883
** zookeeper02/conf/zoo.cfg **
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/zyxx_data/zookeeper/data02
clientPort=2183
server.0=192.168.6.56:20881:30881
server.1=192.168.6.56:20882:30882
server.2=192.168.6.56:20883:30883
zookeeper数据目录创建
zookeeper三个节点对应的数据目录分别为
/zyxx_data/zookeeper/data00
/zyxx_data/zookeeper/data01
/zyxx_data/zookeeper/data02
创建好对应的目录后,要分别在这三个目录下创建一个名为myid的文件,文件内容只有一个数字,代表zookeeper节点的唯一id,即要确保此id在集群内唯一,且要跟配置文件中的server.0、server.1、server.2 对应上。

kafka broker集群搭建
kafka 下载、解压
wget http://apache.opencas.org/kafka/0.9.0.1/kafka_2.11-0.9.0.1.tgz
tar -xzf kafka_2.11-0.9.0.0.tgz
kafka broker配置文件修改
修改kafka根目录下的config/server.properties
broker.id=0 #整个集群内唯一id号,整数,一般从0开始
listeners=PLAINTEXT://192.168.6.56:9092 #协议、当前broker机器ip、端口,此值可以配置多个,应该跟SSL等有关系,更多用法尚未弄懂,这里修改为ip和端口。
port=9092 #broker端口
host.name=192.168.6.56 #broker 机器ip
log.dirs=/zyxx_data/kafka-logs/kafka00 #kafka存储数据的目录
zookeeper.connect=192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183 #zookeeper 集群列表
kafka broker多节点配置
kafka多节点配置,可以像zookeeper一样把软件目录copy多份,修改各自的配置文件。这里介绍另外一种方式:同一个软件目录程序,但使用不同的配置文件启动
使用不同的配置文件启动多个broker节点,这种方式只适合一台机器下的伪集群搭建,在多台机器的真正集群就没有意义了
把kafka根目录下的config/server.properties copy两份,名称分别修改为:server-1.properties 、server-2.properties。各自修改他们的配置如下:
config/server-1.properties
broker.id=1
listeners=PLAINTEXT://192.168.6.56:9093
port=9093
host.name=192.168.6.56
log.dirs=/zyxx_data/kafka-logs/kafka01
zookeeper.connect=192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183
config/server-2.properties
broker.id=2
listeners=PLAINTEXT://192.168.6.56:9094
port=9094
host.name=192.168.6.56
log.dirs=/zyxx_data/kafka-logs/kafka02
zookeeper.connect=192.168.6.56:2181,192.168.6.56:2182,192.168.6.56:2183
总结
以 上就是我对Java开发大型互联网-zookeeper集群搭建与kafka broker集群搭建问题及其优化总结,分享给大家,希望大家知道什么是Java开发大型互联网-zookeeper集群搭建与kafka broker集群搭建问题及其优化。觉得收获的话可以点个关注收藏转发一波喔,谢谢大佬们支持!

  • 1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的
  • 2、可以去百度搜索腾讯课堂图灵学院的视频来学习一下java架构实战案例,还挺不错的。
  • 最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步!都能赢取白富美,走向架构师的人生巅峰!
  • 3丶想了解学习以上课程内容可加群:469717771 验证码头条(06 必过)欢迎大家的加入哟!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册!

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

快速回复 返回顶部 返回列表