Linux-Zookeeper+Kafka集群安装配置

Zookeeper+Kafka集群安装配置

(Linux系统下安装步骤)

依赖环境搭建

安装 Java1.8 (三台机器统一)

1. 把Java的源文件包java_1.8.0_171放入 /opt目录中,编辑>vi /etc/profile 追加以下内容到文件中,保存:wq后退出

JAVA_HOME=/opt/java_1.8.0_171

export PATH=${JAVA_HOME}/bin:$PATH

export CLASSPATH=.:${JAVA_HOME}/lib/tools.jar:${JAVA_HOME}/lib/dt.jar

2. 执行 >source /etc/profile 使环境变量立即生效

3. 验证>java -version,测试安装是否成功

 

创建用户

考虑到root权限比较大,尽量不要用root用户启动进程,建议新建admin用户

1. 创建用户 >useradd admin    此处三台机子的用户名必须相同

2. 设置密码 >passwd admin

       >123456

3. 验证>ll,查看home下目录权限及所有信息

  权限详解:https://blog.csdn.net/lv8549510/article/details/85406215

Linux-Zookeeper+Kafka集群安装配置

 

 首字母d为文件夹,l为文件,权限分类如上图

r:4,w:2,x:1 (rwx :4+2+1=7 ,rw: 4+2=6,……)

1. 设置权限>chmod 777 文件目录/文件名

注:此目录下所有文件权限:文件路径/*

2. 设置文件夹/文件所有者

>chown -R admin:admin 文件目录/文件

3.所有服务器上,Zookeeper、Kafka、Flink需要有rwx三个权限,即在所有者登录后可以设置755权限

4. 切换admin用户操作(注:admin用户主目录在/home/admin下)

   >su admin

 

Zookeeper安装

Zookeeper versionzookeeper-3.4.10.tgz

服务器:203.3.239.114,203.3.239.115,203.3.239.116(后续文档中IP用node1/node2/node3代替)

部署目录:/home/admin/zookeeper(后续文档中目录用$zookeeper_path代替)

!在java1.8安装成功后

!切换admin用户,并进入/home/admin目录下

1. 创建$zookeeper_path目录,解压zookeeper-3.4.10.tar包,放到$zookeeper_path目录下

  >mkdir -p $zookeeper_path

  >tar -xzvf zookeeper-3.4.10.tar.gz

2. 进入conf目录下,复制、修改zoo.cfg文件

  >cd /zookeeper-3.4.10/conf

  >cp zoo_sample.cfg zoo.cfg

  修改zoo.cfg文件内容

tickTime = 2000

initLimit = 10

syncLimit = 5

dataDir = $zookeeper_path/data   #数据所在目录

dataLogDir =  $zookeeper_path/datalog  #数据日志所在目录

server.1 = node1:2888:3888  #2888集群中内部通讯端口

server.2 = node2:2888:3888

server.3 = node3:2888:3888

3. 创建data和logs目录

  >mkdir $zookeeper_path/data

  >mkdir $zookeeper_path/datalog

4. 在$zookeeper_pat/data目录下,创建myid文件,并写入1(注:不同节点的myid序号不同,与步骤2中的server配置保持严格一致)

   >echo “1”>> $zookeeper_path/data/myid

5. 复制zookeeper目录到node2,node3服务器上

  >scp -r $zookeeper_path admin@node2:/home/admin

  >scp -r $zookeeper_path admin@node3:/home/admin

  并修改data/myid文件内容

  node2:$zookeeper_path/data/myid内容改为2

  node3:$zookeeper_path/data/myid内容改为3

6. 在node1,node2,node3服务器上进入 $zookeeper_path/zookeeper-3.4.10目录下,执行脚本启动Zookeeper集群

  启动:>./bin/zkServer.sh start

  停止:>./bin/zkServer.sh stop

  查看状态:>./bin/zkServer.sh status

7. 验证

  1)  在node1,node2,node3上执行>./bin/zkServer.sh status查看状态命令,会打印如下内容,则说明集群部署成功

JMX enabled by default

Using config:/opt/apache/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg

Mode:leader或者follower

  2)  >netstat -tunl | grep 2181,发现2181端口正在运行即可

  3)  >./bin/zkCli.sh -server node1:2181进入zookeeper集群,执行>ls /,弹出集群根目录([zookeeper])表示部署完成,并用quit突出

 

Kafka安装

Kafka version:kafka_2.12-2.3.1.tgz

服务器:203.3.239.114,203.3.239.115,203.3.239.116(后续文档中IP用node1/node2/node3代替)

部署目录:/home/admin/kafka(后续文档中目录用$kafka _path代替)

!在Zookeeper安装成功后(Kafka使用 Zookeeper来保存 broker 、topic和分区的元数据信息)

1. 创建$kafka _path目录,并解压kafka_2.12-2.3.1.tgz到此目录下

  >mkdir $kafka _path

  > tar -xzvf kafka_2.12-2.3.1.tgz

2. 进入部署目录,修改config/目录下的server.properties

  •   Kafka 1:

borker.id = 1  #三个服务器互不相同即可

advertised.listeners = PLANTEXT://node1:9092

log.dirs = $kafka_path/data-log

zookeeper.connect = zknode1:2181,zknode2:2181,zknode3:2181

zookeeper.connection.timeout.ms = 6000

  •   Kafka 2:

borker.id = 2

advertised.listeners = PLANTEXT://node2:9092

log.dirs = $kafka_path/data-log

zookeeper.connect = zknode1:2181,zknode2:2181,zknode3:2181

zookeeper.connection.timeout.ms = 6000

  •   Kafka 3:

borker.id = 3

advertised.listeners = PLANTEXT://node3:9092

log.dirs = $kafka_path/data-log

zookeeper.connect = zknode1:2181,zknode2:2181,zknode3:2181

zookeeper.connection.timeout.ms = 6000

3. 在node1,node2,node3服务器上,启动运行kafka集群脚本

  启动:>kafka-server-start.sh -daemon $kafka_path/kafka_2.12-2.3.1/config/server.properties

  停止:>kafka-server-stop.sh

4. 验证

  1)  在node1,node2,node3服务器上,执行>netstat –tunl | grep 9092,查看9092端口是否启动成功

  2)  创建topic,用于接收信息

    >./bin/kafka-topics.sh --create --bootstrap-server node1:9092,node2:9092,node3:9092 --topic <topic-name> --partitions <partitions_number> --replication-factor < replication-factor_number>

  • 创建cb_transing为例

<topic-name>

cb_transing

主题名称

<partitions_number>

3

分区数

< replication-factor_number>

3

副本数

  3)  查看topic是否创建成功

    >./bin/kafka-topic.sh --list --bootstrap-server node1:9092,node2:9092,node3:9092

  4)  生产消息

    >./bin/kafka-console-producer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic cb_transing

  5)  消费消息

    >./bin/kafka-console-consumer.sh –from-beginning --bootstrap-server node1:9092,node2:9092,node3:9092 --topic cb_transing

  可以成功生产消息,并可以接收,则kafka安装成功!!!

Linux-Zookeeper+Kafka集群安装配置

上一篇:DRILLNET 2.0------第十七章 正常钻进水力参数计算模型


下一篇:how do you quit docker-compose up @ macOS?