前期工作:

    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集群搭建成功