Storm的tuple处理的事务机制 kafka常用操作命令

  1. flume的作用是什么?列出常见的flume的操作

    flume由agent的source、channel、sink构成,其中source用来采集不同协议的数据,然后将数据存储与channerl中,再通过sink将采集的信息源(来自服务器,页面等),然后将数据进行投递,比如hdfs文件系统,或者将采集的数据输送到kafka的消息队列,进行消息收集汇总,以及转发的工作。
  2. kafka的常用操作

    创建topic:
    <br/bin/kafka-topics.sh --zookeeper node06:2181,node07:2181,node08:2181 --create --replication-factor 2 --partitions 3 --topic test
    查看topic列表:
    bin/kafka-topics.sh --zookeeper node06:2181,node07:2181,node08:2181 --list
    ​
    查看topic描述:
    bin/kafka-topics.sh --zookeeper node06:2181,node07:2181,node08:2181 --describe --topic test创建生产者:
    <br/
    bin/kafka-console-producer.sh --broker-list node06:9092,node07:9092,node08:9092 --topic test
    创建消费者:
    bin/kafka-console-consumer.sh --zookeeper node06:2181,node07:2181,node08:2181 --from-beginning --topic test
  3. storm事务总结?


    三种事务:
    1、普通事务
    2、Partitioned Transaction - 分区事务
    3、Opaque Transaction - 不透明分区事务
  4. storm保证消息仅被处理一次的机制?

    storm运行过程中,每个传递的tuple都会关联一个transaction id,Transaction id从1开始,每个tuple会按照顺序+1。在处理tuple时,处理成功的tuple结果以及transaction id同时写入数据库中进行存储.由此tuple传入至数据库时会出现两种情况:
    1、当前transaction id与数据库中的transaction id不一致,storm再次发送对应的tuple进行计算,然后计算再往数据库存入.
    2、两个transaction id相同,则说明tuple已经被成功处理,无法继续往数据库写入.
    缺点:
    一次只能处理一个tuple,无法实现分布式计算

原文地址:https://www.cnblogs.com/eric666666/p/11100764.html