编程模型(MapReduce和Graph)

简介: MapReduce和Graph

MapReduce编程模型

MR基础

最大优点是充分利用了闲置资源,多任务并行,快速得到答案。
拆分-处理-合并

MR框架介绍

MR处理流程

MapReduce(最早由Google提出)是一种分布式数据处理模型;核心过程主要分成2个阶段:Map阶段和Reduce阶段;首先执行Map阶段,再执行Reduce阶段。Map和Reduce阶段的处理逻辑由用户自定义实现,即实现分布式计算。

MR模型的适用场景

搜索:网页爬取、倒排索引,PageRank
Web访问日志分析:分析和挖掘用户在web上的访问、购物行为特征,实现个性化推荐;分析用户访问行为。
文本统计分析:例如小说的WordCount,词频TFIDF分析;学术论文、专利文献的饮用分析和统计;维基百科数据分析等。
海量数据挖掘:非结构数据、时空数据、图像数据的挖掘。
机器学习:监督学习、无监督学习、分类算法如决策树、SVM等。
自然语言处理:基于大数据的训练和预测;基于语料库构建单词同现矩阵,频繁项数据挖掘、重复文档检测等。
广告推荐:用户点击(CTR)和购买行为(CVR)预测

MR框架

用户视角看原理

用户视角谈实现

扩展MR

MR开发使用流程

1、阿里云官网下载插件、配置开发环境

2、新建java项目,完成MR开发

增加mapper

增加Reducer

增加MR Driver

添加处理逻辑

3、本地测试
准备本地测试数据

本地测试

本地测试结果检查

4、导出成jar包,并作为资源上传到ODPS的项目空间

add jar wcMR.jar -f;

MR打包成jar包

5、使用jar命令调用MR(命令示例如下)

jar -resources wcMR.jar -classpath wcMR.jar -classpath wcMR.jar example.wcDriver wc_in wc_out;

6、检查运行结果
7、开发发布完成。
发布

例子:WordCount

MR的开发说明:
1、支持MaxCompute内置类型的bigint,double,string,datetime及Boolean类型,不支持自定义类型。
2、接受多表输入,且输入表的schema可以不同。在map函数中,可以获取当前record对应的table信息。
3、输入可以为空,不支持视图(View)作为输入。
4、Reduce接受多路输出,可以输出到不同表,或者同一张表的不同分区。不同输出的schema可以不同。不同输出间通过label进行区分,默认输出不必加lable,目前不接受没有输出的情况。

MR编程模型-SDK核心接口

MaxCompute MR执行流程

核心接口

MapperBase:映射操作

JobConf:MR任务配置信息

MR使用注意事项

Graph编程模型

Graph概述

Graph的数据结构

Graph的处理流程

Graph的处理伪代码

Graph SDK介绍

Graph的Aggregator机制

Graph的作业运行

Graph开发使用流程

Dijkstra算法

配置java—+eclapse等跟mapreduce步骤都类似

JAVA沙箱限制

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
3月前
|
分布式计算 Hadoop Java
MapReduce编程:自定义分区和自定义计数器
MapReduce编程:自定义分区和自定义计数器
29 0
|
4月前
|
存储 分布式计算 负载均衡
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
【大数据技术Hadoop+Spark】MapReduce概要、思想、编程模型组件、工作原理详解(超详细)
59 0
|
11天前
|
机器学习/深度学习 分布式计算 监控
面经:MapReduce编程模型与优化策略详解
【4月更文挑战第10天】本文是关于MapReduce在大数据处理中的关键作用的博客摘要。作者分享了面试经验,强调了MapReduce的基本原理、Hadoop API、优化策略和应用场景。MapReduce包含Map和Reduce两个主要阶段,Map阶段处理输入数据生成中间键值对,Reduce阶段进行聚合计算。面试重点包括理解MapReduce工作流程、使用Hadoop API编写Map/Reduce函数、选择优化策略(如分区、Combiner和序列化)以及应用场景,如日志分析和机器学习。
19 2
|
3月前
|
分布式计算 Java Hadoop
MapReduce编程:检索特定群体搜索记录和定义分片操作
MapReduce编程:检索特定群体搜索记录和定义分片操作
28 0
|
3月前
|
分布式计算 Java Hadoop
MapReduce编程:数据过滤保存、UID 去重
MapReduce编程:数据过滤保存、UID 去重
40 0
|
3月前
|
缓存 分布式计算 Java
MapReduce编程:join操作和聚合操作
MapReduce编程:join操作和聚合操作
32 0
|
9月前
|
分布式计算 Java Hadoop
云计算与大数据实验五 MapReduce编程
云计算与大数据实验五 MapReduce编程
225 0
|
分布式计算 Java 大数据
MapReduce基础编程之按日期统计及按日期排序(下)
MapReduce基础编程之按日期统计及按日期排序(下)
259 0
MapReduce基础编程之按日期统计及按日期排序(下)
|
分布式计算 算法 Java
MapReduce入门编程-成绩求和排序
MapReduce入门编程-成绩求和排序
MapReduce入门编程-成绩求和排序
|
分布式计算 数据挖掘 Java
MapReduce 基础模型|学习笔记
快速学习 MapReduce 基础模型
141 0
MapReduce 基础模型|学习笔记