Hadoop之Storm基础
1、离线计算是什么
离线计算:批量获取数据,批量传输数据,周期性批量计算数据,数据展示
代表技术:sqoop批量导入数据,hdfs批量存储数据,mapreduce批量计算数据,hive批量计算数据,***任务调度
2、流式就算是什么
流式计算:数据实时产生,数据实时传输,数据实时计算,实时展示
代表技术:flume实时获取数据,kafka实时数据存储,storm/jstorm实时数据计算,redies实时结果缓存
----将源源不断的数据实时收集,并实时计算,尽可能得到计算结果
3、Storm是什么
Storm用来实时处理数据,特点:低延迟,高可用,分布式,可扩展,数据不丢失,提供简单容易的接口,便于开发
4、storm和hadoop的区别
1)storm用于实时计算,hadoop用于离线计算
2)storm处理的数据保存在内存中,源源不断,hadoop处理的数据保存在文件系统中,一批一批
3)storm的数据通过网络传输进来,hadoop的数据保存在磁盘中
storm hadoop
应用名称 topology job
编程接口 spout/bolt Mapper/Reducer
5、storm应用场景及行业案例
运用场景
日志分析 管道系统 消息转化器
典型案例
1、一淘-实时分析系统:实时分析用户的属性,并反馈给搜索引擎
2、携程-网站性能监控:实时分析系统监控携程网的网站性能
3、阿里妈妈-用户画像:实时计算用户的兴趣数据
6、Storm的核心组件
1、Nimbus:负责资源分配和任务调度,对任务监控
2、Superviser:当前物理机的管理者,负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程
worker的数量是根据端口来的 ----通过配置文件设置当前superviser上启动多少个worker
3、worker:执行具体任务的组件,任务类型有两种,spout任务,bolt任务,一个worker
中可能同时存在 运行具体处理组件逻辑进程
4、task:worker中每一个spout/bolt的线程称为一个task ,每个线程默认叫做executor
7、Storm编程模型
1、topology:storm中运行的一个实例应用程序的名称。
2、spout:在一个topology中获取源数据流的文件
通常情况下spout会从外部数据源中读取数据,然后转换为topology内部源数据
3、bolt:接受数据然后执行处理的组件,用户可以在其中执行自己想要的逻辑
4、tuple:一次消息传递的基本单元,理解为一组消息就是一个tuple
5、stream:表示数据的流向
8、编程模型
datasource:外部数据源
spout:接收外部数据源的组件,将外部数据源转化为storm的内部数据源
以tuple为基本的传输单元下发给bolt
bolt:接收spout发送的数据,或者上游的bolt的发送数据,根据业务逻辑自行处理,发送给下一个bolt
或者是存储在某种介质上,介质可以是redis或者mysql。。
tuple:storm内部中数据传输的基本单元,里面封装了一个list对象,用来保存数据
streamgrouping:数据分组策略
7种,shufflegrouping(random函数),non grouping(random函数),fieldgrouping(hash取模)
local or shufflegrouping 本地或者随机,优先本地
9、并发度
用户指定的一个任务,可以被多个线程执行,并发度的数量等于线程的数量
一个任务的多个线程,,会被运行在多个worker(jvm)上,类似于一种平均算法的负载均衡策略
尽可能减少网络io,和hadoop中mapreduce中的本地计算道理是一样的
10、架构
nimbus;任务分配
superviser:接收任务,并启动管理worker,worker的数量是根据端口号决定的
worker:执行任务的具体组件(其实就是一个jvm),可以执行两种类型的任务,spout或者bolt任务
task:task=线程=executor ,一个task属于一个spout或者bolt并发任务
zookeeper:保存任务的信息
11、流式计算的一般架构
网站系统——Flume集群(获取数据)——kafka集群(用来临时保存数据)——storm集群(用来计算数据)——Redis集群(内存数据库,保存数据)
12、Storm常用命令
有许多简单且有用的命令可以用来管理拓扑,它们可以提交、杀死、禁用、再平衡拓扑。
1)、提交任务命令格式:storm jar 【jar路径】 【拓扑包名.拓扑类名】 【拓扑名称】
bin/storm jar examples/storm-starter/storm-starter-topologies-0.10.0.jar storm.starter.WordCountTopology wordcount
2)、杀死任务命令格式:storm kill 【拓扑名称】 -w 10(执行kill命令时可以通过-w [等待秒数]指定拓扑停用以后的等待时间)
storm kill topology-name -w 10
3)、 停用任务命令格式:storm deactivte 【拓扑名称】
storm deactivte topology-name
我们能够挂起或停用运行中的拓扑。当停用拓扑时,所有已分发的元组都会得到处理,但是spouts的nextTuple方法
不会被调用。销毁一个拓扑,可以使用kill命令。它会以一种安全的方式销毁一个拓扑,首先停用拓扑,
在等待拓扑消息的时间段内允许拓扑完成当前的数据流。
4)、启用任务命令格式:storm activate【拓扑名称】
storm activate topology-name
5)、 重新部署任务命令格式:storm rebalance 【拓扑名称】
storm rebalance topology-name
再平衡使你重分配集群任务。这是个很强大的命令。比如,你向一个运行中的集群增加了节点。再平衡命令将会
停用拓扑,然后在相应超时时间之后重分配工人,并重启拓扑。
13、查看日志信息
查看nimbus的日志信息
在nimbus的服务器上
cd /export/servers/storm/logs
tail -100f /export/servers/storm/logs/nimbus.log
查看ui运行日志信息
在ui的服务器上,一般和nimbus一个服务器
cd /export/servers/storm/logs
tail -100f /export/servers/storm/logs/ui.log
查看supervisor运行日志信息
在supervisor服务上
cd /export/servers/storm/logs
tail -100f /export/servers/storm/logs/supervisor.log
查看supervisor上worker运行日志信息
在supervisor服务上
cd /export/servers/storm/logs
tail -100f /export/servers/storm/logs/worker-6702.log
Hadoop之Storm基础的更多相关文章
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink
转自:https://www.cnblogs.com/reed/p/7730329.html 今天看到一篇讲得比较清晰的框架对比,这几个框架的选择对于初学分布式运算的人来说确实有点迷茫,相信看完这篇文 ...
- 快速学习hadoop只有这些基础可不行
“学习hadoop需要什么基础”这已经不是一个新鲜的话题了,随便上网搜索一下就能找出成百上千篇的文章在讲学习hadoop需要掌握的基础.再直接的一点的问题就是——学Hadoop难吗?用一句特别让人无语 ...
- 大数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...
- 数据框架对比:Hadoop、Storm、Samza、Spark和Flink——flink支持SQL,待看
简介 大数据是收集.整理.处理大容量数据集,并从中获得见解所需的非传统战略和技术的总称.虽然处理数据所需的计算能力或存储容量早已超过一台计算机的上限,但这种计算类型的普遍性.规模,以及价值在最近几年才 ...
- Hadoop之Storm命令
Hadoop之Storm命令 1.storm核心概念 stream--->一列火车 tuple--->一节车厢 数据--->乘客 spout--->始发站 bolt---> ...
- Storm基础知识
上一篇文章我们介绍一个简单的Storm起源,今天我去学习Storm一些主要的知识,他的基本使用基本的了解.幸运的是,,不是太困难,假设我们理解Hadoop的MapReduce模型的话.看这个也是很类似 ...
- hadoop、Storm该选哪一个
如果hadoop.Storm还感觉混要,那么此篇文章将帮助你把他们完全区分 可以带着下面问题来阅读本文章: 1.hadoop.Storm各是什么运算 2.Storm为什么被称之为流式计算系统 3.ha ...
- 学hadoop需要什么基础
最近一段时间一直在接触关于hadoop方面的内容,从刚接触时的一片空白,到现在也能够说清楚一些问题.这中间到底经历过什么只怕也就是只有经过的人才会体会到吧.前几天看到有个人问“学hadoop需要什么基 ...
- 分布式处理与大数据平台(RabbitMQ&Celery&Hadoop&Spark&Storm&Elasticsearch)
热门的消息队列中间件RabbitMQ,分布式任务处理平台Celery,大数据分布式处理的三大重量级武器:Hadoop.Spark.Storm,以及新一代的数据采集和分析引擎Elasticsearch. ...
随机推荐
- 错误”ORA-12560: TNS: 协议适配器错误“解决方法
错误”ORA-12560: TNS: 协议适配器错误“解决方法 原本是可以通过sqlplus连接数据库的,命令如下: C:\Users\xuwei>sqlplus /nolog SQL*Plus ...
- Django+ openpyxl 导出文件,设置表头/内容格式
之前使用xlrd.xlrt处理文件的导入导出,这两个主要用于excel2003格式的文件的读写,并且xlrt最多可以写入256行,大于256行会报错 找了新插件openpyxl,对它找到针对某一行设置 ...
- 【转】SonarQube配置自定义的CheckStyle代码规则
原文地址:https://www.jianshu.com/p/ff1d800885ce 惯例第一步肯定是SonarQube的安装与运行配置了,但这部分不在本文主题内,网上一搜一大把,这里就不讲了,大家 ...
- BZOJ 1036: [ZJOI2008]树的统计Count-树链剖分(点权)(单点更新、路径节点最值、路径求和)模板,超级认真写了注释啊啊啊
1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 23015 Solved: 9336[Submit ...
- 有向图强连通分量的Tarjan算法及模板
[有向图强连通分量] 在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强联通(strongly connected),如果有向图G的每两个顶点都强联通,称有向图G是一个强联通图.非强联通图有向 ...
- HDU 2555 陷阱(模拟,结构体数组)
这道题目意思很明白,有不确定的数据沙包和陷阱,还要排序···那就必须要用结构体+数组 /* 在地面上有N 个大小不等的长方形陷阱,每个陷阱的周长各不相同,每个参赛者都有一个沙包,闭上眼睛把它扔向地面, ...
- python3爬虫爬取煎蛋网妹纸图片(上篇)
其实之前实现过这个功能,是使用selenium模拟浏览器页面点击来完成的,但是效率实际上相对来说较低.本次以解密参数来完成爬取的过程. 首先打开煎蛋网http://jandan.net/ooxx,查看 ...
- Jekins持续集成,gitlab代码仓库
http://blog.csdn.net/john_cdy/article/details/7738393
- 差分+树状数组【p4868】Preprefix sum
Description 前缀和(prefix sum)\(S_i=\sum_{k=1}^i a_i\). 前前缀和(preprefix sum) 则把\(S_i\)作为原序列再进行前缀和.记再次求得前 ...
- Reference resources
CentOS7 (精简操作指令) http://www.centoscn.com/CentOS/help/2016/0429/7147.html