一、说明:

        操作系统:linux

        kafka版本信息:kafka_2.11-0.8.2.1

二、具体操作:

1、安装kafka之间先检查操作系统中是否装有JDK,若没有点击打开链接有JDK安装步骤。

2、关闭SELINUX、开启防火墙9092端口

    2.1、关闭SELINUX

        vi /etc/selinux/config
        #SELINUX=enforcing #注释掉
        #SELINUXTYPE=targeted #注释掉
        SELINUX=disabled #增加
        :wq! #保存退出

        setenforce 0 #使配置立即生效

    2.2、配置防火墙,开启9092端口
        vi /etc/sysconfig/iptables #编辑防火墙配置文件
        # Firewall configuration written by system-config-firewall
        # Manual customization of this file is not recommended.
        *filter
        :INPUT ACCEPT [0:0]
        :FORWARD ACCEPT [0:0]
        :OUTPUT ACCEPT [0:0]
        -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
        -A INPUT -p icmp -j ACCEPT
        -A INPUT -i lo -j ACCEPT
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
        -A INPUT -m state --state NEW -m tcp -p tcp --dport 9092 -j ACCEPT
        -A INPUT -j REJECT --reject-with icmp-host-prohibited
        -A FORWARD -j REJECT --reject-with icmp-host-prohibited

        COMMIT

        :wq! #保存退出

        service iptables restart #最后重启防火墙使配置生效

3、安装kafka
    3.1、下载kafka
        cd /usr/local/src
        wget http://archive.apache.org/dist/kafka/0.8.2.1/kafka_2.11-0.8.2.1.tgz
        注意,kafka_2.11-0.8.2.1.tgz版本是已经编译好的版本,解压就能使用。
        tar -xzvf kafka_2.11-0.8.2.1.tgz #解压
        mv kafka_2.11-0.8.2.1 /usr/local/kafka #移动到安装目录

    3.2、配置kafka
        mkdir /usr/local/kafka/log/kafka #创建kafka日志目录
        cd /usr/local/kafka/config #进入配置目录
        vi server.properties #编辑修改相应的参数
        broker.id=0
        port=9092 #端口号
        host.name=127.0.0.1 #为本地IP
        log.dirs=/usr/local/kafka/log/kafka #日志存放路径,上面创建的目录

        zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181

        :wq! #保存退出
        (ps:如若host.name的ip不设置为127.0.0.1,会报一下错误:

                Bug:Socket server failed to bind to xxx.xxx.xxx.xxx:9092: Cannot assign requested address.                   
                         在ECS上面配置kafka的地址千万不要写外部地址,比如139.225.155.153(我随便写的),这样事绑定不上去的,因为 这个是阿里云内部;它会去内网去寻找他的 地址,所以配成127.0.0.1 会自动识别成本机地址/不然应该使用外网的映射地址。


        )

    3.3、配置zookeeper


        mkdir /usr/local/kafka/zookeeper #创建zookeeper目录


        mkdir /usr/local/kafka/log/zookeeper #创建zookeeper日志目录


        cd /usr/local/kafka/config #进入配置目录


        vi zookeeper.properties #编辑修改相应的参数


        dataDir=/usr/local/kafka/zookeeper #zookeeper数据目录


        dataLogDir=/usr/local/kafka/log/zookeeper #zookeeper日志目录


        clientPort=2181


        maxClientCnxns=100


        tickTime=2000


        initLimit=10


        syncLimit=5

        :wq! #保存退出

4、创建启动、关闭kafka脚本
    cd /usr/local/kafka #进入kafka根目录

     #创建kafka启动脚本

如何查看kafka的端口号 kafka 9092端口_zookeeper


    vi kafkastart.sh #编辑,添加以下代码

    #!/bin/sh

    cd /usr/local/kafka/bin/zookeeper-server-start.sh /home/xuqiang/kafka/config/zookeeper.properties &

    sleep 3 #等3秒后执行

    #启动kafka

   cd /usr/local/kafka/bin/kafka-server-start.sh /home/xuqiang/kafka/config/server.properties &

    :wq! #强制保存退出

    #创建kafka关闭脚本

    

如何查看kafka的端口号 kafka 9092端口_zookeeper_02

    vi kafkastop.sh #编辑,添加以下代码:
    #!/bin/sh
    #关闭zookeeper
    /usr/local/kafka/bin/zookeeper-server-stop.sh /usr/local/kafka/config/zookeeper.properties &
    sleep 3 #等3秒后执行
    #关闭kafka
    /usr/local/kafka/bin/kafka-server-stop.sh /usr/local/kafka/config/server.properties &

    :wq! #保存退出

   #添加脚本执行权限
    chmod +x kafkastart.sh

    chmod +x kafkastop.sh

5、设置脚本开机自动启动
    vi /etc/rc.d/rc.local #编辑,在最后添加一行
    sh /usr/local/kafka/kafkastart.sh & #设置开机自动在后台运行脚本
    :wq! #保存退出
    sh /usr/local/kafka/kafkastart.sh #启动kafka
    sh /usr/local/kafka/kafkastop.sh #关闭kafka
至此,Linux下Kafka单机安装配置完成。


6、liunx下kafka生产者和消费者模式测试

    6.1、启动kafka


        sh /usr/local/kafka/kafkastart.sh
    6.2、创建topic test
    /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --    topic test
    6.3、查看topic
    ./usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
    6.4、启动producer发布消息
     ./usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
      (ps:此时在命令行输入: hello world!)
    6.5、启动consumer消费消息
        ./usr/local/kafka/bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

      (ps:此时会显示hello world!)

测试结果如下(我开了两个窗口便与测试):

    

如何查看kafka的端口号 kafka 9092端口_zookeeper_03


    (ps:图1为producer生产者,图2为consumer消费者)