SparkStreaming的编程模型及原理的认识
数据结构
DStream :SparkStreaming中使用的数据结构,代表一个连续的数据流,是由一系列带有时间维度的RDD组成

RDD:只读、有分区的数据集,利用有向无环图(DAG)记录数据结构之间的变化,属性如下:
| 属性 | 含义 | 使用场景 |
|---|---|---|
| 分区列表— partitios | 每个分区存储RDD的一部分数据 | |
| 分区位置列表—preferredLocations | 记录每个分区数据存储在哪台机器节点上 | 重写方法getPreferredLocations,实现让分区尽可能和数据在相同的机器上 |
| 依赖列表—dependencies | 记录RDD的依赖关系 | |
| 分区器—partitioner | 记录RDD的依赖关系 | 重写方法getPartitions,按自定义方式分区,目前支持Hash和Range分区 |
| 计算函数—compute | 利用父分区计算RDD分区的值 |
yarn-cluster提交任务流程

流程描述:
1.SparkStreaming任务提交后,Client向HDFS上传SparkStreaming的Jar包和配置,之后向Yarn ResourceManager提交任务
2. ResourceManager通知对应的NodeManager启动ApplicationMaster,ApplicationMaster启动后加载SparkStreaming的Jar包和配置构建环境,启动Driver(包含SparkStreamingContext和SparkContext)
3. ApplicationMaster向ResourceManager申请资源启动Executor,ResourceManager分配Executor资源后,由ApplicationMaster通知资源所在节点的NodeManager启动Executor
4. Executor启动后向Driver发送心跳包,并等待Driver向其分配任务
本文介绍了SparkStreaming的核心数据结构DStream及其组成元素RDD的特点与作用。详细解释了RDD的属性,如分区列表、依赖列表等,并阐述了yarn-cluster模式下SparkStreaming任务提交流程。
13

被折叠的 条评论
为什么被折叠?



