前期工作:
1.hadoop2.x集群首先要搭建好,我这里是分布式,三台虚拟机
2.要进行时间同步(很重要),我这里用的是ntp服务
一、搭建zookeeper
1.上传zookeeper安装包,并且将安装包解压到/opt/modules/目录下
2.进入zookeerper目录,创建一个data文件夹,并在data文件夹里面创建一个myid文件,在myid文件中写入数字0
命令是:mkdir data
cd data
touch myid
vi myid
3.编辑配置文件
进入/zookeeper/conf/目录下
将zoo_sample.cfg 重命名为 zoo.cfg,并将文件做以下修改:
dataDir=/opt/modules/zookeeper-3.4.5-cdh5.3.6/data (这个是原有的,直接修改)
(下面三个是要添加的) server.0=hadoopNumber01.medal.com:2888:3888 server.1=hadoopNumber02.medal.com:2888:3888 server.2=hadoopNumber03.medal.com:2888:3888
4.分发到其它两个虚拟机
进入/opt/modules/目录下
命令:
cd /opt/modules/
scp -r zookeeper/ xunzhang@hadoopNumber02.medal.com:/opt/modules/
scp -r zookeeper/ xunzhang@hadoopNumber03.medal.com:/opt/modules/
5.修改myid文件
在另外两台虚拟机上,将/opt/modules/zookeeper/data/myid文件中的数字0,分别改成1,2
6.启动验证
分别在三台虚拟机,zookeeper目录下,输入以下命令:
bin/zkServer.sh start
三台启动完成后,在执行下面的命令
bin/zkServer.sh status
如果状态是两个follower和一个leader,则表明安装成功
至此,完成了zookeeper的搭建
二、搭建kafka
在zookeeper搭建成功的前提下,我们就可以搭建kafka了
1.首先我们在三台虚拟机上安装scala,这个比较简单,我在这里就简单的说一下步骤
1>上传scala安装包,并进行解压
2>配置环境变量
注意:三台虚拟机都要做以上操作
2.安装kafka
1>上传kafka安装包,并将其解压到/opt/modules/目录下
2>编辑配置文件
进入kafka/config/目录下
server.properties文件:修改两个地方
broker.id=0 这里默认就行,另外两台虚拟机,分别是1和2
zookeeper.connect=........
这里填写你的zookeeper集群的ip地址,注意:一定得是ip地址,域名好像不可以,端口号是2181
所以我的是:zookeeper.connect= 192.168.174.131:2181,192.168.174.132:2181,192.168.174.133:2181
进入kafka/bin/目录下
kafka-run-class.sh文件:删除一个地方
if [ -z "$KAFKA_JVM_PERFORMANCE_OPTS" ]; then
KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:
+CMSClassUnloadingEnabled -XX:+CMSScavengeBeforeRemark -XX:+DisableExplicitGC -Djava.awt.headless=true"
fi
去掉-XX:+UseCompressedOops即可
3>拷贝jar包到libs目录下
将slf4j-1.7.6.zip上传到集群
unzip slf4j-1.7.6.zip
把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面
4>分发配置文件
命令:
进入/opt/modules/目录下
scp -r kafka..../ xunzhang@hadoopNumber02.medal.com:/opt/modules/
scp -r kafka..../ xunzhang@hadoopNumber03.medal.com:/opt/modules/
5>修改另外两台虚拟机的配置文件
进入kafka/config/目录下
server.properties文件
broker.id=1
在另外一台虚拟机上把broker.id=2,即可
3.测试kafka集群
1>在三台机器上的kafka目录下,分别执行以下命令:nohup bin/kafka-server-start.sh config/server.properties &
2>cat nohup.out
3>在第一台虚拟机上开一个窗口(窗口1),并进入kafka目录下执行以下命令:
bin/kafka-topics.sh --zookeeper 192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create
bin/kafka-console-producer.sh --broker-list 192.168.1.105:9092,192.168.1.106:9092,192.168.1.107:9092 --topic TestTopic
在第一台虚拟机上另开一个窗口(窗口2)执行以下命令
bin/kafka-console-consumer.sh --zookeeper 192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181 --topic TestTopic --from-beginning
执行完后,在窗口1,输入hello world,看看在窗口2,是否出现hello world
注意:这里的ip地址,是你zookeeper集群的ip
至此kafka集群搭建成功