集群hadoop1、hadoop2、hadoop3,并且分别搭建好zookeeper3.5.7
下载完成后,上传到集群中。(SecureCRT 中可以输入rz进行上传文件)
我将文件上传到了/opt/software/
,用来存放软件包的位置
先将kafka进行解压
tar -zxvf /opt/software/kafka_2.11-2.4.1.tgz -C /opt/module
将Kafka进行重命令
mv kafka_2.11-2.4.1 kafka
修改所有权到普通用户
sudo chown andy:andy kafka
andy 是我的用户名
进入到kakfa的config
目录中,并修改server.properties
cd config
修改server.properties
文件
vim server.properties
修改内容:
第一处:broker.id
broker.id=0
hadoop1 的broker.id 为 0、hadoop2broker.id 为 1、hadoop3broker.id 为 2,并且id的数据是唯一的,每台都需要进行修改
第二处:log.dir 数据存放位置/opt/module/kafka/datas
,原来存放的位置在/tmp
目录下的
log.dir=/opt/module/kafka/datas
第三处:设置zookeeper的连接
zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop2:2181/kafka
在/etc/profile.d/
中,创建my_env.sh
cd /etc/profile.d/
在创建my_env.sh
vim my_env.sh
添加内容:
#Kafka
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
sudo scp -r /opt/module/kafka hadoop2:/opt/module/
sudo scp -r /opt/module/kafka hadoop3:/opt/module/
hadoop2、hadoop3的ip地址是我在hadoop1的host中映射了的。如果没有映射的话,可以通过指定ip进行分发数据
sudo scp -r /opt/module/kafka 用户名@IP地址:/opt/module/
sudo scp -r /etc/profile.d/my_env.sh 用户名@IP地址:/etc/profile.d/
注意:需要到其他集群中,重新执行配置文件,让环境生效source /etc/profile
(分别需要在hadoop1、hadoop2、hadoop3中进行执行)
每台集群的broker.id值进行修改
方法一:
在每台hadoop1、hadoop2、hadoop3中执行zkServer.sh start
方法二:创建启动脚本zk.sh
在bin中创建
vim ~/zk.sh
注意:配置文件中的Hadoop1、hadoop2、hadoop3是我自己的集群,需要自己修改,
#/bin/bash
case $1 in
"start")
for i in hadoop1 hadoop2 hadoop3
do
echo "=============$i============="
ssh $i "zkServer.sh start"
done
;;
"stop")
for i in hadoop1 hadoop2 hadoop3
do
echo "=============$i============="
ssh $i "zkServer.sh start"
done
;;
"status")
for i in hadoop1 hadoop2 hadoop3
do
echo "=============$i============="
ssh $i "zkServer.sh status"
done
;;
esac
修改文件权限
chmod u+x zk.sh
启动命令:
zk.sh start
方法一:
每台kakfa
的集群都需要启动:
kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
方法二:创建启动脚本kf.sh
vim kf.sh
输入:
#/bin/bash
case $1 in
"start")
for i in hadoop1 hadoop2 hadoop3
do
echo "=============$i============="
ssh $i "kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties"
done
;;
"stop")
for i in hadoop1 hadoop2 hadoop3
do
echo "=============$i============="
ssh $i "kafka-server-stop.sh -daemon $KAFKA_HOME/config/server.properties"
done
;;
esac
并给kf.sh
添加执行权限
chmod u+x kf.sh
启动kafka
kf.sh start
注意:
补充知识:Apache的大数据组件各个版本的兼容
框架 | 旧版本Hadoop2 | 新版本hadoop3 |
---|---|---|
Hadoop | 2.7.2 | 3.1.3 |
Zookeeper | 3.4.10 | 3.5.7 |
MySQL | 5.6.24 | 5.7.16 |
Hive | 1.2.1 | 3.1.2 |
Flume | 1.7.2 | 1.9.0 |
Kafka | 0.11–0.2 | 2.4.1 |
Kafka Eagle | 1.7.0 | 1.9.0 |
Azkaban | 2.5.0 | 3.84.4 |
Spark | 2.1.1 | 3.0.0 |
Hbase | 1.3.1 | 2.0.5 |
Phoenix | 4.14.1 | 5.0.0 |
Sqoop | 1.4.6 | 1.4.6 |
Presto | 0.189 | 0.189 |
Kylin | 2.5.1 | 3.0.1 |
Atlas | 0.8.4 | 2.0.0 |
Ranger | 2.0.0 | 2.0.0 |
Solr | 5.2.1 | 7.7.0 |
补充知识:server.properties 的解读