4. zookeeper 和 kafka 的安装
4.1 安装ZooKeeper包
(1)对zookeeper-3.4.5.tar.gz进行解压缩:tar -zxvf zookeeper-3.4.5.tar.gz
(2)对zookeeper目录进行重命名:mv zookeeper-3.4.5 zk
(3)配置zookeeper相关的环境变量
vim ~/.bashrc
export ZOOKEEPER_HOME=/usr/local/zk
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source ~/.bashrc
配置zoo.cfg
cd zk/conf
mv zoo_sample.cfg zoo.cfg
vim zoo.cfg
修改:dataDir=/usr/local/zk/data
新增:
server.0=spark1:2888:3888
server.1=spark2:2888:3888
server.2=spark3:2888:3888
设置zk节点标识
cd zk
mkdir data
cd data
vi myid
0
搭建zk集群
1、在另外两个节点上按照上述步骤配置ZooKeeper,使用scp将zk和.bashrc拷贝到spark2和spark3上即可。
2、唯一的区别是spark2和spark3的标识号分别设置为1和2。
运行,检查jps
1、分别在三台机器上执行:zkServer.sh start
2、检查ZooKeeper状态:zkServer.sh status
出现的问题:
zookeeper 启动的时候出现 Starting zookeeper ... already running as process 2810.
进入data目录下
rm ./zookeeper_server.pid
4.2 安装kafka
4.2.1 安装scala
1、将scala-2.11.4.tgz使用WinSCP拷贝到spark1的/usr/local目录下。
2、对scala-2.11.4.tgz进行解压缩:tar -zxvf scala-2.11.4.tgz
3、对scala目录进行重命名:mv scala-2.11.4 scala
4、配置scala相关的环境变量
vim ~/.bashrc
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
source ~/.bashrc
5、查看scala是否安装成功:scala -version
6、按照上述步骤在spark2和spark3机器上都安装好scala。使用scp将scala和.bashrc拷贝到spark2和spark3上即可。
安装Kafka包
1、将kafka_2.9.2-0.8.1.tgz使用WinSCP拷贝到spark1的/usr/local目录下。
2、对kafka_2.9.2-0.8.1.tgz进行解压缩:tar -zxvf kafka_2.9.2-0.8.1.tgz
3、对kafka目录进行改名:mv kafka_2.9.2-0.8.1 kafka
4、配置kafka
vi /usr/local/kafka/config/server.properties
broker.id:依次增长的整数,0、1、2、3、4,集群中Broker的唯一id
zookeeper.connect=192.168.1.107:2181,192.168.1.108:2181,192.168.1.109:2181
5、安装slf4j
将课程提供的slf4j-1.7.6.zip上传到/usr/local目录下
unzip slf4j-1.7.6.zip
把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面
搭建kafka集群
1、按照上述步骤在spark2和spark3分别安装kafka。用scp把kafka拷贝到spark2和spark3行即可。
2、唯一区别的,就是server.properties中的broker.id,要设置为1和2
启动kafka集群
1、在三台机器上分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties &
2、使用jps检查启动是否成功
报错:
kafka 启动 报错cannot allocate memory,即内存不足
错误提示: Java Hotspot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error='Cannot allocate memory' (errno=12) # # There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 986513408 bytes for committing reserved memory.
# An error report file with more information is saved as:
# hs_err_pid5535.log
解决办法: 将 kafka-server-start.sh的 export KAFKA_HEAP_OPTS="-Xmx1G -Xms1G" 修改为 export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" 因为我的内存是1G
https://blog.csdn.net/gywtzh0889/article/details/51773536
新建 /tmp/kafka-logs 在server.properties 内
测试kafka集群
使用基本命令检查kafka是否搭建成功
bin/kafka-topics.sh --zookeeper 192.168.1.107:2181,192.168.1.108:2181,192.168.1.109:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
bin/kafka-console-producer.sh --broker-list 192.168.1.107:9092,192.168.1.108:9092,192.168.1.109:9092 --topic TestTopic
bin/kafka-console-consumer.sh --zookeeper 192.168.1.107:2181,192.168.1.108:2181,192.168.1.109:2181 --topic TestTopic --from-beginning