版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
修订记录建议直接将本胶片另存,然后在此胶片的基础上进行编辑。本部分包含:培训目标、目录、习题、总结、问题等模板。参考IT解决方案产品培训课程开发内容要素,按照模块开发。课程编码适用产品产品版本课程版本ISSUEH13-711FusionInsightHDV100R002C60V1.0开发/优化者时间审核人开发类型(新开发/优化)汝佳
003147352016年6月高冬冬wx321719新开发本页不打印Streaming技术原理学完本课程后,您将能够:掌握实时流处理概念;掌握Storm系统架构;掌握Storm关键特性;掌握CQL基本概念。Streaming定义应用场景Streaming在FusionInsight产品的位置系统架构关键特性介绍StreamCQL介绍Streaming定义Streaming基于开源Storm,是一个分布式、实时计算框架。事件驱动连续查询数据不存储,先计算实时响应,低延迟EventDataQueriesAlertsActionsNowaiting;Resultsdeliveredin-flightQueriesMemoryDisk传统数据库技术
数据先存储,再查询处理Streaming定义
Hadoop技术
数据先写入文件系统进行批处理Streaming定义应用场景Streaming在FusionInsight产品的位置系统架构关键特性介绍StreamCQL介绍应用场景主要应用于以下几种场景:
实时分析:如实时日志处理、交通流量分析等。实时统计:如网站的实时访问统计、排序等。实时推荐:如实时广告定位、事件营销等。与SparkStreaming的比较SparkStreaming微批处理流程Streaming流处理流程SparkStreamingStreaming任务执行方式执行逻辑即时启动,运行完回收执行逻辑预先启动,持续存在事件处理方式事件需积累到一定批量时才进行处理事件实时处理时延秒级毫秒级吞吐量高(约为Streaming的2~5倍)较高适用场景比较StreamingSparkStreamingBatch5sec1minTimeValueofinformationStreaming适用于对响应时间有严格要求的场景SparkStreaming适用于对响应时间要求不高的场景Streaming定义应用场景Streaming在FusionInsight产品的位置系统架构关键特性介绍StreamCQL介绍Streaming在FusionInsight产品的位置FusionInsightHD提供大数据处理环境,基于社区开源软件增强,按照场景选择业界最佳实践;
Streaming基于开源ApacheStorm,是一个分布式、可靠、容错的实时计算系统。用于对大规模流式数据提供实时处理。MapReduceSparkSolr系统管理FusionInsightManagerPluginAPIAPI应用服务层REST/SNMP/Syslog安全管理HueLoaderFlumeFTP-ServerHiveStreamingOozieKafkaYARNRedisHDFSDBServiceHBaseSmallFSZookeeperFusionInsightHDStreaming定义应用场景Streaming在FusionInsight产品的位置系统架构关键特性介绍StreamCQL介绍系统架构Client提交拓扑SupervisorWorkerSupervisorNimbusWorkerWorkerExecutorExecutor下载Jar包启动WorkerZookeeperZookeeperZookeeper监控心跳,分配任务获取分配任务上报心跳Topology:streaming中运行的一个实时应用程序。Nimbus:负责资源分配和任务调度。Supervisor:负责接受nimbus分配的任务,启动和停止属于自己管理的worker进程。Worker:运行具体处理组件逻辑的进程。Spout:在一个topology中产生源数据流的组件。Bolt:在一个topology中接受数据然后执行处理的组件。Task:worker中每一个spout/bolt的线程称为一个task。Streams/Tuple:一次消息传递的基本单元,一组KeyValue对;Streams是无限的Tuple序列。Streamgrouping:消息的分组方法。概念Topology介绍业务处理逻辑被封装进Streaming中的topology中。一个topology是由一组Spout组件(数据源)和Bolt组件(逻辑处理)通过StreamGroupings进行连接的有向无环图(DAG)。从外部数据源获取流式数据持久化存档过滤感兴趣的数据触发外部消息Worker介绍Worker:一个Worker是一个JVM进程,所有的Topology都是在一个或者多个Worker中运行的。Worker启动后是长期运行的,除非人工停止。Worker进程的个数取决于Topology的设置,且无设置上限,具体可获得调度并启动的Worker个数则取决于Supervisor配置的slot个数。Executor:在一个单独的Worker进程中会运行一个或多个Executor线程。每个Executor只能运行Spout或者Bolt中的一个或多个task实例。Task:是最终完成数据处理的实体单元。WorkerProcessExecutorTaskExecutorTaskExecutorTaskTaskTask介绍Topology里面的每一个Component(Spout/Bolt)节点都是并行运行的。在topology里面,可以指定每个节点的并发度,streaming则会在集群里面分配相应的Task来同时计算,以增强系统的处理能力。TaskTask消息分发策略分组方式功能介绍fieldsGrouping(字段分组)按照消息的哈希值分组发送给目标Bolt的Task。globalGrouping(全局分组)所有消息都发送给目标Bolt的固定一个Task。shuffleGrouping(随机分组)消息发送给目标Bolt的随机一个task。localOrShuffleGrouping(本地或者随机分组)如果目标Bolt在同一工作进程存在一个或多个Task,数据会随机分配给这些Task。否则,该分组方式与随机分组方式相同。allGrouping(广播分组)消息群发给目标Bolt的所有Task。directGrouping(直接分组)由数据生产者决定数据发送给目标Bolt的哪一个Task。需在发送时使用emitDirect(taskID,tuple)接口指定TaskID。partialKeyGrouping(局部字段分组)更均衡的字段分组。noneGrouping(不分组)当前和随机分组相同。常用接口Streaming提供接口:REST接口REST(RepresentationalStateTransfer)表述性状态转移接口。Thrift接口由Nimbus提供。Thrift是一个基于静态代码生成的跨语言的RPC协议栈实现,它可以生成包括C++,Java,Python,Ruby,PHP等主流语言的代码,这些代码实现了RPC的协议层和传输层功能,从而让用户可以集中精力于服务的调用和实现。Streaming定义应用场景Streaming在FusionInsight产品的位置系统架构关键特性介绍StreamCQL介绍NimbusHA
使用Zookeeper分布式锁NimbusHA的实现是使用Zookeeper分布式锁,通过主备间争抢模式完成的Leader选举和主备切换。
主备间元数据同步主备Nimbus之间会周期性的同步元数据,保证在发生主备切换后拓扑数据不丢失,业务不受损。容灾能力容灾能力:节点失效,自动迁移到正常节点,业务不中断。无需人工干预!消息可靠性可靠级别处理机制说明最多一次无吞吐量最大,适用于消息可靠性较低的场景。最少一次Ack机制吞吐量较低,要求数据被完整处理,适用于消息可靠性要求高的场景。精确一次TridentTrident是Storm提供的特殊的事务性API,吞吐量最低。在streaming里面一个tuple被完全处理的意思是:这个tuple以及由这个tuple所派生的所有的tuple都被成功处理。如果这个消息在Timeout所指定的时间内没有成功处理,这个tuple就被认为处理失败了。ACK机制Spout发送一个Tuple时,会通知Acker一个新的根消息产生了,Acker会创建一个新的tupletree,并初始化校验和为0。Bolt发送消息时向Acker发送anchortuple,刷新tupletree,并在发送成功后向Acker反馈结果。如果成功则重新刷新校验和,如果失败则Acker会立即通知Spout处理失败。当tupletree被完全处理(校验和为0),Acker会通知Spout处理成功。Spout提供ack()和fail()接口方法用于处理Acker的反馈结果,需要用户实现。一般在fail()方法中实现消息重发逻辑。可靠性级别设置如果并不要求每个消息必须被处理(允许在处理过程中丢失一些信息),那么可以关闭消息的可靠处理机制,从而可以获取较好的性能。关闭消息的可靠处理机制意味着系统中的消息数会减半。有三种方法可以关闭消息的可靠处理机制:将参数Config.TOPOLOGY_ACKERS设置为0。Spout发送一个消息时,使用不指定消息messageID的接口进行发送。Bolt发送消息时使用Unanchor方式发送,使Tuple树不往下延伸,从而关闭派生消息的可靠性。与离线系统集成HDFS,HBase,Kafka…整合HDFS/Hbase等外部组件,易于实时结果供离线分析Streaming定义应用场景Streaming在FusionInsight产品的位置系统架构关键特性介绍StreamCQL介绍StreamCQL简介StreamCQL(StreamContinuousQueryLanguage)是建立在分布式流处理平台基础上的查询语言(CQL),架构支持构建在多种流处理引擎之上,目前主要适配Storm。
当前多数流处理平台仅提供分布式处理能力,业务逻辑开发复杂,流计算业务功能较弱,存在业务逻辑重用性不高、重复开发、开发效率低下等问题。StreamCQL提供了较丰富的分布式流计算功能,除了具有过滤、转换等传统的SQL基本能力之外,StreamCQL引入基于流的时间窗口的计算,提供窗口数据的统计、关联等能力,以及流数据的拆分、合并等功能。StreamCQL与流处理平台业务接口CQLIDE功能JoinWindowAggregateSplitMergePatternMatching引擎Storm其它流处理引擎StreamStreamCQL架构StreamCQLDriverParserSemanticAnalyzerOptimizerCombinerExecutorPlanStromStormAdapterStreamExecutorExpressionGeneratorWindowGeneratorAplicationCheckerApplicationGeneratorOtherStreamEngineOtherAdapterStreamCQL带来Storm开发方式的转变//DefInput:public
void
open(Mapconf,TopologyContextcontext,SpoutOutputCollectorcollector){…}public
void
nextTuple(){…}public
void
ack(Objectid){…}public
void
declareOutputFields(OutputFieldsDeclarerdeclarer){…}//Deflogic:public
void
execute(Tupletuple,BasicOutputCollectorcollector){…}
public
void
declareOutputFields(OutputFieldsDeclarerofd){…}//DefOutput:
public
void
execute(Tupletuple,BasicOutputCollectorcollector){…}
public
void
declareOutputFields(OutputFieldsDeclarerofd){…}//DefTopology:public
static
void
main(String[]args)throwsException{…}
--DefInput:CREATEINPUTSTREAMS1…--Deflogic:INSERT
INTOSTREAMfilterstrSELECT*FROMS1WHEREname="HUAWEI";--DefOutput:CREATEOUTPUTSTREAMS2…--DefTopology:SUBMITAPPLICATIONtest;Storm原生APIStreamCQLStreamCQL生成Storm拓扑CREATEINPUTSTREAMS1(...)SOURCEKafkaInputPROPERTIES(...);CREATEINPUTSTREAMS2...;CREATE
INPUTSTREAMS3...;CREATEOUTPUTSTREAMRS(...)SINKkafkaOutputPROPERTIES(...)INSERTINTOS4SELECT*,1FROMS1;INSERTINTOS4SELECT*,2FROMS2;INSERTINTORS
SELECT*FROMS4[ROWS10BATCH]
INNERJOINS3[RANGE3HOURSSLIDE]ONS4.id=S3.type
WHERES4.id>5;SpoutSpoutSpoutSelectBoltJoinBoltOutputBoltS1S2S3S4RS本章主要介绍了如下内容:Streaming定义描述了Streaming的应用场景Streaming在FusionInsight产品的位置Steaming的系统架构Streaming
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学计算机科学与技术(计算机网络)试题及答案
- 2025年中职药剂(药品检验)试题及答案
- 2025年中职森林培育(森林培育技术)试题及答案
- 2025年中职(汽车运用与维修)汽车电器设备检修试题及答案
- 2025年中职耳鼻喉护理(耳鼻喉基础护理)试题及答案
- 2025年大学软件工程(人工智能应用基础)试题及答案
- 2025年高职无人机植保技术(植保方案设计)试题及答案
- 2025年高职工业机器人技术(机器人调试与运维)试题及答案
- 2025年中职统计学(统计调查)试题及答案
- 2026年管道安装(水管铺设)试题及答案
- 2026年孝昌县供水有限公司公开招聘正式员工备考题库及答案详解参考
- 《创新创业基础》课件-项目1:创新创业基础认知
- 2026年初一寒假体育作业安排
- 物流行业运输司机安全驾驶与效率绩效评定表
- 2026北京市通州区事业单位公开招聘工作人员189人笔试重点基础提升(共500题)附带答案详解
- 2025~2026学年山东省菏泽市牡丹区第二十一初级中学八年级上学期期中历史试卷
- 2026国家统计局仪征调查队招聘辅助调查员1人(江苏)考试参考试题及答案解析
- 水利工程施工质量检测方案
- 2025年北京高中合格考政治(第一次)试题和答案
- 卵巢类癌诊治中国专家共识(2025年版)
- 临床护理教学中的人文关怀
评论
0/150
提交评论