1 安装jdk1.8版本
(这里具体安装的版本为 jdk1.8.0_261)

2 搭建zookeeper集群
(具体选择使用了 10.8.40.160,10.8.40.161,10.8.40.162 3台机器)

2.1 下载安装
从 https://zookeeper.apache.org/ 下载zookeeper-3.6.3 并分别安装到usr/local目录下
2.2 指定jdk版本
在 /usr/local/apache-zookeeper-3.6.3-bin/bin 目录下指定jdk的版本
JAVA ="/usr/local/jdk1.8.0_261/bin/java"
2.3 新建文件zoo.cfg
在/usr/local/apache-zookeeper-3.6.3-bin/conf目录下拷贝 zoo_sample.cfg 命名为zoo.cfg,
#并在文件中指定 快照日志的存储路径
dataDir=/data/zookeeper_3.6.3

	#添加 
	   server.0=10.8.40.160:2888:3888
	   server.1=10.8.40.161:2888:3888
	   server.2=10.8.40.162:2888:3888
	(解释:这里配置的是集群里的IP地址,第一个端口是master和slave之间的通信端口,默认是2888,第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口默认是3888)

2.4 新建文件myid
在/data目录新建目录zookeeper_3.6.3,
并分别执行
#10.8.40.160
echo “0” > /data/zookeeper_3.6.3/myid
#10.8.40.160
echo “1” > /data/zookeeper_3.6.3/myid
#10.8.40.160
echo “2” > /data/zookeeper_3.6.3/myid

2.5 启动服务

	#进入到Zookeeper的bin目录下
		cd /usr/local/zookeeper-3.6.3/bin
	#启动服务(3台都需要操作)
		./zkServer.sh start
    #检查服务器状态
    	./zkServer.sh status
    #执行命令 jps
		20348 Jps
		4233 QuorumPeerMain 

3 kafka集群搭建
(选择使用 10.8.40.159, 10.8.40.160,10.8.40.161,10.8.40.162, 10.8.40.167, 10.8.40.168 6台机器)
3.1 下载安装
从 https://kafka.apache.org/ 下载kafka_2.13-2.7.1 并分别安装到各个机器的usr/local目录下
3.2 修改配置
修改 /usr/local/kafka_2.13-2.7.1/config目录下的server.properties文件
#broker server服务端口
port =19092

	#是否启用集群机器id自动生成?如果启用,会检查配置的reserved.broker.max.id
		broker.id.generation.enable=true
		reserved.broker.max.id=1024
	(解释:为了避免zk生成的broker编码和用户配置编码的冲突,生成的broker编码从reserved.broker.max.id + 1开始)

	#允许控制器关闭broker,若是设置为true,会关闭所有在这个broker上的leader,并转移到其他broker
		controlled.shutdown.enable =true

	#等待IO线程处理的请求队列最大数,若是等待IO的请求超过这个数值,那么会停止接受外部消息
		queued.max.requests=500


	#监听器,其实就是告诉外部连接者要通过什么协议访问指定主机名和端口开放的 Kafka 服务 
		listeners=PLAINTEXT://机器ip:19092

	
	#日志存放目录,多个目录使用逗号分割
		log.dirs=/data/kafka_2.7.1

	#Zookeeper quorum设置
	zookeeper.connect=10.8.40.160:2181,10.8.40.161:2181,10.8.40.162:2181/kafka-2-7-1/bigdata_rebuild

3.3 新建目录
在/data目录下新建 目录kafka_2.7.1
3.4 启动服务
进入到/usr/local/kafka_2.13-2.7.1/bin目录下启动kafka(必须先启动zookeeper)
#启动命令
./kafka-server-start.sh -daemon …/config/server.properties
#创建topic命令
./kafka-topics.sh --create --zookeeper 10.8.40.160:2181/kafka-2-7-1/bigdata_rebuild --replication-factor 2 --partitions 1 --topic order_topic
#创建broker 生产者
./kafka-console-producer.sh --broker-list 10.8.40.160:19092 --topic order_topic
#创建broker 消费者
./kafka-console-consumer.sh --bootstrap-server 10.8.40.160:19092 --topic order_topic --from-beginning
#查看kafka的指定topic
./kafka-topic.sh --zookeeper 10.8.40.160:2181/kafka-2-7-1/bigdata_rebuild --describe --topic shuaige

4 安装部署kafka监控
4.1 下载 jmx_export
4.2 配置 jmx_export 目录及文件
在/usr/local/jmx_export目录下
添加kafka-2_7_1.yml文件 (包括各种监控规则指标)
4.3 修改kafka启动脚本
kafka_server_start.sh
添加export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G -Xss1280k -javaagent:/usr/local/jmx_export/jmx_prometheus_javaagent-0.15.0.jar=9998:/usr/lo cal/jmx_export/kafka-2_7_1.yml"
export JMX_PORT=“9999”

4.4 修改prometheus 配置文件
prometheus 服务器地址: ip 10.5.62.235,安装目录/usr/local/prometheus-server/config/exporters/kafka
修改zk-bigdata-rebuild-01.yaml文件
#添加
targets:

  • 10.8.40.159:9998
  • 10.8.40.160:9998
  • 10.8.40.161:9998
  • 10.8.40.162:9998
  • 10.8.40.167:9998
  • 10.8.40.168:9998
    4.5 更新prometheus 配置文件
    prometheus 修改配置后重新加载配置 http://ops.dangdang.com/arch/prometheus/-/reload

5 安装部署zookeeper监控
5.1 配置 jmx_export 目录及文件
配置 zookeeper.yaml文件
5.2 配置java.env文件
在/usr/local/apache-zookeeper-3.6.3-bin/conf目录下配置java.env文件
export JMX_DIR="/usr/local/jmx_export/"
Export SERVER_JVMFLAGS=“ S E R V E R J V M F L A G S − j a v a a g e n t : SERVER_JVMFLAGS -javaagent: SERVERJVMFLAGSjavaagent:JMX_DIR/jmx_prometheus_javaagent-0.15.0.jar=9996:$JMX_DIR/zook eeper.yaml”

5.3 修改prometheus 配置文件
prometheus 服务器地址: ip 10.5.62.235,安装目录/usr/local/prometheus-server/config/exporters/zookeeper
修改zk-bigdata-rebuild-01.yaml文件
#添加
targets:

  • 10.8.40.160:9996
  • 10.8.40.161:9996
  • 10.8.40.162:9996

5.4 更新prometheus 配置文件
prometheus 修改配置后重新加载配置 http://ops.dangdang.com/arch/prometheus/-/reload
10.8.40.160,10.8.40.161,10.8.40.162 3台机器)

Logo

Kafka开源项目指南提供详尽教程,助开发者掌握其架构、配置和使用,实现高效数据流管理和实时处理。它高性能、可扩展,适合日志收集和实时数据处理,通过持久化保障数据安全,是企业大数据生态系统的核心。

更多推荐