Map/Reduce framework
1.什么是MapReduce
•MapReduce是用于高效分布式计算的编程模型
•其工作方式类似于Unix管道
–cat input | grep | sort | uniq-c | cat > output
–Input | Map |Shuffle & Sort | Reduce | Output
•效率高
–传输数据,减少寻道
–管道整理
•非常适合许多应用
–日志处理
– Web索引建立
•商品硬件(HDFS上的文件)
•容错
•分而治之:将大问题划分为较小的子问题
–工人可以并行执行独立的子问题
–每个工人的中间结果相结合以获得最终结果
2. MapReduce 的特点
•细粒度的Map和Reduce任务–改进的负载平衡
–从失败的任务中快速恢复
•故障时自动重新执行–在大型群集中,某些节点总是很慢或不稳定–框架重新执行失败的任务
•局部性优化
–大型 数据,数据的带宽是一个问题
– Map-Reduce + HDFS是一个非常有效的解决方案
– Map-Reduce向HDFS查询输入数据的位置
–在可能的情况下,将Map任务安排在靠近输入的位置
Pig Python and R
1. Pig Latin
•并行数据流语言:用户描述如何读取,处理和存储数据
•数据流可以是简单的(例如“计数字”),也可以是复杂的(合并多个输入,将数据分成流并分别处理)
Pig 的特点:
•Pig可以妥善处理错误/损坏的数据条目
–架构可能不一致或丢失
–(可以跳过清理步骤)
–可以快速执行探索性分析
•猪吃任何东西
–猪对任何数据进行操作(是否有模式,是否有文件,是否嵌套,是否嵌套)
•猪生活在任何地方
–并行数据处理语言; 在Hadoop上实现,但不受其约束
•猪是家畜
–易于控制和修改
•猪飞
–快速处理
Spark 介绍
•使MapReduce通用化,同时保留其调度和容错优势
•主要添加:有效的数据共享
–计划旨在将作业放置在数据所在的位置
•启用更多应用程序
–迭代算法
–交互式查询
–流处理
1.MapReduce in Python
•PySparkpackage
2.Spark R
将您的R程序从Rstudio连接到Spark集群
•SparkRpackage
•将本地R数据帧转换为SparkDataFrame(使用“ as.DataFrame()”)
Job Scheduling作业调度
1.先入先出(FIFO 调度)
2.最短任务优先
Round-Robin Scheduling 循环调度
4.Hadoop Scheduling
•Hadoop作业由Map任务和Reduce任务组成
•具有多个作业的多个客户–用户/职位=“租户”-多租户系统
•=>需要一种计划所有这些作业(及其组成任务)的方法
•=> 需要公平对待不同的租户
5.Apache Hadoop Yarn
•提供资源管理以支持处理PB级数据。
•Hadoop YARN有两个流行的调度程序
– Hadoop容量调度程序
– Hadoop Fair调度程序
Apache Zookeeper
•ZooKeeperis集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。
•https://zookeeper.apache.org/
•用法示例
–跟踪节点地址和状态
– Synchronise nodes
处理图数据
1.NetWork
网络=图,通俗地说是由一组线或箭头连接起来的一组节点。
基于图的表示
•以图形表示问题可以提供不同的观点
•以图形表示问题可以使问题更简单
•更准确地讲,它可以提供解决问题的适当工具
是什么使问题像图形一样?
•图有两个组件:节点和边
•在类图的问题中,这些组件与问题元素具有自然的对应关系
•实体是节点,实体之间的交互是边
•大多数复杂系统都像图
数据图用例
•推荐社交网络中的用户
–您可能认识的人
– Twitter上的关注者
•路径规划
–从家到办公室的最快捷方式
•图形聚类
–在社交图中查找社区
–基于引用网络的科学社区
数据表示法
1. 图(Graph)的定义
•G是有序三元组G:=(V,E,f)
–V是一组节点,点或顶点。
-E是一个集合,其元素称为边缘或线。
–f是一个函数:将E的每个元素映射到V中无序的一对顶点。
•顶点
-基本元素
-绘制为节点或点。
-顶点集G 通常用V(G)或V表示
•边缘
-一组两个元素
-绘制为连接两个顶点的线,称为端点或端点 。
– G的边集通常用E(G)或E表示。
2.有向图
•边缘有方向
-边缘是有序的节点对
3.赋权图
是一个图形,其每个边都有关联的权重,通常由权重函数给定w:E→R
4.大图的类
•随机图
–节点度受约束
–不太常见
–根据某些概率分布
•无标度图
–节点度的分布遵循幂定律
–大部分大型图无标度
–小世界现象和中心
–难以划分
分布式图形处理系统
1.Pregel
Pregelisa大型图并行分布式分析引擎
2.特点
•在内存中(相对的omapreduce)
•高可伸缩性
•自动容错
•表示图形算法的灵活性
•消息传递编程模型
•树式、主从架构
•同步