Spark程序的开发,难免会迁涉到Kafka的有关内容,而Kafka的运行又依赖于Zookeeper。
Zookeeper的安装与部署
官网下载的Kafka程序包里面已经包含的一个Zookeeper程序,在这些文章中,我们没有使用它,而是使用了独立的Zookeeper程序。
- 先去官网下载Zookeeper程序:zookeeper-3.4.12.tar.gz
与前一篇文章一样,我们也把它解压到opt目录下,执行如下命令:
tar -zxvf zookeeper-3.4.12.tar.gz -C /opt
- 修改/etc/profile文件,增加如下的环境变量:
export ZOOKEEPER_HOME=/opt/zookeeper-3.4.12 export PATH=$PATH:$ZOOKEEPER_HOME/bin
- 从模板复制${ZOOKEEPER_HOME}/conf/zoo_sample.cfg文件为zoo.cfg文件,并修改内容如下
tickTime=2000 dataDir=/opt/zookeeper-3.4.12/tmp/zookeeper dataLogDir=/opt/zookeeper-3.4.12/logs clientPort=2181 initLimit=10 syncLimit=5 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888
- 在上面配置的dataDir目录下建立data文件夹,执行如下命令
mkdir -p /opt/zookeeper-3.4.12/tmp/zookeeper/data
- 有/opt/zookeeper-3.4.12/tmp/zookeeper/data目录下建立myid文件,其内容与zoo.cfg文件对应,如master机器为server.1,则myid文件就写入1,slave2为server.2,则myid就写入2。以master机器为例,执行如下命令:
echo '1' > /opt/zookeeper-3.4.12/tmp/zookeeper/data/myid
- 将所有文件及配置刚刚起步的其它机器,在各机器上分别启动zookeeper,分行如下命令:
/opt/zookeeper-3.4.12/bin/zkServer.sh start
说明:在各zookeeper节点使用jps命令,可以看到QuorumPeerMain进程则启动成功。
Kafka的安装与配置
Kafka的运行是依赖Zookeeper的,后面会提到。
- 去官网下载Kafka程序:kafka_2.12-1.0.0.tgz
同样解压到/opt目录下,执行如下命令:
tar -zxvf kafka_2.12-1.0.0.tgz -C /opt
- 修改/etc/profile文件,增加如下环境变量:
export KAFKA_HOME=/opt/kafka_2.12-1.0.0 export PATH=$PATH:$KAFKA_HOME/bin
- 修改$KAFKA_HOME/config/server.properties文件,内容如下
broker.id=0 listeners=PLAINTEXT://master:9092 log.dirs=/opt/kafka_2.12-1.0.0/logs zookeeper.connect=master:2181,slave1:2181,slave2:2181 delete.topic.enable=true
- 将程序及配置文件分发到其它集群
说明:注意修改$KAFKA_HOME/config/server.properties文件中的两个master为对应的slave1和slave2,borker.id要设置成不同的整数。
- 在各机器分别启动Kafka,执行如下命令:
/opt/kafka_2.12-1.0.0/bin/kafka-server-start.sh -deamon /opt/kafka_2.12-1.0.0/config/server.properties
- 创建一个topic,测试集群是否全部启动成功,执行如下命令:
kafka-topics.sh --zookeeper master:2181,slave1:2181,slave2:2181 --create --topic test --replication-factor 3 partitions 2
说明:如果显示成功,则Kafka部署完成。其中replication-factor参数设置为安装Kafka的机器数,以验证是否所有的节点都启动成功。