storm基础一

基础一:

1、 Storm是一个分布式的、可靠的、容错的实时数据流处理系统。

2、 Storm一般是有numbus所在的计算机和supervisor所在的计算机组成了物理环境

3、 名词解释:

1)Nimbus: Storm集群的主控节点

  2) Supervisor: Storm集群的计算节点,

  3) Worker: 执行任务的进程

  4)executor:  执行任务的线程

  5) Topology: 运行于Storm集群的任务

  6) Nimbus: Storm集群的主控节点

7) Spout: 源数据的获取者。用于从外部数据源(如kafka)不间断读取数据并下游发送数据

8)Bolt: 数据的处理者。可执行查询、过滤、聚合及各种复杂运算操作,Bolt的数据处理结果可以作为下游Bolt的输入不断迭代

  9) Tuple:组件(Spout/Bolt)之间数据交换的数据模型。

  10) ACK:Storm的对消息的跟踪机制

基础二:


1、  this.collector.emit(new Values(str), str);

把str以键值对的形式添加到队列中去,供下一个环节读取数据,new Values(str)是在str的基础上添加了一个些字符串,可以再下一个环节根据这个new Values(str)来分组读取

2、  builder.setBolt("word-normalizer", new MyBolt1(),2).shuffleGrouping("word-reader");

builder.setBolt("word-normalizer", new MyBolt1(),4).fieldsGrouping("word-reader");

构造方法中的第三个参数控制的是并发量,shuffleGrouping指的是内部随机并发,

fieldsGrouping指的是内部按照key来分配,同样的key会走到同一个bolt里面,如果里面部分key很多的时候,可能造成一个bolt工作,其他bolt都闲置的情况

3、  spark hadoop storm区别:

Hadoop使用磁盘作为中间交换的介质,而storm的数据是一直在内存中流转的。
两者面向的领域也不完全相同,一个是批量处理,基于任务调度的;另外一个是实时处理,基于流。
以水为例,Hadoop可以看作是纯净水,一桶桶地搬;而Storm是用水管,预先接好(Topology),然后打开水龙头,水就源源不断地流出来了。

Spark流模块先汇聚批量数据然后进行数据块分发(视作不可变数据进行处理),而Storm是只要接收到数据就实时处理并分发。

SparkStorm设计相反,而Spark Steaming才和Storm类似,前者有数据平滑窗口(sliding window),而后者需要自己去维护这个窗口




猜你喜欢

转载自blog.csdn.net/wzqllwy/article/details/78258682