zoukankan      html  css  js  c++  java
  • 《OD大数据实战》Kafka入门实例

    官网:

    参考文档: 

    Kafka入门经典教程

    Kafka工作原理详解

    一、安装zookeeper

    1. 下载zookeeper-3.4.5-cdh5.3.6.tar.gz

    下载地址为: http://archive.cloudera.com/cdh5/cdh/5/

    2. 解压到/opt/modules/cdh目录

    tar -zxvf zookeeper-3.4.5-cdh5.3.6.tar.gz -C /opt/modules/

    3. 修改配置

    cd /opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6
    
    mkdir dataDir
    
    cd conf
    
    mv zoo_sample.cfg zoo.cfg

    vi zoo.cfg
    修改内容
    dataDir
    =/opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6/dataDir

    4. 启动zookeeper

    cd /opt/modules/cdh/zookeeper-3.4.5-cdh5.3.6
    bin/zkServer.sh start

    5. 使用jps命令查看是否成功启动

    启动成功,会有QuorumPeerMain进程

    二、安装kafka

    1. 下载 kafka_2.11-0.10.0.0.tgz

    下载地址为https://www.apache.org/dyn/closer.cgi?path=/kafka/0.10.0.0/kafka_2.11-0.10.0.0.tgz

    2. 解压 

    解压 kafka_2.11-0.10.0.0.tgz到/opt/modules目录

    3. 修改配置

    mkdir -p /opt/modules/kafka_2.11-0.10.0.0/dataDir

    vi server.properties

    修改内容:

    log.dirs=/opt/modules/kafka_2.11-0.10.0.0/dataDir

    zookeeper.connect=beifeng-hadoop-02:2181

    4. 启动kafka

    以后台进程方式启动kafka

    nohup bin/kafka-server-start.sh config/server.properties >~/kafka-start.log 2>&1 &

    5. 使用jps查看是否成功启动

    启动成功能看到Kafka进程

    ps -ef | grep kafka
    netstat -tlnup | grep 9092

    三、单broker模拟生产者和消费者

     1. 创建topic

    创建一个叫"test"的topic,只有一个分区,一个副本

    bin/kafka-topics.sh --create --zookeeper beifeng-hadoop-02:2181 --replication-factor 1 --partitions 1 --topic test

    2. 通过list命令查看创建的topic

    bin/kafka-topics.sh --list --zookeeper beifeng-hadoop-02:2181 

    3. 发送消息

    bin/kafka-console-producer.sh --broker-list beifeng-hadoop-02:9092 --topic test

    4. 接收消息

    bin/kafka-console-consumer.sh --zookeeper beifeng-hadoop-02:2181 --topic test --from-beginning

    四、搭建一个多broker的集群

    1. 修改配置

    cp config/server.properties config/server1.properties
    cp config/server.properties config/server2.properties

    server1.properties内容修改:

    broker.id=1

    port=9093

    log.dir=/opt/modules/kafka_2.11-0.10.0.0/dataDirServer1

    server2.properties内容修改:

    broker.id=2

    port=9094

    log.dir=/opt/modules/kafka_2.11-0.10.0.0/dataDirServer2

    2. 启动服务器

     nohup bin/kafka-server-start.sh config/server1.properties >~/kafka-server1-start.log 2>&1 &
    
     nohup bin/kafka-server-start.sh config/server2.properties >~/kafka-server2-start.log 2>&1 &

     3. 创建有3个副本的topic

    bin/kafka-topics.sh --create --zookeeper beifeng-hadoop-02:2181 --replication-factor 3 --partitions 1 --topic my-replicated-topic

    4. 查看topic信息

    bin/kafka-topics.sh --describe --zookeeper beifeng-hadoop-02:2181 --topic my-replicated-topic

    Topic:my-replicated-topic PartitionCount:1 ReplicationFactor:3 Configs:
    Topic: my-replicated-topic Partition: 0 Leader: 2 Replicas: 2,1,0 Isr: 2,1,0

    解释一下这些输出。第一行是对所有分区的一个描述,然后每个分区都会对应一行,因为我们只有一个分区所以下面就只加了一行。
    leader:负责处理消息的读和写,leader是从所有节点中随机选择的.
    replicas:列出了所有的副本节点,不管节点是否在服务中.
    isr:是正在服务中的节点.
    在我们的例子中,节点1是作为leader运行。

    5. 生产者

    bin/kafka-console-producer.sh --broker-list beifeng-hadoop-02:9092 --topic my-replicated-topic

    6. 消费者

    bin/kafka-console-consumer.sh --zookeeper beifeng-hadoop-02:2181 --from-beginning --topic my-replicated-topic
  • 相关阅读:
    《编写高质量代码Web前端开发修炼之道》(读书笔记) windrainpy
    jQuery琐碎笔记 windrainpy
    【记录】事件冒泡和事件捕获 windrainpy
    JS比较容易迷惑的几个地方 windrainpy
    【转】成为顶级程序员的唯一途径! windrainpy
    jquery键盘事件 windrainpy
    【转】IE绝对定位元素神秘消失或被遮挡的解决 windrainpy
    简单算法
    HTTP的状态
    css的兼容问题
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5751956.html
Copyright © 2011-2022 走看看