<cite id="fzn17"></cite>
<var id="fzn17"></var><cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var>
<menuitem id="fzn17"><span id="fzn17"><thead id="fzn17"></thead></span></menuitem>
<cite id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></cite><var id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></var>
<var id="fzn17"></var>
<menuitem id="fzn17"></menuitem>
<cite id="fzn17"><video id="fzn17"></video></cite>
|
|
51CTO旗下网站
|
|
移动端

1.2 安装与配置

《深入理解Kafka:核心设计与实践原理》本书主要阐述了Kafka中生产者客户端、消费者客户端、主题与分区、日志存储、原理解析、监控管理、应用扩展及流式计算等内容。本节为大家介绍安装与配置。

作者:朱忠华来源:电子工业出版社|2019-01-20 13:35

1.2 安装与配置

本节详细介绍Kafka 运行环境的搭建,为了节省篇幅,本节的内容以Linux CentOS 作为安装演示的操作系统,其他Linux 系列的操作系统?#37096;?#20197;参考本节的内容。具体的操作系统的信息如下:

  1. [[email protected] ~]# uname -a  
  2. Linux node1 2.6.32-504.23.4.el6.x86_64 #1 SMP Tue Jun 9 20:57:37 UTC 2015 x86_64  
  3. x86_64 x86_64 GNU/Linux  
  4. [[email protected] ~]# cat /etc/issue  
  5. CentOS release 6.6 (Final)  
  6. Kernel \r on an \m 

由图1-1 可知,搭建Kafka 运行环境还需要涉及ZooKeeper,Kafka 和ZooKeeper 都是运行在JVM 之?#31995;?#26381;务,所以还需要安装JDK。Kafka 从2.0.0 版本开始就不再支持JDK7 及以下版本,本节就以JDK8 为例来进行演示。

1. JDK 的安装与配置

很多学习Kafka 的读者也都是JVM系语言的支持者,如果你的操作系统中已经安装了JDK8
及以上版本则可以跳过这段内容。

安装JDK 的第一步就是下载JDK 1.8 的安装包,可以进入Oracle 官网页面进行下载。示例中选择的安装包是jdk-8u181-linux-x64.tar.gz,我们这里将其先复制至/opt 目录下,本书所有与安装有关的操作都在这个目录下进行。

其次将/opt 目录下的安装包解压,相关信息如下:

  1. [[email protected] opt]# ll jdk-8u181-linux-x64.tar.gz  
  2. -rw-r--r-- 1 root root 185646832 Aug 31 14:48 jdk-8u181-linux-x64.tar.gz  
  3. [[email protected] opt]# tar zxvf jdk-8u181-linux-x64.tar.gz  
  4. # 解压之后当前/opt 目录下生成一个名为jdk1.8.0_181 的文件夹  
  5. [[email protected] opt]# cd jdk1.8.0_181/  
  6. [[email protected] jdk1.8.0_181]# pwd  
  7. /opt/jdk1.8.0_181  
  8. # 上面这个就是当前JDK8 的安装目录 

然后配置JDK 的环境变量。修改/etc/profile 文件并向其中添加如下配置:

  1. export JAVA_HOME=/opt/jdk1.8.0_181  
  2. export JRE_HOME=$JAVA_HOME/jre  
  3. export PATH=$PATH:$JAVA_HOME/bin  
  4. export CLASSPATH=./://$JAVA_HOME/lib:$JRE_HOME/lib 

再执行source /etc/profile 命令使配置生效,最后可以通过java –version 命令验证JDK 是否已经安装配置成功。如果安装配置成功,则会正确显示出JDK 的版本信息,参考如下:

  1. [[email protected] ~]# java -version  
  2. java version "1.8.0_181"  
  3. Java(TM) SE Runtime Environment (build 1.8.0_181-b13)  
  4. Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode) 

2. ZooKeeper 安装与配置

ZooKeeper 是安装Kafka 集群的必要组件,Kafka 通过ZooKeeper 来实施对元数据信息的管理,包括集群、broker、主题、分区等内容。

ZooKeeper 是一个开源的分布式协调服务,是Google Chubby 的一个开源实现。分布式应用程序可以基于ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、配置维护等功能。在ZooKeeper 中共有3 个角色:leader、follower 和observer,同一时刻 ZooKeeper 集群中只会有一个leader,其他的都是follower 和observer。observer 不参与投票,默认情况下ZooKeeper 中只有leader 和follower 两个角色。更多相关知识可以查阅ZooKeeper 官方网站来获得。

安装ZooKeeper 的第一步也是下载相应的安装包,安装包可?#28304;?#23448;网中获得,示例中使用的安装包是zookeeper-3.4.12.tar.gz,同样将其复?#39057;?opt 目录下,然后解压缩,参考如下:

  1. [[email protected] opt]# ll zookeeper-3.4.12.tar.gz  
  2. -rw-r--r-- 1 root root 36667596 Aug 31 15:55 zookeeper-3.4.12.tar.gz  
  3. [[email protected] opt]# tar zxvf zookeeper-3.4.12.tar.gz  
  4. # 解压之后当前/opt 目录下生成一个名为zookeeper-3.4.12 的文件夹  
  5. [[email protected] opt]# cd zookeeper-3.4.12  
  6. [[email protected] zookeeper-3.4.12]# pwd  
  7. /opt/zookeeper-3.4.12 

第二步,向/etc/profile 配置文件中添加如下内容,并执行source /etc/profile 命令使配置生效:

  1. export ZOOKEEPER_HOME=/opt/zookeeper-3.4.12  
  2. export PATH=$PATH:$ZOOKEEPER_HOME/bin 

第三步,修改ZooKeeper 的配置文件。首先进入$ZOOKEEPER_HOME/conf 目录,并将zoo_sample.cfg 文件修改为zoo.cfg:

  1. [[email protected] zookeeper-3.4.12]# cd conf  
  2. [[email protected] conf]# cp zoo_sample.cfg zoo.cfg 

然后修改zoo.cfg 配置文件,zoo.cfg 文件的内容参考如下:

  1. # ZooKeeper 服务器心跳时间,单位为ms  
  2. tickTime=2000 
  3. # 投票选举新leader 的初始化时间  
  4. initLimit=10 
  5. # leader 与follower 心跳检测最大容忍时间,响应超过syncLimit*tickTime,leader 认为  
  6. # follower“死掉”,从服务器列表中?#22659;齠ollower  
  7. syncLimit=5 
  8. # 数据目录  
  9. dataDir=/tmp/zookeeper/data  
  10. # 日志目录  
  11. dataLogDir=/tmp/zookeeper/log  
  12. # ZooKeeper 对外服务端口  
  13. clientPort=2181 

默认情况下,Linux 系统中没有/tmp/zookeeper/data 和/tmp/zookeeper/log 这两个目录,所以接下来还要创建这两个目录:

  1. [[email protected] conf]# mkdir -p /tmp/zookeeper/data  
  2. [[email protected] conf]# mkdir -p /tmp/zookeeper/log 

第四步,在${dataDir}目录(也就是/tmp/zookeeper/data)下创建一个myid 文件,并写入一个数值,比如0。myid 文件里存放的是服务器的编号。

第五步,启动Zookeeper 服务,详情如下:

  1. [[email protected] conf]# zkServer.sh start  
  2. JMX enabled by default  
  3. Using config: /opt/zookeeper-3.4.6/bin/../conf/zoo.cfg  
  4. Starting zookeeper ... STARTED 

可以通过zkServer.sh status 命令查看Zookeeper 服务状态,示例如下:

  1. [[email protected] ]# zkServer.sh status  
  2. JMX enabled by default  
  3. Using config: /opt/zookeeper-3.4.12/bin/../conf/zoo.cfg  
  4. Mode: leader 

以上是关于ZooKeeper 单机模式的安装与配置,一般在生产环境中使用的都是集群模式,集群模式的配置也比较简单,相比单机模式而言只需要修改一些配置即可。下面以3 台机器为例来配置一个ZooKeeper 集群。首先在这3 台机器的/etc/hosts 文件中添加3 台集群的IP 地址与机器域名的?#25104;洌?#31034;例如下(3 个IP 地址分别对应3 台机器):

  1. 192.168.0.2 node1  
  2. 192.168.0.3 node2  
  3. 192.168.0.4 node3 

然后在这3 台机器的zoo.cfg 文件中添加以下配置:

  1. server.0=192.168.0.2:2888:3888  
  2. server.1=192.168.0.3:2888:3888  
  3. server.2=192.168.0.4:2888:3888 

为了便于讲解上面的配置,这里抽象出一个公式,即server.A=B:C:D。其中A 是一个数字,代表服务器的编号,就是前面所说的myid 文件里面的值。集群中?#21051;?#26381;务器的编号都必须唯一,所以要保证?#21051;?#26381;务器中的myid 文件中的值不同。B 代表服务器的IP 地址。C 表示服务器与集群中的leader 服务器交换信息的端口。D 表示选举时服务器相互通信的端口。如此,集群模式的配置就告一段落,可以在这3 台机器?#32454;?#33258;执行zkServer.sh start 命令来启动服务。

3. Kafka 的安装与配置

在安装完JDK 和ZooKeeper 之后,就可以执行Kafka broker 的安装了,首先也是从官网中下载安装包,示例中选用按照包的是kafka_2.11-2.0.0.tgz,将其复制至/opt 目录下并进行解压缩,示例如下:

  1. [[email protected] opt]# ll kafka_2.11-2.0.0.tgz  
  2. -rw-r--r-- 1 root root 55751827 Jul 31 10:45 kafka_2.11-2.0.0.tgz  
  3. [[email protected] opt]# tar zxvf kafka_2.11-2.0.0.tgz  
  4. # 解压之后当前/opt 目录下生成一个名为kafka_2.11-2.0.0 的文件夹  
  5. [[email protected] opt]# cd kafka_2.11-2.0.0  
  6. [[email protected] kafka_2.11-2.0.0]#  
  7. # Kafka 的根目录$KAFKA_HOME 即为/opt/kafka_2.11-2.0.0,可以将Kafka_HOME 添加到  
  8. /etc/profile 文件中,具体做法可以参考前面JDK 和ZooKeeper 的安装示例 

接下来需要修改broker 的配置文件$KAFKA_HOME/conf/server.properties。主要关注以下几个配置参数即可:

  1. # broker 的编号,如果集群中有多个broker,则每个broker 的编号需要设置的不同  
  2. broker.id=0 
  3. # broker 对外提供的服务入口地址  
  4. listeners=PLAINTEXT://localhost:9092  
  5. # 存放消息日志文件的地址  
  6. log.dirs=/tmp/kafka-logs  
  7. # Kafka 所需的ZooKeeper 集群地址,为了方便演示,我们假设Kafka 和ZooKeeper 都安装在本机  
  8. zookeeper.connect=localhost:2181/kafka 

如果是单机模式,那么修改完上述配置参数之后就可?#20113;?#21160;服务。如果是集群模式,那么只需要对单机模式的配置文件做相应的修改即可:确保集群中每个broker 的broker.id 配置参数的值不一样,以及listeners 配置参数也需要修改为与broker 对应的IP 地址或域名,之后就可以各?#20113;?#21160;服务。注意,在启动Kafka 服务之前同样需要确保zookeeper.connect参数所配置的ZooKeeper 服务已经正确启动。

启动Kafka 服务的方式比较简单,在$KAFKA_HOME 目录下执行下面的命令即可:

  1. bin/kafka-server-start.sh config/server.properties 

如果要在后台运行Kafka 服务,那么可以在启动命令中加入-daemon 参数或&?#22336;?#31034;例如下:

  1. bin/kafka-server-start.sh –daemon config/server.properties  
  2. # 或者  
  3. bin/kafka-server-start.sh config/server.properties & 

可以通过jps 命令查看Kafka 服务进程是否已经启动,示例如下:

  1. [[email protected] kafka_2.11-2.0.0]# jps -l  
  2. 23152 sun.tools.jps.Jps  
  3. 16052 org.apache.zookeeper.server.quorum.QuorumPeerMain  
  4. 22807 kafka.Kafka # 这个就是Kafka 服务端的进程 

jps 命令只是用来确认Kafka 服务的进程已经正常启动。它是否能够正确地对外提供服务,还需要通过发送和消费消息来进行验证,验证的过程可以参考1.3 节的内容。


?#19981;?#30340;朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你?#19981;?/dt>

订阅专栏+更多

活学活用 Ubuntu Server

活学活用 Ubuntu Server

实战直通车
共35章 | UbuntuServer

216人订阅学习

掌握Java核心

共30章 | 51CTO王波

83人订阅学习

Mysql DBA修炼之路

Mysql DBA修炼之路

MySQL入门到高阶
共24章 | 武凤涛

468人订阅学习

视频课程+更多

MYSQL主从复制偏运维全实战视频教程

MYSQL主从复制偏运维全实战视频教程

讲师:实践哥10012人学习过

企?#23548;禯abbix3.4+Grafana5.1全实战视频教程

企?#23548;禯abbix3.4+Grafana5.1全实战视频教程

讲师:实践哥39834人学习过

标杆徐2019 KVM丛入门到精通实战(2019全新发?#21450;?

标杆徐2019 KVM丛入门到精通实战(2019全新发

讲师:徐亮伟15018人学习过

最新专题+更多

实感交互:人工智能下的人机交互技术
实感交互:人工智能下的人机交互技术

人工智能

精通TensorFlow
精通TensorFlow

TensorFlow

Yii2框架从入门到精通
Yii2框架从入门到精通

Yii2框架

Python3.6编程实践?#25913;?-计算机科学入门(原书第3版)
Python3.6编程实践?#25913;?-计算机科学入门(原书第3版)

Python3.6编程

精选博文
论坛?#24525;?/dt>
下载排行

读 书 +更多

无懈可击的Web设计

一个网站,无论视觉上多美观或者内容多丰富,如果它不能适应各种浏览情况并能面向尽可能广泛的用户群,那它就不算是真正成功的网站。本书提...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客

澳洲幸运5官方
<cite id="fzn17"></cite>
<var id="fzn17"></var><cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var>
<menuitem id="fzn17"><span id="fzn17"><thead id="fzn17"></thead></span></menuitem>
<cite id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></cite><var id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></var>
<var id="fzn17"></var>
<menuitem id="fzn17"></menuitem>
<cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var><cite id="fzn17"><video id="fzn17"></video></cite>
<cite id="fzn17"></cite>
<var id="fzn17"></var>
<menuitem id="fzn17"><span id="fzn17"><thead id="fzn17"></thead></span></menuitem>
<cite id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></cite><var id="fzn17"><span id="fzn17"><var id="fzn17"></var></span></var>
<var id="fzn17"></var>
<menuitem id="fzn17"></menuitem>
<cite id="fzn17"><video id="fzn17"></video></cite>
矮木头在线客服 韦斯卡vs巴塞罗那分析 爱丽娜免费试玩 萨索洛对那不勒斯比分预测 矮木头客服 广东11选5开奖视频 权杖女王试玩 新剑侠情缘华山和逍遥 黄金翅膀免费试玩 扎金花游戏平台