Linux搭建zookeeper+kafka集群

zookeeper安装部署

前提:必须安装java环境,最好1.8版本的jdk,配好环境变量

  1. 准备环境

    三台Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164

    zookeeper安装包:zookeeper-3.4.13.tar.gz

  2. 安装zookeeper

    先把安装包拷入Linux系统中,目录为 /work/package/zookeeper-3.4.13.tar.gz

    要安装的目录:/work/zookeeper-3.4.13

    cd /work 打开要解压的目录

    tar -zxvf package/zookeeper-3.4.13.tar.gz          解压文件

    cd zookeeper-3.4.13

    mkdir data               创建data目录

    mkdir log                创建log目录

    cd conf                 打开conf目录

    cp zoo_zample.cfg zoo.cfg                 复制zoo_zample.cfg为zoo.cfg

    vi zoo.cfg                     打开zoo.cfg

    i i在vi中代表要进行编辑,具体vi怎么使用请上网搜索

    找到 dataDir 修改他的值,并在他下面加一个键值对:

    dataDir=/work/zookeeper-3.4.13/data dataLogDir=/work/zookeeper-3.4.13/log

    在文件末尾加集群配置:

    server.1=172.52.0.162:2188:3188

    server.2=172.52.0.163:2188:3188

    server.3=172.52.0.163:2188:3188

    摁ESC退出编辑模式,输入 :wq  保存退出文件

    cd ..            退出到上级目录

    touch data/myid           data目录下新建myid文件(非常重要)

    echo 1 data/myid                myid文件输入1

    这样第一台机器大功告成,复制一份刚刚改好的zookeeper到第二台和第三台机器,并且删掉刚刚新建的myid文件,重新按照同样的方法创建myid ,第二台的值为 2 ,第三台的值为 3

    OK,三台服务器的zookeeper已经完成。

  3. 启动zookeeper

    cd /work/zookeeper-3.4.13/bin            进入zookeeper bin目录下

    ./zkServer.sh start          zookeeper启动,显示STARED即为启动成功

    ./zkServer.sh status         zookeeper状态查看,显示leader或者follower,三台只有一个为leader,其余俩为follower

    ./zkServer.sh stop          zookeeper停止,显示STOP即为停止

kafka安装部署

前提:在已经安装好zookeeper并且已经启动的情况下才能启动kafka

  1. 环境准备

    三台安装好zookeeper的Linux服务器:172.52.0.162,172.52.0.163,172.52.0.164

    kafka安装包:kafka_2.11-0.10.2.0.tgz

  2. 安装kafka

    先把安装包拷入Linux系统中,目录为 /work/package/kafka_2.11-0.10.2.0.tgz

    要安装的目录:/work/kafka_2.11-0.10.2.0

    cd /work

    tar -zxvf package/kafka_2.11-0.10.2.0.tgz

    cd kafka_2.11-0.10.2.0

    mkdir logs

    cd config

    vi server.properties

    打开server.properties后编辑此配置文件,修改部分属性为:(第一台机器配置)

    broker.id=1

    listeners=PLAINTEXT://172.52.0.162:9092 此值集群是一定要配本机IP,否则会被识别为localhost

    advertised.listeners=PLAINTEXT://172.52.0.162:9092 此值集群是一定要配本机IP,否则会被识别为localhost

    log.dirs=/work/kafka_2.11-0.10.2.0/logs

    zookeeper.connect=172.52.0.162:2181,172.52.0.163:2181,172.52.0.164:2181 zookeeper集群地址

    修改完后将此kafka_2.11-0.10.2.0复制一份到第二台第三台机器,

    继续修改上述配置文件:(第二台机器配置)

    broker.id=2

    listeners=PLAINTEXT://172.52.0.163:9092

    advertised.listeners=PLAINTEXT://172.52.0.163:9092

    log.dirs=/work/kafka_2.11-0.10.2.0/logs

    zookeeper.connect=172.52.0.162:2181,172.52.0.163:2181,172.52.0.164:2181

    第三台机器配置:

    broker.id=3 三台此值一定不能重复

    listeners=PLAINTEXT://172.52.0.164:9092

    advertised.listeners=PLAINTEXT://172.52.0.164:9092

    log.dirs=/work/kafka_2.11-0.10.2.0/logs

    zookeeper.connect=172.52.0.162:2181,172.52.0.163:2181,172.52.0.164:2181

    配置完事,可以启动了!

  3. kafka启动

    cd /work/kafka_2.11-0.10.2.0

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

    此种方式启动kafka日志会直接打印到控制台,并且kafka不会再后台运行,关闭日志打印界面kafka就停掉了,所以需要稍作改动:

    ./bin/kafka-server-start.sh /config/server.properties 1>/dev/null 2>&1 &

    其中1>/dev/null 2>&1 是将命令产生的输入和错误都输入到空设备,也就是不输出的意思。/dev/null代表空设备。这样虽然可以在后台运行,但是不能永久运行kafka会几个小时后自动停下来,想永久后台运行得如下命令:./bin/kafka-server-start.sh -daemon /config/server.properties 1>/dev/null 2>&1 &

    每次输入此命令很麻烦,可以写一个shell脚本启动,新建一个文件为start.sh,然后输入一下命令:

    #!/bin/bash

    ./bin/kafka-server-start.sh -daemon /config/server.properties 1>/dev/null 2>&1 &

    大功告成,将此文件拷贝至/work/kafka_2.11-0.10.2.0 目录下即可

    启动,先定位到/work/kafka_2.11-0.10.2.0目录下,

    cd /work/kafka_2.11-0.10.2.0

    ./start.sh

    OK,启动完成!其他两台机器同理!
    关闭kafka,在任何目录下输入命令:  jps  显示kafka前面的那个数就是他的pid,用命令:kill -9 pid  即可杀死kafka进程,或者,用命令:ps -ef | grep kafka  查看kafka进程pid,命令下面第一行root前面的第一个数字即为pid ,用命令:kill pid同样可以杀死该进程。zookeeper同理,若关不掉就用狠点的方法直接杀死其进程,其他应用一样。

最后送上一段很有道理的话:

Several years ago, we didn't hava Tiktok,we used QQ. I haven't logged in my QQ for a long time. The other day I would like to download some pictures from my Qzone. So I download QQ again. Sadly I forgot my password. In order to get back my password, I had to answer a question that I set when I was in primary school. It was "What is your dream ?". I typed in "money". Uh-oh,no ,then I tried "a beautiful girlfriend". Uh-oh, no, then I typed in "fancy cars","big houses", "a decent job", wrong, wrong, wrong. Then I suddenly realized I didn't lose my password, I lost my dream .

你可能感兴趣的:(大数据,Linux服务架设)