Zookeeper+Kafka+Elasticsearch集群搭建
Zookeeper+Kafka+Elasticsearch集群搭建
一、zookeeper + kafka
版本:
kafka_2.11-2.1.1
zookeeper-3.4.13
| 序号 | ecs | 备注 |
|---|---|---|
| 1 | 192.168.40.100 | |
| 2 | 192.168.40.101 | |
| 3 | 192.168.40.102 |
环境介绍:
Java环境(kafka新版本要求Java8)

1.首先下载kafka安装包http://kafka.apache.org/downloads
2.解压安装包并配置(目录:/home/soft/kafka_2.11-2.1.1/config)
zookeeper 配置 zookeeper.properties
#数据目录,不建议放到程序内,因为更新到时候容易丢,应该放在统一到数据目录
dataDir=/home/soft/data/zookeeper
#zookeeper中使用的基本时间单位, 毫秒值
tickTime=2000
#这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个 tickTime 时间间隔数。这里设置为5表名最长容忍时间为 5 * 2000 = 10 秒
initLimit=10
#这个配置标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5 * 2000 = 10秒
syncLimit=5
#客户端连接的端口
clientPort=2181
#每个IP最大客户端连接数,0表示关闭限制
maxClientCnxns=1000
#节点信息
server.1=192.168.40.100:2888:3888
server.2=192.168.40.101:2888:3888
server.3=192.168.40.102:2888:3888
kafka 配置 server.properties
#非负整数,用于唯一标识broker,不同节点该值必须不一样,比如 1,2,3
broker.id=1
# broker 发布给生产者消费者的hostname,会存储在zookeeper。配置好这个host可以实现内网外网同时访问。
listeners=PLAINTEXT://192.168.40.100:9092
#borker进行网络处理的线程数
num.network.threads=3
#borker进行I/O处理的线程数
num.io.threads=8
#发送缓冲区buffer大小,数据不是一下子就发送的,先回存储到缓冲区了到达一定的大小后在发送,能提高性能
socket.send.buffer.bytes=102400
#kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘
socket.receive.buffer.bytes=102400
#这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小
socket.request.max.bytes=104857600
#kafka存放消息的目录
log.dirs=/home/soft/data/kafka/kafka-logs
#kafka服务日志
LOG_DIR=/home/soft/kafka_2.11-2.1.1/logs
#每个topic默认partition数量,根据消费者实际情况配置,配置过小会影响消费性能
num.partitions=30
# kafka启动恢复日志,关闭前日志刷盘的线程数,如果是raid的盘的话适当增加,比如3
num.recovery.threads.per.data.dir=2
#是否允许删除topic,开发环境应该是true,测试及生产环境应该是false
delete.topic.enable=true
#每个topic的副本数量,默认为1,生产最好3个以上
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
#日志刷盘机制默认,10000条刷一次,1秒刷一次
#log.flush.interval.messages=10000
#log.flush.interval.ms=1000
#日志保留时间,默认为7天,如果量大,可以酌情改小,比如三天
log.retention.hours=168
#日志保留大小,默认是保留1G,生产上可以配置为下面50G
log.retention.bytes=53687091200
#The interval at which log segments are checked to see if they can be deleted according
# to the retention policies
log.retention.check.interval.ms=300000
#Zookeeper host和port ,这个看zookeeper环境而设置
zookeeper.connect=192.168.40.100:2181,192.168.40.101:2181,192.168.40.102:2181
#Zokeeper 连接超时时间
zookeeper.connection.timeout.ms=6000
#是让coordinator推迟空消费组接收到成员加入请求后本应立即开启的rebalance。在实际使用时,假设你预估你的所有consumer组成员加入需要在10s内完成,那么你就可以设置该参数10000
group.initial.rebalance.delay.ms=10000
3.启动服务
/home/soft/kafka_2.11-2.1.1/bin/zookeeper-server-start.sh -daemon /home/soft/kafka_2.11-2.1.1/config/zookeeper.properties
/home/soft/kafka_2.11-2.1.1/bin/kafka-server-start.sh -daemon /home/soft/kafka_2.11-2.1.1/config/server.properties
使用systemctl启动kafka 开机自启
cd /usr/lib/systemd/system
新增两个文件
zookeeper.service
[Unit]
Description=Zookeeper Service unit Configuration
After=network.target
[Service]
Type=simple
user=root
group=root
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.1.al7.x86_64/jre
ExecStart=/home/soft/kafka_2.11-2.1.1/bin/zookeeper-server-start.sh /home/soft/kafka_2.11-2.1.1/config/zookeeper.properties
ExecStop=/home/soft/kafka_2.11-2.1.1/bin/zookeeper-server-stop.sh
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
kafka.service
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target remote-fs.target
After=network.target remote-fs.target zookeeper.service
[Service]
Type=simple
User=root
Group=root
Environment=JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.282.b08-1.1.al7.x86_64/jre
ExecStart=/home/soft/kafka_2.11-2.1.1/bin/kafka-server-start.sh /home/soft/kafka_2.11-2.1.1/config/server.properties
ExecStop=/home/soft/kafka_2.11-2.1.1/bin/kafka-server-stop.sh
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
重新加载配置文件
systemctl daemon-reload
启动服务
systemctl start zookeeper
systemctl start kafka
开启重启
systemctl enable zookeeper
systemctl enable kafka
二、elasticsearch
版本:
elasticsearch-6.6.0
| 序号 | ecs | 备注 |
|---|---|---|
| 1 | 192.168.40.100 | |
| 2 | 192.168.40.101 | |
| 3 | 192.168.40.102 |
环境介绍:(同上)
Java环境(kafka新版本要求Java8)
1.下载elasticsearch rpm包 yum安装(https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-6-0)
2.修改配置文件
默认路径:/etc/elasticsearch/elasticsearch.yml
#集群名称
cluster.name: audi
#节点名称
node.name: audi-node1
#分配给当前节点的索引数据所在的位置
path.data: /home/soft/elasticsearch/data
#日志文件所在位置
path.logs: /home/soft/elasticsearch/logs
#默认情况下,ElasticSearch使用0.0.0.0地址,并为http传输开启9200-9300端口,为节点到节点的通信开启9300-9400端口,也可以自行设置IP地址
network.host: 192.168.40.100
#可以定制该节点与其他节点交互的端口
http.port: 9200
#设置新节点被启动时能够发现的主节点列表(主要用于不同网段机器连接)
discovery.zen.ping.unicast.hosts: ["192.168.40.100", "192.168.40.101", "192.168.40.102"]
#是否支持跨域,默认为false
http.cors.enabled: true
#当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。
http.cors.allow-origin: "*"
3.启动服务
systemctl enable elasticsearch
systemctl daemon-reload
systemctl start elasticsearch
systemctl status elasticsearch
4.安装中⽂分词插件(可选)
#查看已安装插件
/usr/share/elasticsearch/bin/elasticsearch-plugin list
#在线安装IK
/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.0/elasticsearch-analysis-ik-6.6.0.zip
#离线安装IK
本地下载elasticsearch-analysis-ik-6.6.0.zip 上传至服务器
进入目录/usr/share/elasticsearch/plugins
把zip文件解压重命名ik

5.查询
#查看节点信息
curl -X GET http://localhost:9200/_nodes
#打开⽂件数信息
curl -X GET http://localhost:9200/_nodes/stats/process? filter_path=**.max_file_descriptors
#集群健康状态
curl -X GET http://localhost:9200/_cat/health?v
#查看集群索引数
curl -X GET http://localhost:9200/_cat/indices?v
#查看磁盘分配情况
curl -X GET http://localhost:9200/_cat/allocation?v
#查看集群节点
curl -X GET http://localhost:9200/_cat/nodes?v
#查看集群其他信息
curl -X GET http://localhost:9200/_cat

浙公网安备 33010602011771号