Linux基础环境搭建(CentOS7)- 安装Kafka


大家注意以下的环境搭建版本号,如果版本不匹配有可能出现问题!

Linux基础环境搭建(CentOS7)- 虚拟机准备Linux基础环境搭建(CentOS7)- 安装JDK
Linux基础环境搭建(CentOS7)- 安装Hadoop
Linux基础环境搭建(CentOS7)- 安装Zookeeper
Linux基础环境搭建(CentOS7)- 安装Kafka
Linux基础环境搭建(CentOS7)- 安装HBase
Linux基础环境搭建(CentOS7)- 安装Scala和Spark
Linux基础环境搭建(CentOS7)- 安装Mysql和Hive
Linux基础环境搭建(CentOS7)- 安装Sqoop
Linux基础环境搭建(CentOS7)- 安装Flume


一、Kafka下载及安装

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。

centoskafka部署 kafka搭建环境_centoskafka部署

Kafka的下载

kafka下载链接:https://pan.baidu.com/s/1MykjKEqhqei1dgOAL2I_lg

提取码:4ohb

将下载的安装包通过Xftp传输到Linux虚拟机/opt/software/中

Kafka的安装

创建工作路径/usr/kafka,下载kafka安装包到/opt/software中,然后解压至工作路径。

mkdir /usr/kafka		#创建工作路径
cd /opt/software		#进入安装包的文件夹
tar -zxvf kafka_2.11-0.11.0.0.tgz -C /usr/kafka		#解压kafka

二、配置Kafka组件

1.server.properties

首先创建一个log文件夹存放日志文件,然后修改server.properties配置文件

mkdir /usr/kafka/kafka_2.11-0.11.0.0/logs
vim /usr/kafka/kafka_2.11-0.11.0.0/config/server.properties

修改如下:

#broker的全局唯一编号,不能重复
broker.id=0		#需要操作,每台机器id号不一样
#删除topic的功能使能
delete.topic.enable=true	#需要操作
#处理网络请求的线程数量
num.network.threads=3
#用来处理磁盘IO的现成数量
num.io.threads=8
#发送套接字的缓冲区大小
socket.send.buffer.bytes=102400
#接受套接字的缓冲区大小
socket.receive.buffer.bytes=102400
#请求套接字的缓冲区大小
socket.request.max.bytes=104857600
#kafka运行日志存放的路径
log.dirs=/usr/kafka/kafka_2.11-0.11.0.0/logs		#需要操作
#topic在当前broker上的分区个数
num.partitions=1
#用来恢复和清理data下数量的线程数量
num.recovery.threads.per.data.dir=1
#segment文件保留的最长时间,超过将被删除
log.retention.hours=168
#配置zookeeper集群地址
zookeeper.connect=master:2181,slave1:2181,slave2:2181		#需要操作

三、配置Kafka环境变量

vim /etc/profile

centoskafka部署 kafka搭建环境_linux_02

export KAFKA_HOME=/usr/kafka/kafka_2.11-0.11.0.0/
export PATH=$PATH:$KAFKA_HOME/bin

主节点生效环境变量

source /etc/profile

四、同步其他虚拟机

scp -r /etc/profile root@slave1:/etc/profile	#将环境变量profile文件分发到slave1节点
scp -r /etc/profile root@slave2:/etc/profile	#将环境变量profile文件分发到slave2节点
scp -r /usr/kafka root@slave1:/usr/kafka		#将kafka文件分发到slave1节点
scp -r /usr/kafka root@slave2:/usr/kafka		#将kafka文件分发到slave1节点

生效两个从节点的环境变量

source /etc/profile		#slave1和slave2都要执行

修改两个从节点的server.properties文件

master的broker.id为0,slave1的broker.id为1,slave2的broker.id为2(确保三台服务器的broke.id不同)

vim /usr/kafka/kafka_2.11-0.11.0.0/config/server.properties

centoskafka部署 kafka搭建环境_linux_03


centoskafka部署 kafka搭建环境_hadoop_04


centoskafka部署 kafka搭建环境_hadoop_05

五、启动\停止Kafka(三台机器)

先启动Zookeeper(三台机器)

由于kafka工作依赖于zookeeper,因此得先启动zookeeper,再启动kafka

cd /usr/zookeeper/zookeeper-3.4.10		#先进入zookeeper的目录
bin/zkServer.sh start		#三台机器启动zookeeper
bin/zkServer.sh status		#查看启动状态

master

centoskafka部署 kafka搭建环境_kafka_06


slave1

centoskafka部署 kafka搭建环境_linux_07


slave2

centoskafka部署 kafka搭建环境_hadoop_08


通过上面状态查询结果可见,一个节点是Leader,其余的结点是Follower(Leader不一定是主节点,系统随机分配的),即zookeeper启动成功!

启动Kafka

/usr/kafka/kafka_2.11-0.11.0.0/bin/kafka-server-start.sh -daemon /usr/kafka/kafka_2.11-0.11.0.0/config/server.properties

停止Kafka

/usr/kafka/kafka_2.11-0.11.0.0/bin/kafka-server-stop.sh /usr/kafka/kafka_2.11-0.11.0.0/config/server.properties

查看进程

master

centoskafka部署 kafka搭建环境_linux_09

slave1

centoskafka部署 kafka搭建环境_centoskafka部署_10

slave2

centoskafka部署 kafka搭建环境_hadoop_11

如果三台机器启动后,三台机器jps查看进程,均有Kafka进程则表明启动成功!