Zookeeper + Kafka 集群搭建

版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。 https://blog.csdn.net/fgf00/article/details/79550875

下载地址

zookeeper : http://zookeeper.apache.org/releases.html

Kafka :http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/0.11.0.2/kafka_2.11-0.11.0.2.tgz

Java :http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

环境:

主机A: 10.100.0.100
主机B:10.100.0.101
主机C10.100.0.102

一、zookeeper 集群搭建

三台主机均执行以下操作:

tar zxvf zookeeper-3.4.10.tar.gz -C /data/server
cd /data/server/zookeeper-3.4.10/conf
cp zoo_sample.cfg zoo.cfg
mkdir /data/server/zookeeper-3.4.10/data    # 创建data目录

vim zoo.cfg

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/server/zookeeper-3.4.10/data  # data存放目录
clientPort=2181    # 监听端口
maxClientCnxns=0   # 不限制
server.1=10.100.0.100:2888:3888    # 枚举端口
server.2=10.100.0.101:2888:3888
server.3=10.100.0.102:2888:3888
# 2888 leader端口,只一个监听。3888 选举端口,每个主机都监听

每个主机 数据目录生成server id,和上面的 server.* 的对应

# 以主机C:10.100.0.102 ,server.3为例
echo 3 > /data/server/zookeeper-3.4.10/data/myid  

启动zookpeeper,这里使用web用户启动,root用户也一样

chown -R web.web /data/server/
su - web -c "/data/server/zookeeper-3.4.10/bin/zkServer.sh start"

二、kafka集群部署

系统配置

1、安装java环境

tar zxvf jdk-8u102-linux-x64.tar.gz -C /data/server
ln -s /data/server/jdk1.8.0_102/bin/java* /usr/bin/
或在/etc/profile、kafka启动命令文件中添加
export JAVA_HOME=/data/server/jdk1.8.0_102

2、操作系统fd进行调整为100K,禁用swapping (根据系统资源设置)

sudo swapoff -a

vim /etc/sysctl.conf     # 系统最大打开文件描述符数
fs.file-max = 1000000

vim /etc/security/limits.conf  # 增加下面的行
* hard nofile 1000000
* soft nofile 1000000
root hard nofile 1000000
root soft nofile 1000000

echo 2000000 > /proc/sys/fs/nr_open  # 要注意的就是hard limit不能大于/proc/sys/fs/nr_open,因此有时你也需要修改nr_open的值。

kafka 集群安装

tar zxvf kafka_2.11-0.11.0.2.tgz -C /data/server
mkdir -p /data/server/kafka_2.11-0.11.0.2/storage

cd /data/server/kafka_2.11-0.11.0.2/config
vim server.properties 修改以下几个选项(以主机C:10.100.0.102为例)

broker.id=102  # 1000内非负整数,用于唯一标识broker
num.io.threads=20   # 调整kafka默认线程池大小
num.partitions=2    # kafka副本数
log.retention.hours=72     # 日志保留时间
# 默认配置文件#listeners=PLAINTEXT://:9092,这样无法连接,需改为IP:port
listeners=PLAINTEXT://10.100.0.102:6678
log.dirs=/data/server/kafka_2.11-0.11.0.2/storage  # 日志存放位置
# zk集群地址
zookeeper.connect=10.100.0.100:2181,10.100.0.101:2181,10.100.0.102:2181
port=6677  
host.name=10.100.20.102
default.replication.factor = 3  # 每个分区使用3个副本  最大限度保证不丢
min.insync.replicas = 2 # 最少保证写两个节点都收到才能算写入成功,最大限度保证不丢
num.replica.fetcher = 10 # 适当放大 提高节点间同步速度

java 服务监听ipv4端口JVM需要分配10GB的堆内存
监听ipv6地址端口,线上有时候会有连接问题
vim .bin/kafka-server-start.sh

export _JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"
export KAFKA_HEAP_OPTS="-Xmx10G -Xms10G"

启动kafka:

./bin/kafka-server-start.sh -daemon ./config/server.properties

猜你喜欢

转载自blog.csdn.net/fgf00/article/details/79550875