storm中的基本概念】的更多相关文章

1.topology 一个topolgy是spouts和bolts组成的图,通过stream groupings将图中的spout和bolts连接起来:如图所示: 一个topology会一直运行知道你手动kill掉,Storm自动重新分配执行失败的任务,并且Storm可以保证你不会有数据丢失(如果开启了高可靠性的话).如果一些机器意外停机它上面的所有任务会被转移到其他机器上: 运行一个toplogy很简单,首先,把你所有的代码以及所依赖的jar打进一个jar中.然后运行类似下面的命令: stor…
Storm是一个流计算框架,处理的数据是实时消息队列中的,所以需要我们写好一个topology逻辑放在那,接收进来的数据来处理,所以是通过移动数据平均分配到机器资源来获得高效率. Storm的优点是全内存计算,因为内存寻址速度是硬盘的百万倍以上,所以Storm的速度相比较Hadoop非常快(瓶颈是内存,cpu).其缺点就是不够灵活:必须要先写好topology结构来等数据进来分析. Storm 关注的是数据多次处理一次写入,而 Hadoop 关注的是数据一次写入,多次查询使用.Storm系统运行…
1.Tuple,Value,Field Tuple官方解释: "A tuple is a named of values where each value can be any type." tuple是一个类似于列表的东西,存储的每个元素叫做field(字段),可以是任何类型. Storm使用tuple作为它的数据模型, 每个tuple是一堆值,每个值都有一个名字, 一个Tuple代表数据流中的一个基本处理单元, 例如:一条cookie日志,它可以包含多个Field, 每个Field…
从图可以看出来:topology>supervisor>worker>excutor>task; 也就是说一个topology可以运行在多个supervisor上,一个supervisor可以运行多个worker(进程),一个worker里面可以有多个excutor(线程),一个excutor可以运行多个task: 关于task的大小差不多可以理解为一个task实例一个bolt.task数默认是不设置的,默认和excutor数相同,也就是说一个excutor运行一个task,可以通…
业务描述: 统计从kafka spout中读取的数据条数,以及写入redis的数据的条数,写入hdfs的数据条数,写入kafaka的数据条数.并且每过5秒将数据按照json文件的形式写入日志.其中保存为json数据的格式为:时间戳 + 进程名称 + 读kafka数据条数 + 写入redis数据条数 + 写入hbase条数 + 写入kafka条数.time_stamp + process_name + from_kafka + to_redis + to_hdfs + to_kafka 给出实现的…
[本篇文章主要是介绍Storm的特点.核心概念.以及Storm的生态现状:从总体上对storm有个基本的认识] Storm是Apache下的一个免费的.开源的.分布式流式计算框架,官方网址:https://storm.apache.org/ Storm的基本框架如下: nimbus:整个集群的主节点,用于接收用户提交的作业(拓扑),并向supervisor分发代码,监视作业/worker的状态:分配系统资源.它类似于Hadoop中的JobTracker. supervisor:真正的工作节点,根…
Storm中涉及到了很多组件,例如nimbus,supervisor等等,在参考了这两篇文章之后,对这个有了更好的理解. Understanding the parallelism of a Storm topology https://github.com/nathanmarz/storm/wiki/Understanding-the-parallelism-of-a-Storm-topology http://www.cnblogs.com/yufengof/p/storm-worker-e…
这里做一些补充: worker是一个进程,由supervisor启动,并只负责处理一个topology,所以不会同时处理多个topology. executor是一个线程,由worker启动,是运行task的物理容器,其和task是1 -> N关系. component是对spout/bolt/acker的抽象. task也是对spout/bolt/acker的抽象,不过是计算了并行度之后.component和task是1 -> N 的关系. supervisor会定时从zookeeper获取…
完全引用自: WebLogic 中的基本概念 WebLogic 中的基本概念 上周参加了单位组织的WebLogic培训,为了便于自己记忆,培训后,整理梳理了一些WebLogic的资料,会陆续的发出来,下面是一些基本概念. Domain : 域是作为单元进行管理的一组相关的 WebLogic Server 资源.一个域包含一个或多个 WebLogic Server 实例,这些实例可以是群集实例.非群集实例,或者是群集与非群集实例的组合.一个域可以包含多个群集.域还包含部署在域中的应用程序组件.此域…
Storm中Spout用于读取并向计算拓扑中发送数据源,最近在调试一个topology时遇到了系统qps低,处理速度达不到要求的问题,经过排查后发现是由于对Spout的使用模式不当导致的多线程同步等待.这里罗列几点个人觉得编写Spout代码时需要特别注意的地方: 1. 最常用的模式是使用一个线程安全的queue,如BlockingQueue,spout主线程从queue中读取数据:另外的一个或多个线程负责从数据源(如各种消息中间件.db等)读取数据并放入queue中. 2. 如果不关心数据是否丢…