Kafka+Zookeeper集群搭建详解

ElasticSearch集群搭建的方法见这里 ,希望能帮助大家,这儿我再接着介绍kafka集群,接着上次搭建的效果。

首先我们来简单了解下什么是kafka和zookeeper?

Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速、可扩展、可持久化的特点。它现在是Apache旗下的一个开源系统,作为Hadoop生态系统的一部分,被各种商业公司广泛应用。它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/spark流式处理引擎。

特点:

高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒

可扩展性:kafka集群支持热扩展

持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失

容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)

高并发:支持数千个客户端同时读写

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。

集群角色:

Leader服务器是整个zookeeper集群工作机制中的核心

Follower服务器是zookeeper集群状态的跟随者

Observer 服务器充当一个观察者的角色

接下来就直接进去正题,如何正确的搭建kafka和zookeeper集群。

一、zookeeper集群配置

1、修改主机名

kafka1.example.com --> 172.16.81.131

kafka2.example.com --> 172.16.81.132

2、修改hosts文件

[root@kafka1 opt]# cat /etc/hosts

  127.0.0.1  kafka1.example.com localhost localhost.localdomain localhost4 localhost4.localdomain4

  ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

[root@kafka2 opt]# cat /etc/hosts

  127.0.0.1  kafka2.example.com localhost localhost.localdomain localhost4 localhost4.localdomain4

  ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

3、安装jdk

cd /opt

jdk-8u131-linux-x64.tar.gz

tar -zxvf jdk-8u131-linux-x64.tar.gz

mv jdk-1.8.0_131 /usr/local/

4、配置jdk环境变量

[root@kafka1 opt]# tail -10 /etc/profile

 #JAVA环境变量

 export JAVA_HOME=/usr/local/jdk1.8.0_131

 export JAVA_BIN=$JAVA_HOME/bin

 export JAVA_LIB=$JAVA_HOME/lib

 export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar

 export PATH=$JAVA_BIN:$PATH

 export _JAVA_SR_SIGNUM=12

 #zookeeper环境变量

 export ZOOKEEPER_HOME=/opt/zookeeper/

 export PATH=$ZOOKEEPER_HOME/bin:$PATH

 export PATH

[root@kafka2 opt]# tail -10 /etc/profile

 #JAVA环境变量

 export JAVA_HOME=/usr/local/jdk1.8.0_131

 export JAVA_BIN=$JAVA_HOME/bin

 export JAVA_LIB=$JAVA_HOME/lib

 export CLASSPATH=.:$JAVA_LIB/tools.jar:$JAVA_LIB/dt.jar

 export PATH=$JAVA_BIN:$PATH

 export _JAVA_SR_SIGNUM=12

 #zookeeper环境变量

 export ZOOKEEPER_HOME=/opt/zookeeper/

 export PATH=$ZOOKEEPER_HOME/bin:$PATH

 export PATH

 #应用环境变量

 source /etc/profile

5、下载软件包   

zookeeper-3.4.10.tar.gz

  #解压
  tar -zxvf zookeeper-3.4.10.tar.gz
  mv zookeeper-3.4.10 zookeeper
  cd /opt/zookeeper/config/
  cp zoo_sample.cfg zoo.cfg

6、编辑zookeeper配置文件

[root@kafka1 opt]# cat /opt/zookeeper/conf/zoo.cfg | grep -v '^#' | grep -v '^$'

 tickTime=2000

 initLimit=20

 syncLimit=10

 dataDir=/opt/data/zookeeper/data

 datalogDir=/opt/data/zookeeper/logs

 clientPort=2181

 server.1=172.16.81.131:2888:3888 

 server.2=172.16.81.132:2888:3888

[root@kafka2 opt]# cat /opt/zookeeper/conf/zoo.cfg | grep -v '^#' | grep -v '^$'

 tickTime=2000

 initLimit=20

 syncLimit=10

 dataDir=/opt/data/zookeeper/data

 datalogDir=/opt/data/zookeeper/logs

 clientPort=2181

 server.1=172.16.81.131:2888:3888

 server.2=172.16.81.132:2888:3888

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/a72109e0192b26be8d8aa1d1c97667ef.html