1. kakfa环境搭建
1.1.1. 搭建Kafka集群
- 将Kafka的安装包上传到虚拟机,并解压
| cd /export/software/ tar -xvzf kafka_2.12-2.4.1.tgz -C ../server/ 建立软连接: cd /export/server/ ln -s kafka_2.12-2.4.1/ kafka |
|
- 修改 server.properties
| cd /export/server/kafka/config vim server.properties # 指定broker的id broker.id=0 # 指定 kafka的绑定监听的地址 listeners=PLAINTEXT://node1.itcast.cn:9092 # 指定Kafka数据的位置 log.dirs=/export/server/kafka/data # 配置zk的三个节点 zookeeper.connect=node1.itcast.cn:2181,node2.itcast.cn:2181,node3.itcast.cn:2181 |
|
- 将安装好的kafka复制到另外两台服务器
| cd /export/server scp -r kafka_2.12-2.4.1/ node2.itcast.cn:$PWD scp -r kafka_2.12-2.4.1/ node3.itcast.cn:$PWD 在node2和node3中建立软连接 cd /export/server ln -s kafka_2.12-2.4.1/ kafka 修改另外两个节点的broker.id分别为1和2 ---------node2.itcast.cn-------------- cd /export/server/kafka/config vim server.properties broker.id=1 listeners=PLAINTEXT://node2.itcast.cn:9092 --------node3.itcast.cn-------------- cd /export/server/kafka/config vim server.properties broker.id=2 listeners=PLAINTEXT://node3.itcast.cn:9092 |
|
- 配置KAFKA_HOME环境变量(三个节点都需要配置)
| vim /etc/profile export KAFKA_HOME=/export/server/kafka export PATH=:$PATH:${KAFKA_HOME} 每个节点加载环境变量 source /etc/profile |
|
- 启动服务器
# 启动ZooKeeper (三个节点都需要启动) cd /export/server/zookeeper/bin/ ./zkServer.sh start # 启动Kafka cd /export/server/kafka nohup bin/kafka-server-start.sh config/server.properties 2>&1 & # 测试Kafka集群是否启动成功 : 使用 jps 查看各个节点 是否出现有kafka 或者通过 zookeeper查看 brokers节点目录下, 是否有三个ids  |
|
1.1.2. 目录结构分析
| 目录名称 |
说明 |
| bin |
Kafka的所有执行脚本都在这里。例如:启动Kafka服务器、创建Topic、生产者、消费者程序等等 |
| config |
Kafka的所有配置文件 |
| libs |
运行Kafka所需要的所有JAR包 |
| logs |
Kafka的所有日志文件,如果Kafka出现一些问题,需要到该目录中去查看异常信息 |
| site-docs |
Kafka的网站帮助文件 |
1.1.3. Kafka一键启动/关闭脚本
为了方便将来进行一键启动、关闭Kafka,我们可以编写一个shell脚本来操作。将来只要执行一次该脚本就可以快速启动/关闭Kafka。
- 在节点1中创建 /export/onekey 目录
cd /export/onekey
- 准备slave配置文件,用于保存要启动哪几个节点上的kafka
| node1.itcast.cn node2.itcast.cn node3.itcast.cn |
|
- 编写start-kafka.sh脚本
| vim start-kafka.sh cat /export/onekey/slave \ |
while read line do { echo $line ssh $line "source /etc/profile;export JMX_PORT=9988;nohup ${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/server.properties >/dev/nul* 2>&1 & " }& wait done |
|
- 编写stop-kafka.sh脚本
| vim stop-kafka.sh cat /export/onekey/slave \ |
while read line do { echo $line ssh $line "source /etc/profile;jps \ |
grep Kafka \ |
cut -d' ' -f1 \ |
xargs kill -s 9" }& wait done |
|
- 给start-kafka.sh、stop-kafka.sh配置执行权限
| chmod u+x start-kafka.sh chmod u+x stop-kafka.sh |
|
- 执行一键启动、一键关闭
| ./start-kafka.sh ./stop-kafka.sh |
|
1.2. 安装Kafka-Eagle
说明: 此软件安装在node2即可, 减轻node1压力
1.2.1. 开启Kafka JMX端口
JMX接口
JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理。很多的一些软件都提供了JMX接口,来实现一些管理、监控功能。
开启Kafka JMX
在启动Kafka的脚本前,添加:
| cd ${KAFKA_HOME} export JMX_PORT=9988 nohup bin/kafka-server-start.sh config/server.properties & |
|
1.2.2. 安装Kafka-Eagle
| 安装JDK,并配置好JAVA_HOME。 |
| 将kafka_eagle上传,并解压到 /export/server 目录中。 |
| cd /export/software/ rz 上传 解压: tar -xvzf kafka-eagle-bin-1.4.6.tar.gz -C ../server/ cd /export/server/kafka-eagle-bin-1.4.6/ tar -xvzf kafka-eagle-web-1.4.6-bin.tar.gz 配置软连接: cd /export/server ln -s kafka-eagle-bin-1.4.6/kafka-eagle-web-1.4.6/ kafka-eagle |
- 配置 kafka_eagle 环境变量。
vim /etc/profile
| export KE_HOME=/export/server/kafka-eagle-bin-1.4.6/kafka-eagle-web-1.4.6 export PATH=$PATH:$KE_HOME/bin |
|
source /etc/profile
- 配置 kafka_eagle。使用vi打开conf目录下的system-config.properties
cd /export/server/kafka-eagle/conf
vim system-config.properties
| # 修改第4行,配置kafka集群别名 kafka.eagle.zk.cluster.alias=cluster1 # 修改第5行,配置ZK集群地址 cluster1.zk.list=node1.itcast.cn:2181,node2.itcast.cn:2181,node3.itcast.cn:2181 # 注释第6行 #cluster2.zk.list=xdn10:2181,xdn11:2181,xdn12:2181 # 修改第32行,打开图标统计 kafka.eagle.metrics.charts=true kafka.eagle.metrics.retain=30 # 注释第69行,取消sqlite数据库连接配置 #kafka.eagle.driver=org.sqlite.JDBC #kafka.eagle.url=jdbc:sqlite:/hadoop/kafka-eagle/db/ke.db #kafka.eagle.username=root #kafka.eagle.password=www.kafka-eagle.org # 修改第77行,开启mys kafka.eagle.driver=com.mysql.jdbc.Driver kafka.eagle.url=jdbc:mysql://node1.itcast.cn:3306/ke?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull kafka.eagle.username=root kafka.eagle.password=123456 |
|
- 配置JAVA_HOME
| cd /export/server/kafka-eagle/bin vim ke.sh # 在第24行添加JAVA_HOME环境配置 export JAVA_HOME=/export/server/jdk1.8.0_241 |
|
- 修改Kafka eagle可执行权限
| cd /export/server/kafka-eagle/bin chmod +x ke.sh |
|
- 启动 kafka_eagle。
./ke.sh start
- 访问Kafka eagle,默认用户为admin,密码为:123456
http://node1.itcast.cn:8048/ke

