Chapter9-大数据技术原理与应用-第九章-图计算-pdf
大数据PPT课件之深度学习:第9章 深度学习在文本中的应用

概述 9.1 自然语言处理基础 9.2 基于深度学习的文本处理 9.3 应用举例:机器翻译 9.4 应用举例:聊天机器人 习题
4 of 37
9.1 自然语言处理基础
9.1.1. 正则表达式和自动机
第四章 深度学习基本过程
正则表达式(regular expression,简称RE)是字符文本序列的标准记录方式,是一种用于描述文本 搜索符号串的语言,广泛应用于各类信息检索中。
语音识别模块; 自然语言处理模块; 对话管理模块。
第四章 深度学习基本过程
25 of 37
9.4 应用举例:聊天机器人
第四章 深度学习基本过程
9.4.2. 主要的技术挑战
对话上下文建模:对话的过程是一个在特定背景下的连续交互过程,一句话的意义往往 要结合上下文或者背景才能确定。而现有的自然语言处理的技术主要还是基于上下文无 关假设,因此对上下文的建模成为亟待解决的问题。
• Penn Treebank的标记集包含45个标记,是小标记集; • CLAWS(the Constituent Likelihood Automatic Word-tagging System)使用的标记集C5包含61
个标记,是中型的标记集,用于标注英国国家语料库(the British National Corpus,简称BNC); • 第三个标记集是包含146个标记的大型标记集C7。
15 of 37
9.2 基于深度学习的文本处理
9.2.4. 情感分析
第四章 深度学习基本过程
理解人类情感是人工智能的目标,深度学习可用来判断情感类别及强度。 为处理情感分析问题中语义合成的问题(如“不是很喜欢”与“喜欢”的情感极性相
大数据的技术原理与应用pdf

大数据的技术原理与应用1. 什么是大数据•大数据是指规模庞大、类型多样的数据集合,难以使用传统的数据库和处理工具进行处理和管理。
•大数据主要包括结构化数据、半结构化数据和非结构化数据。
•大数据具有“3V特性”,即数据量大(Volume)、数据速度快(Velocity)和数据多样性(Variety)。
2. 大数据的技术原理大数据的处理和管理需要借助以下技术原理:2.1 分布式存储大数据通常存储在分布式文件系统中,比如Hadoop的HDFS(Hadoop Distributed File System)。
分布式存储可以实现数据的高可靠性和高扩展性。
2.2 分布式计算大数据的计算需要借助分布式计算框架,比如Apache Spark、Hadoop MapReduce等。
分布式计算可以实现大规模数据的并行计算,提高计算速度和效率。
2.3 数据清洗与预处理由于大数据的来源多样,数据质量通常较差。
因此,在进行数据分析之前需要对数据进行清洗和预处理,包括数据去重、数据过滤、数据格式转换等操作。
2.4 数据挖掘与机器学习大数据中蕴藏着大量的有价值信息,通过数据挖掘和机器学习算法可以从中发现隐藏的模式和规律,提供决策支持和商业价值。
3. 大数据的应用大数据的技术原理为以下领域的应用提供了支持:3.1 金融行业大数据可以用于金融风控、投资分析、反洗钱等领域,通过对海量数据的分析,可以提高风险管控能力和决策效率。
3.2 医疗健康大数据可以用于医疗数据分析、疾病预测、药物研发等领域,帮助医药行业提供个性化医疗和精准健康管理。
3.3 零售行业大数据可以用于用户画像、推荐系统、供应链管理等领域,实现精确的营销策略和优化的供应链运作。
3.4 交通运输大数据可以用于交通流量预测、智能交通管理、车辆调度等领域,提高交通运输的安全性和效率。
3.5 媒体与广告大数据可以用于用户行为分析、媒体内容推荐、广告精准投放等领域,提供个性化的媒体服务和精准的广告投放。
大数据技术原理与应用之图计算简介(PPT 44张)

《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.4.5输入和输出
• 在Pregel计算框架中,图的保存格式多种多样,包括文本文件、关系 数据库或键值数据库等 • 在Pregel中,“从输入文件生成得到图结构”和“执行图计算”这两 个过程是分离的,从而不会限制输入文件的格式 • 对于输出,Pregel也采用了灵活的方式,可以以多种方式进行输出
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.1.2图计算通用软件
一次BSP计算过程包括一系列全局超步(所谓的超步就是计算中的一次迭代), 每个超步主要包括三个组件: •局部计算:每个参与的处理器都有自身的计算任务,它们只读取存储在本地内 存中的值,不同处理器的计算任务都是异步并且独立的 •通讯:处理器群相互交换数据,交换的形式是,由一方发起推送(put)和获取 (get)操作 •栅栏同步(Barrier Synchronization):当一个处理器遇到“路障”(或栅栏), 会等到其他所有处理器完成它们的计算步骤;每一次同步也是一个超步的完成 和下一个超步的开始。图9-1是一个超步的垂直结构图
• • • • • 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 消息传递机制 Combiner Aggregator 拓扑改变 输入和输出
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.4.1消息传递机制
• 顶点之间的通讯是借助于消息传递机制来实现的,每条消息都包含了 消息值和需要到达的目标顶点ID。用户可以通过Vertex类的模板参数 来设定消息值的数据类型 • 在一个超步S中,一个顶点可以发送任意数量的消息,这些消息将在 下一个超步(S+1)中被其他顶点接收 • 一个顶点V通过与之关联的出射边向外发送消息,并且,消息要到达 的目标顶点并不一定是与顶点V相邻的顶点,一个消息可以连续经过 多条连通的边到达某个与顶点V不相邻的顶点U,U可以从接收的消息 中获取到与其不相邻的顶点V的ID
大数据原理与应用

大数据原理与应用近年来,随着信息技术的不断发展和应用范围的不断扩大,大数据成为了一个热门的话题。
大数据用于描述规模庞大、类型多样且难以处理的数据集合,这些数据集合对传统的数据处理工具和方法构成了挑战。
针对这一问题,大数据原理与应用应运而生。
本文将介绍大数据的基本原理,以及它在各个领域中的应用。
首先,让我们来了解大数据的原理。
大数据的特点可以概括为三个V,即Volume(规模)、Variety(多样性)和Velocity(速度)。
首先,大数据的规模非常庞大,远远超过了传统数据处理方法的处理能力。
根据统计,全球每天产生的数据量已经达到了数十亿GB。
其次,大数据的多样性是指数据的类型和形式非常多,包括结构化数据、半结构化数据和非结构化数据。
这些数据来自于社交媒体、传感器、图像、视频等多个来源。
最后,大数据的速度非常快,即数据的生成和流动速度非常快。
处理实时数据和流式数据是大数据处理的一个重要挑战。
为了应对大数据的挑战,研究人员和工程师们提出了许多解决方案。
首先,存储技术得到了极大的发展。
传统的数据处理系统往往使用关系型数据库来存储和管理数据,但是这些系统无法应对大规模和多样性的数据。
因此,分布式存储系统如Hadoop和HBase被开发出来。
这些系统采用了横向扩展的方式,通过在多台计算机上存储和处理数据,提高了数据处理的性能和可扩展性。
其次,并行计算技术也是大数据处理的重要组成部分。
由于大数据规模庞大,单台计算机的处理能力远远不够。
因此,将计算任务分解为多个子任务,并在多台计算机上并行处理成为了一种常见的解决方法。
MapReduce是一种典型的并行计算框架,它将计算任务分为Map和Reduce两个阶段,实现了任务的自动分发和结果的合并。
此外,机器学习和数据挖掘等技术也被广泛应用于大数据处理中。
由于大数据集合中蕴含着海量的信息,如何从中提取有用的信息成为了一个重要问题。
机器学习和数据挖掘技术可以通过建立模型和算法,自动从大数据中发现隐藏的模式和规律,为决策提供有力的支持。
数据库原理及应用(何玉洁)-第9章

17
“保存查询”对话框 保存查询” 保存查询
18
2000基础 第9章 SQL Server 2000基础
1
9.1 SQL Server 2000概述 概述
2000共提供了四个服务 共提供了四个服务: SQL Server 2000共提供了四个服务: 1、SQL Server 2000的最核心的服务 的最核心的服务。 是SQL Server 2000的最核心的服务。 2、SQL Server Agent 能够根据系统管理员预先设定好的计划自动执行相 应的功能。 应的功能。 Coordinator(DTC) 3、Distributed Transaction Coordinator(DTC) 分布式事务处理协调器是一个事务管理器 是一个事务管理器, 分布式事务处理协调器是一个事务管理器,在DTC 支持下, 支持下,客户可以在一个事务中访问不同服务器上的数 据库。 据库。 4、Microsoft Search 能够对字符数据进行检索。
7
8
2、查询分析器
SQL查询分析器( Analyaer) SQL查询分析器(Query Analyaer)是一个 查询分析器 图形化的查询工具, 图形化的查询工具,用于以文本的方式编辑 Transact-SQL语句,然后发送给服务器, Transact-SQL语句,然后发送给服务器,并接 语句 受执行的结果。使用这个工具, 受执行的结果。使用这个工具,用户可以交互 地设计和测试Transact-SQL语句、 地设计和测试Transact-SQL语句、批处理和脚 Transact 语句 本。
5
图9-19 连接成功后的企业管理器
6
Server数据库 SQL Server数据库 Master数据库 Master数据库 是一个非常重要的数据库, 是一个非常重要的数据库,记录了一些关于 Server系统相关信息 系统相关信息。 SQL Server系统相关信息。 注意:千万不要在master master数据库中创建用户 注意:千万不要在master数据库中创建用户 的对象 Model数据库 Model数据库 可用来作为创建系统中的所有数据库模板。 可用来作为创建系统中的所有数据库模板。 Msdb数据库 Msdb数据库 用来处理有关SQL Server代理程序内的警 用来处理有关SQL Server代理程序内的警 操作员及作业等工作, 告、操作员及作业等工作,例如当警告发生时通 知哪个操作员等相关记录。 知哪个操作员等相关记录。 Tempdb数据库 Tempdb数据库 包含所有的暂存表格与暂存存储过程。 包含所有的暂存表格与暂存存储过程。
大数据技术原理与应用

DataNode
Chunk Server Chunk
Chunk Server Chunk
分布式文件系统中的每一个文件,都被切分成若务器上,
Block
Packet
无
无
客户端写文件的时候,不是一个字节一个字节写 入文件 系统的,而是累计到一定数量后,往文件个数据包。
Chunk
无
Block(64KB)
在每一个数据包中, 都会将数据切成更小的块( 512 字节 ) , 每一个块配上一个 奇偶校验码 (CRC), 这样的块,就是传输块。
机架感知
Editlog 集群均衡
空间的回收
删除文件并没有立刻从 HDFS 中删除 , HDFS 将这个文件重命名, 并转移 到/trash目录,用于恢复,/trash可设置保存时间。
读取文件流程
1、使用HDFS Client,向远程的Namenode发起RPC请求; 2、Namenode会视情况返回文件的部分或者全部block列表,对于每个block,Namenode都会 返回有该block拷贝的datanode地址; 3-4、HDFS Client 选取离客户端最接近的datanode来读取block; 5、当读完列表的block后,如果文件读取还没有结束,客户端开发库会继续向Namenode获取 下一批的block列表。 6、读取完当前block的数据后,关闭与当前的datanode连接,并为读取下一个block寻找最 佳的datanode; 注:读取完一个block都会进行checksum验证,如果读取datanode时出现错误,客户端会通 知Namenode,然后再从下一个拥有该block拷贝的datanode继续读。
2.2 Hadoop项目结构
组件 HDFS MapReduce YARN Tez Hive HBase Pig Sqoop Oozie Zookeeper Storm Flume Ambari Kafka Spark 分布式文件系统 分布式并行编程模型 资源管理和调度器 运行在YARN之上的下一代Hadoop查询处理框架 Hadoop上的数据仓库 Hadoop上的非关系型的分布式数据库 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin 用于在Hadoop与传统数据库之间进行数据传递 Hadoop上的工作流管理系统 提供分布式协调一致性服务 流计算框架 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据 类似于Hadoop MapReduce的通用并行框架 功能
第9章 先进计算[30页]
![第9章 先进计算[30页]](https://img.taocdn.com/s3/m/e9667dbf581b6bd97e19ea46.png)
AI 定义:
–工智能就是对计算机科学的研究,它可以 使计算机具有感知、推理和行为的能力
–回避思考这个争论的焦点
推理:知识表达
人工智能一直在研究计算机的推理能力
–人类智能是基于行为的进化而不是复杂程序的执行 –解决问题需要有效信息,有效信息需要有效表达
最早/实用化
– IBM ViaVoice
语音识别 语音合成 自然语言理解
机器学习
如果一个程序可以在任务T上,随着经验E的增加,效 果P也随之增加,则称这个程序可以从经验值学习
--Tom.M.Mtichell教授,卡耐基梅隆大学
《机器学习》(Machine Learning),1997
✓ Example: 垃圾邮件识别,有监督是学习。 ✓ 一旦有邮件被标记为垃圾邮件,就作为识别新的
不同物质的量子原理机
加速进军量子计算机研究
中国,现在是领先者
人工智能
Artificial Intelligence,AI,智能计算
– 令人吃惊的进展 – 它会改变什么?
图灵测试----计算机能够象人一样思考吗 ?
中国屋思考实验----反驳图灵测试
机器是处理符号,即使通过了图灵测试,也不是思考
– 传统意义:配有很多处理机(处理器也是多核)的超级计算机 – 如太湖之光采用的神威处理器(Cores)10,649,600个! – 多处理器是高性能计算的重要手段 – 并行计算---HPC的代名词,用于复杂计算/科学计算
分布式
– 一个典型的例子就是网络计算 – 如在7.2.1 “是网络还是机器?”所述 – 更好的性价比
工智能就是对计算机科学的研究它可以使计算机具有感知推理和行为的能力回避思考这个争论的焦点人工智能一直在研究计算机的推理能力人工智能一直在研究计算机的推理能力人类智能人类智能是基于是基于行为的进化行为的进化而不是而不是复杂程序的复杂程序的执行执行解决问题解决问题需要有效信息有效需要有效信息有效信息需要信息需要有效表达有效表达计算机使用计算机使用符号语言符号语言科学家们科学家们试图试图在在人类的人类的自然语言自然语言和机器的和机器的符号处理符号处理之间找到一种关系之间找到一种关系使得使得机器能够具有人类的推理能力机器能够具有人类的推理能力语义网络语义网络是一种知识表达法是一种知识表达法定义它非常定义它非常困难困难一个例子
林子雨大数据技术原理及应用第九章答案

大数据第九章课后题答案——图计算黎狸1.试述BSP模型中超步的3个组件及具体含义。
①局部通信。
每个参与的处理器都有自身的计算任务,它们只读取存储在本地内存中的值,不同处理器的计算任务都是异步并且独立的。
②通信。
处理器群相互交换数据,交换的形式是,由一方发起推送(Put)和获取(Get)操作③栅栏同步。
当一个处理器遇到“路障”(或栅栏),会等其他所有的处理器完成它们的计算步骤;每一次同步也是一个超步的完成和下一个超步的开始。
2.Pregel 为什么选择一种纯消息传递模型?采用这种做法主要基于以下两个原因:②息传递具有足够的表达能力,没有必要使用远程读取或共享内存的方式。
②有助于提升系统整体性能。
大型图计算通常是由一个集群完成的,集群环境中执行远程数据读取会有较高的时间延迟;Pregel的消息模式采用异步和批量的方式传递消息,因此可以缓解远程读取的延迟。
3.给定一个连通图,如图9-9所示。
请给出采用Pregel模型计算上图中顶点最大值的计算过程。
其中寻找最大值的函数可以通过继承Pregel中已预定义好的一个基类--- Vertex 类实现,请实现该函数。
4.请简述Aggregator的作用,并以具体Aggregator的例子做说明。
Aggregator提供了一种全局通信、监控和数据查看的机制。
Aggregator的聚合功能,允许在整型和字符串类型上执行最大值、最小值、求和操作,比如可以定义一个“Sum”Aggregator来统计每个顶点的出射边数量,最后相加可以得到整个图的边的数量。
Aggregator还可以实现全局协同的功能,比如当可以设计“and”Aggregator来决定在某个超步中Compute()函数是否执行某些逻辑分支,只有当“and”Aggregator显示所有顶点都满足了某条件时,才去执行这些逻辑分支。
5.假设在同一个超步中,两个请求同时要求增加同一个顶点,但初始值不一样。
Pregel 中可以采用什么机制解决该冲突?6.简述Pregel的执行过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.3.2顶点之间的消息传递
采用消息传递模型主要基于以下两个原因: (1)消息传递具有足够的表达能力,没有必要使用远程读取或共享内存的方式 (2)有助于提升系统整体性能 消息
Compute()
值
Compute()
《大数据技术原理与应用》
/post/bigdata
温馨提示:编辑幻灯片母版,可以修改每页PPT的厦大校徽和底部文字
第九章 图计算
(PPT版本号:2015年6月第1.0版)
林子雨
厦门大学计算机科学系 E-mail: ziyulin@ 主页:/linziyu
机器M A把值3发送给B B 3
Max Combiner
机器N
A
经过Max Combiner合并后 只把值3通过网络发送给B B 3
B
C
B 2 C把值2发送给B
消息格式
目标 顶点 值
D
图9-5 Combiner应用的例子
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.3 Pregel图计算模型
• • • • 9.3.1 9.3.2 9.3.3 9.3.4 有向图和顶点 顶点之间的消息传递 Pregel的计算过程 实例
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
值
Compute()
值
Compute()
值
图9-2 纯消息传递模型图
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@
9.3.3Pregel的计算过程
•Pregel的计算过程是由一系列被称为“超步”的迭代组成的。在每个超步中, 每个顶点上面都会并行执行用户自定义的函数,该函数描述了一个顶点V在一个 超步S中需要执行的操作。该函数可以读取前一个超步(S-1)中其他顶点发送给顶 点V的消息,执行相应计算后,修改顶点V及其出射边的状态,然后沿着顶点V的 出射边发送消息给其他顶点,而且,一个消息可能经过多条边的传递后被发送到 任意已知ID的目标顶点上去。这些消息将会在下一个超步(S+1)中被目标顶点接 收,然后像上述过程一样开始下一个超步(S+1)的迭代过程 •在Pregel计算过程中,一个算法什么时候可以结束,是由所有顶点的状态决定 的,当图中所有的顶点都已经标识其自身达到“非活跃(inactive)”状态时, 算法就可以停止运行
9.3.1有向图和顶点
•Pregel计算模型以有向图作为输入,有向图的每个顶点都有一个String类型 的顶点ID,每个顶点都有一个可修改的用户自定义值与之关联,每条有向 边都和其源顶点关联,并记录了其目标顶点ID,边上有一个可修改的用户 自定义值与之关联 •在每个超步S中,图中的所有顶点都会并行执行相同的用户自定义函数。 每个顶点可以接收前一个超步(S-1)中发送给它的消息,修改其自身及其出 射边的状态,并发送消息给其他顶点,甚至是修改整个图的拓扑结构。需 要指出的是,在这种计算模式中,边并不是核心对象,在边上面不会运行 相应的计算,只有顶点才会执行用户自定义函数进行相应计算
很多传统的图计算算法都存在以下几个典型问题: (1)常常表现出比较差的内存访问局部性; (2)针对单个顶点的处理工作过少; (3)计算过程中伴随着并行度的改变。 针对大型图(比如社交网络和网络图)的计算问题,可能的解决方案及 其不足之处具体如下: •为特定的图应用定制相应的分布式实现:通用性不好 •基于现有的分布式计算平台进行图计算:在性能和易用性方面往往无法 达到最优 •使用单机的图算法库:在可以解决的问题的规模方面具有很大的局限性 •使用已有的并行图计算系统:对大规模分布式系统非常重要的一些方面 (比如容错),无法提供较好的支持
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.4 Pregel的C++ API
Pregel已经预先定义好一个基类——Vertex类:
template <typename VertexValue, typename EdgeValue, typename MessageValue> class Vertex { public: virtual void Compute(MessageIterator* msgs) = 0; const string& vertex_id() const; int64 superstep() const; const VertexValue& GetValue(); VertexValue* MutableValue(); OutEdgeIterator GetOutEdgeIterator(); void SendMessageTo(const string& dest_vertex, const MessageValue& message); void VoteToHalt(); };
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.4.4拓扑改变
• Pregel计算框架允许用户在自定义函数Compute()中定义操作,修改 图的拓扑结构,比如在图中增加(或删除)边或顶点 • Pregel采用两种机制来解决这类冲突:局部有序和Handler • (1)局部有序:拓扑改变的请求是通过消息发送的,在执行一个超 步时,所有的拓扑改变会在调用Compute()函数之前完成 • (2)Handler:对于“局部无序”机制无法解决的那些操作冲突,就 需要借助于用户自定义的Handler来解决,包括解决由于多个顶点删 除请求或多个边增加请求(或删除请求)而造成的冲突
• • • • • 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 消息传递机制 Combiner Aggregator 拓扑改变 输入和输出
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.4.1消息传递机制
• 顶点之间的通讯是借助于消息传递机制来实现的,每条消息都包含了 消息值和需要到达的目标顶点ID。用户可以通过Vertex类的模板参数 来设定消息值的数据类型 • 在一个超步S中,一个顶点可以发送任意数量的消息,这些消息将在 下一个超步(S+1)中被其他顶点接收 • 一个顶点V通过与之关联的出射边向外发送消息,并且,消息要到达 的目标顶点并不一定是与顶点V相邻的顶点,一个消息可以连续经过 多条连通的边到达某个与顶点V不相邻的顶点U,U可以从接收的消息 中获取到与其不相邻的顶点V的ID
处理器
局部计算
通讯 栅栏同步
图9-1 一个超步的垂直结构图
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@
9.2 Pregel简介
•Pregel是一种基于BSP模型实现的并行图处理系统 •为了解决大型图的分布式计算问题,Pregel搭建了一套可扩展的、有容 错机制的平台,该平台提供了一套非常灵活的API,可以描述各种各样的 图计算 •Pregel作为分布式图计算的计算框架,主要用于图遍历、最短路径、 PageRank计算等等
《大数据技术原理与应用》 厦门大学计算机科学系
厦门大学计算机科学系
林子雨
2015年版 ziyulin@
提纲
• • • • • • • 9.1 图计算简介 9.2 Pregel简介 9.3 Pregel图计算模型 9.4 Pregel的C++ API 9.5 Pregel的体系结构 9.6 Pregel的应用实例 9.7 Pregel和MapReduce实现PageRank算 法的对比
不需要执行进一步 计算就设置为停机
活跃
非活跃
收到消息后被唤醒
图9-3 一个简单的状态机图
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@
9.3.4实例
超步0
超步1
6
6
6
6
超步2
6
6
6
6
超步3
图9-4 一个求最大值的Pregel计算过程图
•在Vetex类中,定义了三个值类型参数,分别表示顶点、边和消息。每一个顶点都 有一个给定类型的值与之对应 •编写Pregel程序时,需要继承Vertex类,并且覆写Vertex类的虚函数Compute()
《大数据技术原理与应用》 厦门大学计算机科学系 林子雨 ziyulin@
9.4 Pregel的C++ API
9.4.3Aggregator
• Aggregator提供了一种全局通信、监控和数据查看的机制 • 在一个超步S中,每一个顶点都可以向一个Aggregator提供一个数据 ,Pregel计算框架会对这些值进行聚合操作产生一个值,在下一个超 步(S+1)中,图中的所有顶点都可以看见这个值 • Aggregator的聚合功能,允许在整型和字符串类型上执行最大值、最 小值、求和操作 • Pregel计算框架预定义了一个Aggregator类,编写程序时需要继承这 个类,并定义在第一次接收到输入值后如何初始化,以及如何将接收 到的多个值最后聚合成一个值 • 为了保证得到正确的结果,Aggregator操作也应该满足交换律和结合 律
《大数据技术原理与应用》
厦门大学计算机科学系
林子雨
ziyulin@
9.4.2Combiner
• Pregel计算框架在消息发出去之前,Combiner可以将发往同一个顶点 的多个整型值进行求和得到一个值,只需向外发送这个“求和结果” ,从而实现了由多个消息合并成一个消息,大大减少了传输和缓存的 开销 • 在默认情况下,Pregel计算框架并不会开启Combiner功能,因为,通 常很难找到一种对所有顶点的Compute()函数都合适的Combiner • 当用户打算开启Combiner功能时,可以继承Combiner类并覆写虚函 数Combine() • 此外,通常只对那些满足交换律和结合律的操作才可以去开启 Combiner功能,因为,Pregel计算框架无法保证哪些消息会被合并, 也无法保证消息传递给 Combine()的顺序和合并操作执行的顺序