资源规划
组件 | bigdata-node1 | bigdata-node2 | bigdata-node3 |
---|---|---|---|
OS | centos7.6 | centos7.6 | centos7.6 |
JDK | jvm | jvm | jvm |
Zookeeper | QuorumPeerMain | QuorumPeerMain | QuorumPeerMain |
Kafka | kafka | kafka | kafka/KafkaEagle |
安装介质
版本:kafka-eagle-bin-1.4.7.tar.gz.gz
下载:http://download.kafka-eagle.org
环境准备
安装JDK
安装ZooKeeper
参考:《CentOS7.6-安装ZooKeeper-3.4.10》
安装Kafka
参考:《CentOS7.6-安装Kafka-0.11.0.3》
安装Kafka Eagle
解压缩
cd /share
tar -zxvf kafka-eagle-bin-1.4.7.tar.gz.gz -C ~/modules/
cd ~/modules/kafka-eagle-bin-1.4.7/
tar -zxvf kafka-eagle-web-1.4.7-bin.tar.gz -C ~/modules/
rm -rf ~/modules/kafka-eagle-bin-1.4.7/
环境配置
设置环境变量,配置JAVA_HOME和本应用的KE_HOME
sudo vi ~/.bashrc
配置如下:
export KE_HOME=/home/vagrant/modules/kafka-eagle-web-1.4.7
export PATH=$KE_HOME/bin:$PATH
生效配置:
source ~/.bashrc
进入kafka-eagle的conf目录下修改配置文件,配置基础配置
sudo vi ~/modules/kafka-eagle-web-1.4.7/conf/system-config.properties
修改下列配置:
# kafka集群配置
kafka.eagle.zk.cluster.alias=cluster1
cluster1.zk.list=192.168.0.101:2181,192.168.0.102:2181,192.168.0.103:2181
# offset存储配置
cluster1.kafka.eagle.offset.storage=kafka
# 注释或删除以下一行配置
#cluster2.kafka.eagle.offset.storage=zk
# 删除topic时需要使用的Token
kafka.eagle.topic.token=polaris
kafka.eagle.metrics.charts=true
kafka.eagle.sql.fix.error=false
# jdbc配置
kafka.eagle.driver=com.mysql.jdbc.Driver
kafka.eagle.url=jdbc:mysql://bigdata-node3:3306/eagle?createDatabaseIfNotExist=true&useSSL=false
kafka.eagle.username=root
kafka.eagle.password=123456
开启Kafka JMX监控
修改Kafka各节点JMX启动配置,开启监控功能:
vi ~/modules/kafka_2.11-0.11.0.3/bin/kafka-server-start.sh
配置如下:
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-server -Xms2G -Xmx2G -XX:PermSize=128m -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:ParallelGCThreads=8 -XX:ConcGCThreads=5 -XX:InitiatingHeapOccupancyPercent=70"
export JMX_PORT="9999"
fi
分发脚本:
cd ~/modules/kafka_2.11-0.11.0.3/bin
scp -r kafka-server-start.sh vagrant@bigdata-node1:~/modules/kafka_2.11-0.11.0.3/bin/
scp -r kafka-server-start.sh vagrant@bigdata-node2:~/modules/kafka_2.11-0.11.0.3/bin/
验证Kafka Eagle
cd ~/modules/kafka-eagle-web-1.4.7/bin
chmod 755 ke.sh
./ke.sh start
./ke.sh stop
./ke.sh status
WebUI入口:http://bigdata-node3:8048/ke
默认账户口令:admin/123456
问题
- Error: java.rmi.server.ExportException: Port already in use: 9999; nested exception is:
java.net.BindException: Address already in use (Bind failed)
- 背景
kafka需要监控broker和topic的数据的时候,是需要开启jmx_port的,正常开启,是在脚本kafka-run-class.sh里面定义变量,定义完成后,在bin目录下面执行脚本会报错。
- 原因
原因是因为kafka-run-class.sh是个被调用脚本,当被其他脚本调用的同时,java会绑定该端口,这个时候就会报错端口占用了。
- 解决
- 如果是supervisor启动的kafka,在supervisor的服务启动配置文件中加入一行配置:“environment=JMX_PORT=9999”。
- 如果是在bin目录启动,可以在启动的时候“export jmx_port=9999”或者直接在kafka-server-start.sh脚本上面指定。
- 别的脚本使用时,取消取消JMX环境变量设置,如:“_unset JMX_PORT;_kafka-topics.sh —zookeeper zk1:2181/kafka —list”。