• 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,无法实现分布式计算

  • 相关阅读:
    python变量赋值(可变与不可变)
    cx_Oracle读取中文乱码问题(转载)
    Lookandsay sequence(看读序列)
    oracle 效率之 not in 和exists
    python encode和decode函数说明
    PILpython的图像处理模块
    iOS中判断一个文件夹是否存在
    Validate Email Account using Regular Expression in ObjectiveC
    UILabel描边
    获取app当前可用的剩余内存
  • 原文地址:https://www.cnblogs.com/eric666666/p/11100764.html
Copyright © 2020-2023  润新知