Storm简介及使用

一、Storm概述
    网址:http://storm.apache.org/
    Apache Storm是一个免费的开源分布式实时计算系统。Storm可以轻松可靠地处理无限数据流,实现Hadoop对批处理所做的实时处理。Storm非常简单,可以与任何编程语言一起使用,并且使用起来很有趣!
    Storm有许多用例:实时分析,在线机器学习,连续计算,分布式RPC,ETL等。风暴很快:一个基准测试表示每个节点每秒处理超过一百万个元组。它具有可扩展性,容错性,可确保您的数据得到处理,并且易
于设置和操作。 Storm集成了您已经使用的排队和数据库技术。Storm拓扑消耗数据流并以任意复杂的方式处理这些流,然后在计算的每个阶段之间重新划分流。 离线计算是什么? 批量获取数据、批量的传输数据、批量的存储数据、周期性计算数据、数据可视化 flume批量获取数据、sqoop批量传输、hdfs
/hive/hbase批量存储、mr/hive计算数据、BI 实时计算是什么? 数据实时产生、数据实时传输、数据实时计算、实时展示 flume实时获取数据、kafka实时数据存储、Storm/JStorm实时计算、实时展示(dataV/quickBI) 二、Storm与Hadoop hadoop storm 角色: JobTracker Nimbus TaskTracker Supervisor Child Worker 应用名称: Job Topology 编程接口: Mapper/Reducer Spout/Bolt 三、storm编程模型 tuple:元组 是消息传输的基本单元。 Spout:水龙头 storm的核心抽象。拓扑的流的来源。Spout通常从外部数据源读取数据。转换为拓扑内部的源数据。 主要方法:nextTuple() -》 发出一个新的元祖到拓扑。 ack() fail() Bolt:转接头 Bolt是对流的处理节点。Bolt作用:过滤、业务、连接运算。 Topology:拓扑 是一个实时的应用程序。 永远运行除非被杀死。 Spout到Bolt是一个连接流... wordcount spark->wordcount storm流式计算 hadoop与storm兼容性 spark-core spark-sql离线计算 spark-streaming流式计算 一个团队开发 没有兼容性问题 spark团队:我要做一栈式开发平台! 但凡涉及到大数据计算 我都能搞定! spark替代了mapreduce spark没有底层存储 依赖hdfs hdfs/mr............ 完善整个生态圈系统! mapreduce思想、编程 、sqoop->mr hive->mr hbasemr dfs/mapreduce/bigtable java/scala... 四、Storm集群安装部署 1)准备工作 zk01 zk02 zk03 storm01 storm02 storm03 2)下载安装包 http://storm.apache.org/downloads.html 3)上传apache-storm-1.1.0.tar.gz到/root下 4)解压 cd /root tar -zxvf apache-storm-1.1.0.tar.gz -C /root/hd/ 5)修改配置文件 cd /root/hd mv apache-storm-1.1.0/ storm cd storm/conf/ $ vi storm.yaml # 设置Zookeeper的主机名称 storm.zookeeper.servers: - "hd09-1" - "hd09-2" - "hd09-3" # 设置主节点的主机名称 nimbus.seeds: ["hd09-1"] # 设置Storm的数据存储路径 storm.local.dir: "/root/hd/storm/data" # 设置Worker的端口号 supervisor.slots.ports: - 6700 - 6701 - 6702 - 6703 6)创建文件夹/root/hd/storm/data mkdir /root/hd/storm/data 7)配置环境变量 vi /etc/profile 在最下面加入 export STORM_HOME=/root/hd/storm export PATH=$PATH:$STORM_HOME/bin 生效环境变量 source /etc/profile 8)分发安装包到其他机器 cd /root/hd/ scp -r storm/ hd09-2:$PWD scp -r storm/ hd09-3:$PWD 9)启动Zookeeper zkServer.sh start(三台机器都执行) 10)启动nimbus storm nimbus & (三台机器都执行) 11) 启动supervisor storm supervisor & (三台机器都执行) 12)启动ui界面 storm ui 浏览器输入http://192.168.146.132:8080可以访问 五、Storm命令行操作 1)查看命令帮助 storm help 2)查看版本 storm version 3)运行storm程序 storm jar [/路径/.jar][全类名][拓扑名称] 4)查看当前正在运行拓扑及其状态 storm list 5)终止拓扑程序 storm kill [拓扑名称] 6)激活拓扑程序 storm activate [拓扑名称] 7)禁止拓扑程序 storm deactivate [拓扑名称] 六、分组策略 1)Fields Grouping 按照字段分组。相同字段发送到一个task中。 2)shuffle Grouping 随机分组。轮询。平均分配。随机分发tuple,保证每个bolt中的tuple数量相同。 3)Non Grouping 不分组 采用这种策略每个bolt中接收的单词不同。 4)All Grouping 广播发送 5)Global Grouping 全局分组 分配给task id值最小的 根据线程id判断,只分配给线程id最小的

 

posted on 2018-12-27 22:49    阅读(1488)  评论(0编辑  收藏  举报