zoukankan      html  css  js  c++  java
  • kafka相关操作

    kafka安装

    下载 

    wget http://apache.gree.com/apache/kafka/1.0.2/kafka_2.11-1.0.2.tgz

    tar -zxvf kafka_2.11-1.0.2.tgz -C /usr/local/

    mv /usr/local/kafka_2.11-1.0.2 /usr/local/kafka

     

    cd /usr/local/kafka/config/

    vi server.properties

    broker.id=0                   这里的id每个kafka的id都是唯一的

    host.name=10.2.xxx.xx         设置当前机器的IP

    zookeeper.connect=10.2.xxx.xx:2181,10.2.xx.xxx:2181,10.2.xxx.xx:2181   设置zookeeper的地址

    #zookeeper的地址可以为集群中一个或多个机器的【IP:端口|机器的名称|机器名/kafka|机器名:端口】

    log.dirs=/tmp/kafka0-logs     设置日志地址,不同机器上的地址可能需要区别一下,避免broker启动不起来

    其他节点配置类似

    kafka指令

    启动kafka

    /usr/local/kafka/bin/kafka-server-start.sh --daemon  /usr/local/kafka/config/server.properties 1>/dev/null 2>&1 &

    添加--daemon让kafka在后台以守护进程的方式启动,不会自动停掉

    创建topic,名为netSwitch ,分区数为3(--partition 3),总备份数为2(--replication-factor 2),备份数不可超过机器的数量,分区数可以大于机器的数量

    /usr/local/kafka/bin/kafka-topics.sh --create --zookeeper HDP-master,HDP-slave1,HDP-slave2 --replication-factor 2 --partitions3 --topic netSwitch

    kafka-topics --create --zookeeper HDP-master --replication-factor 2 --partitions3 --topic netSwitch

    查看topic的描述

    /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper HDP-master,HDP-slave1,HDP-slave2 --topic netSwitch

    (kafka-topics --describe --zookeeper 10.2.11.12:2181/kafka --topic test)

    Topic:netSwitch  PartitionCount:3                            ReplicationFactor:2

    Topic:netSwitch    Partition:0        Leader:2          Replicas: 2,0         Isr: 2,0

    Topic:netSwitch    Partition:1        Leader:0          Replicas: 0,1         Isr: 0,1

    Topic:netSwitch    Partition:2        Leader:1          Replicas: 1,2         Isr: 1,2

    其中Leader表示数据所在节点,在其他节点上的数据为备份数据

    列出所有topic

    /usr/local/kafka/bin/kafka-topics.sh --list --zookeeper HDP-master,HDP-slave1,HDP-slave2

    (kafka-topics --zookeeper 10.2.11.12:2181/kafka --list)

    kafka的topic数据保存在之前配置的日志文件目录下(server.properties文件中log.dirs的值,默认为/tmp/kafka0-logs),如果要删除某个topic,需要删除日志目录下对应的文件夹

    查看已注册到zookeeper中的broker个数

    /usr/lcoal/zookeeper/bin/zkCli.sh             进入zookeeper命令行

    ls /brokers/ids                               列出已注册的brokers的id

    out:[1,2]                                     id为1,2的节点注册正常,0节点异常?

    quit                                          退出zookeeper命令行

    当部分broker注册异常时可尝试修改log.dirs的值为不同目录名 后 正常启动

     修改topic的分区数 

    kafka-topics --alter --zookeeper 10.4.56.22:9013/kafka --topic eSafenet --partitions 4 

    修改topic的备份数(将已有数据进行重新 分布配置)

    (1)查看topic的分区备份情况

    /usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper HDP-master,HDP-slave1,HDP-slave2 --topic netSwitch

    Topic:netSwitch  PartitionCount:3                            ReplicationFactor:1

    Topic:netSwitch    Partition:0        Leader:2          Replicas: 2         Isr: 2

    Topic:netSwitch    Partition:1        Leader:0          Replicas: 0         Isr: 0

    Topic:netSwitch    Partition:2        Leader:1          Replicas: 1         Isr: 1

    (2)根据分区备份信息,编辑新的配置 

    vi ./increase-replication-factor.json

    {"version":1,

    "partitions":[

    {"topic":"netSwitch","partition":0,"replicas":[2,0]},

    {"topic":"netSwitch","partition":1,"replicas":[0,1]},

    {"topic":"netSwitch","partition":1,"replicas":[1,2]}

    ]}

     kafka-reassign-partitions --zookeeper HDP-master --reassignment-json-file ./increase-replication-factor.json --execute

    ( kafka-reassign-partitions --zookeeper 10.4.56.22:9013/kafka --reassignment-json-file ./increase-replication-factor.json --execute)

    (3)查看重分配的执行情况

    kafka-reassign-partitions --zookeeper HDP-master  --reassignment-json-file ./increase-replication.json --verify

     (kafka-reassign-partitions --zookeeper 10.4.56.22:9013/kafka   --reassignment-json-file ./increase-replication.json --verify)

    清空topic中的数据

    kafka-topics --zookeeper HDP-master --delete --topic netSwitch

    发送消息到broker (生产者)

    /usr/local/bin/kafka-console-producer.sh --broker-list HDP-master:9092 --topic netSwitch

    (kafka-console-producer --broker-list 10.4.56.22:9013/kafka --topic netSwitch)

    >this is the first hdp-master test message

    >this is the second hdp-master test message

    >three of it

    ^c                                    ctrl+c 退出并发送消息

    从broker消费消息 (消费者)

    /usr/local/bin/kafka-console-consumer.sh --zookeeper HDP-master,HDP-salve1,HDP-slave2 --from-beginning --topic netSwitch

    this is the first hdp-master test message

    three of it 

    this is the second hdp-master test message

     kafka-console-consumer --bootstrap-server 10.2.24.15:9092 --topic netSwitch

    可以看出消费kafka的topic数据时,不一定是按顺序来的,因为这些数据在不同的partition分区,kafka只能保证同一分区上的数据是按顺序读取的,

    可以通过某种方式,设置某一类型的数据被发送到同一分区。

  • 相关阅读:
    Codeforces 385 D Bear and Floodlight
    Linux经常使用的命令(两)
    hadoop编程技巧(6)---处理大量的小型数据文件CombineFileInputFormat申请书
    android Notification分析—— 您可能会遇到各种问题
    人类探索地外文明的显著取得的进展
    腰带“兄弟”事实上,投资
    C++机器学习古典材料
    [Recompose] Render Nothing in Place of a Component using Recompose
    [Recompose] Replace a Component with Non-Optimal States using Recompose
    [Recompose] Show a Spinner While a Component is Loading using Recompose
  • 原文地址:https://www.cnblogs.com/Ting-light/p/11311720.html
Copyright © 2011-2022 走看看