zoukankan      html  css  js  c++  java
  • 大数据软件安装之Kafka(用于实时处理的消息队列)

    一、安装部署kafka

    1、集群规划

    hadoop102                                 hadoop103                          hadoop104

    zk                                               zk                                         zk

    kafka                                          kafka                                    kafka

    2、jar包下载

    http://kafka.apache.org/downloads.html

    3、集群部署

    1)解压安装包

    [test@hadoop102 software]$ tar -zxvf kafka_2.11-0.11.0.0.tgz  -C /opt/module/

    2)修改解压后改名

    [test@hadoop102 module]$ mv kafka_2.11-0.11.0.0/ kafka

    3)在/opt/module/kafka目录下创建logs文件夹

    [test@hadoop102 kafka]$ mkdir logs

    4)修改配置文件

    [test@hadoop102 kafka]$ cd config/

    [test@hadoop102 config]$ vi server.properties

    输入以下内容:

       

    broker的全局唯一编号,不能重复

    broker.id=0

    #删除topic功能使能

    delete.topic.enable=true

    #处理网络请求的线程数量

    num.network.threads=3

    #用来处理磁盘IO的线程数量

    num.io.threads=8

    #发送套接字的缓冲区大小

    socket.send.buffer.bytes=102400

    #接收套接字的缓冲区大小

    socket.receive.buffer.bytes=102400

    #请求套接字的缓冲区大小

    socket.request.max.bytes=104857600

    #kafka运行日志存放的路径

    log.dirs=/opt/module/kafka/logs

    #topic在当前broker上的分区个数

    num.partitions=1

    #用来恢复和清理data下数据的线程数量

    num.recovery.threads.per.data.dir=1

    #segment文件保留的最长时间,超时将被删除

    log.retention.hours=168

    #配置连接Zookeeper集群地址

    zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

    5)配置环境变量

    [test@hadoop102 module]$ sudo /etc/profile.d/env.sh

    #KAFKA_HOME

    export KAFKA_HOME=/opt/module/kafka

    export PATH=$PATH:$KAFKA_HOME

    [test@hadoop102 module]$ source /etc/profile.d/env.sh

    6)分发安装包

    [test@hadoop102 module]$ xsync kafka/

      注意:分发之后记得配置其他机器的环境变量

    7)分别在hadoop103和hadoop104上修改配置文件/opt/module/kafka/config/server.properties中的

      broker.id=1、broker.id=2

           注:broker.id不得重复

    8)启动集群

    依次在hadoop102、hadoop103、hadoop104节点上启动kafka

    [test@hadoop102 kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

    [test@hadoop103 kafka]$ bin/kafka-server-start.sh -daemon  config/server.properties

    [test@hadoop104 kafka]$ bin/kafka-server-start.sh -daemon  config/server.properties

    9)关闭集群

    [test@hadoop102 kafka]$ bin/kafka-server-stop.sh stop

    [test@hadoop103 kafka]$ bin/kafka-server-stop.sh stop

    [test@hadoop104 kafka]$ bin/kafka-server-stop.sh stop

    10)kafka群起脚本

    for i in hadoop102 hadoop103 hadoop104

    do

    echo "========== $i =========="

    ssh $i '/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties'

    二、 Kafka命令行操作

    1)查看当前服务器中的所有topic

    [test@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --list

    2)创建topic

    [test@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --create --replication-factor 3 --partitions 1 --topic first

    选项说明:

    --topic 定义topic名

    --replication-factor  定义副本数

    --partitions  定义分区数

    3)删除topic

    [test@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --delete --topic first

    需要server.properties中设置delete.topic.enable=true否则只是标记删除。

    4)发送消息

    [test@hadoop102 kafka]$ bin/kafka-console-producer.sh --broker-list hadoop102:9092 --topic first

    >hello world

    >test  test

    5)消费消息

    [test@hadoop102 kafka]$ bin/kafka-console-consumer.sh

    --zookeeper hadoop102:2181 --topic first

     

    [test@hadoop102 kafka]$ bin/kafka-console-consumer.sh

    --bootstrap-server hadoop102:9092 --topic first

     

    [test@hadoop102 kafka]$ bin/kafka-console-consumer.sh

    --bootstrap-server hadoop102:9092 --from-beginning --topic first

    --from-beginning:会把主题中以往所有的数据都读取出来。

    6)查看某个Topic的详情

    [test@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --describe --topic first

    7)修改分区数

    [test@hadoop102 kafka]$ bin/kafka-topics.sh --zookeeper hadoop102:2181 --alter --topic first --partitions 6

  • 相关阅读:
    在jQuery中.bind() .live() .delegate() .on()的区别
    jquery小结测试题
    揭秘子类构造函数执行过程
    过滤器
    实现AJAX的基本步骤
    AJAX 原生态
    java工程师需要学什么
    Java进阶之路
    git入门大全
    轻松学JVM
  • 原文地址:https://www.cnblogs.com/solomongold/p/12535185.html
Copyright © 2011-2022 走看看