580
微信
本地运行__功能介绍_MapReduce_大数据计算服务-阿里云
用户通过在jar命令中设置–local参数,在本地模拟MapReduce的运行过程,从而进行本地调试。本地运行时, 客户端会从ODPS中下载本地调试所需要的输入表的元信息、数据,所需要的资源以及输出表的元信息,并将这些信息保存到一个名为warehouse的本地目录中。 在程序运行结束后,会将计算结果输出到warehouse目录内的一个文件中。如果本地的warehouse目录下已经下载了输入表及被引用的资源,在下一次运行时, 会直接引用warehouse下的数据及文件,而不会重复下载。
在本地运行过程中,仍然会启动多个Map及Reduce进程处理数据,但这些进程不是并发运行,而是依次串行运行。此外这个模拟运行过程与真正的分布式运行有如下差别:
- 输入表行数限制:目前,最多只会下载100行数据;
- 资源的使用:在分布式环境中,ODPS会限制引用资源的大小,详情请参考 应用限制 。但在本地运行环境中,不会有资源大小的限制;
- 安全限制:ODPS MapReduce及UDF程序在分布式环境中运行时受到 Java沙箱 的限制。但在本地运行时,则没有此限制;
下面将给出一个简单的本地本地运行示例:
odps:my_project> jar -l com.aliyun.odps.mapred.example.WordCount wc_in wc_out
Summary:
counters: 10
map-reduce framework
combine_input_groups=2
combine_output_records=2
map_input_bytes=4
map_input_records=1
map_output_records=2
map_output_[wc_out]_bytes=0
map_output_[wc_out]_records=0
reduce_input_groups=2
reduce_output_[wc_out]_bytes=8
reduce_output_[wc_out]_records=2
OK
备注:
- 关于WordCount示例的介绍请参考 WordCount代码示例 。
如果用户是第一次运行本地调试命令,命令成功结束后,会在当前路径下看到一个名为warehouse的路径。warehouse的目录结构如下所示:
<warehouse>
|____my_project(项目空间目录)
|____ <__tables__>
| |__wc_in(表数据目录)
| | |____ data(文件)
| | |
| | |____ <__schema__> (文件)
| |__wc_out(表数据目录)
| |____ data(文件)
| |
| |____ <__schema__> (文件)
|
|____ <__resources__>
|
|___table_resource_name (表资源)
| |____<__ref__>
|
|___ file_resource_name(文件资源)
my_project的同级目录表示项目空间。wc_in及wc_out表示数据表,用户在jar命令中读写的表文件数据会被下载到这级目录下。 schema文件中的内容表示表的元信息,其文件格式定义为:
project=local_project_name
table=local_table_name
columns=col1_name:col1_type,col2_name:col2_type
partitions=p1:STRING,p2:BIGINT -- 本示例中不需要此字
其中,列名与列类型使用冒号”:”分隔,列与列之间使用逗号”,”分隔。schema文件的最前面需要声明Project名字及Table名字, 即project_name.table_name,使用逗号与列的定义做分隔。data文件表示表的数据。列的数量及数据必须与schema文件的定义相符, 不能多列或者少列,列之间使用逗号分隔。
wc_in的schema文件内容:
my_project.wc_in,key:STRING,value:STRING
data文件内容示例:
0,2
客户端会从ODPS中下载表的元信息及部分数据内容并保存到上述两个文件中。如果再次运行这个示例,将直接使用wc_in目录下的数据, 不会再次下载。需要特殊声明的是,从ODPS中下载数据的功能只在MapReduce的本地运行模式下才支持,在 Eclipse开发插件 中进行本地调试时, 不支持将ODPS的数据下载到本地。
wc_out的schema文件内容:
my_project.wc_out,key:STRING,cnt:BIGINT
data文件内容:
0,1
2,1
客户端会从ODPS现在wc_out表的元信息,并保存到schema文件中。而data文件的内容是在本地运行后,生成的结果数据文件。
Note:
- 用户也可以自行编辑schema及data文件,而后将这两个文件放置在对应的表目录下。在本地运行时,客户端检测到表目录已经存在, 则不会从ODPS中下载这个表的信息。本地的表目录可以是ODPS中不存在的表。
最后更新:2016-05-06 10:43:14
上一篇:
资源使用__功能介绍_MapReduce_大数据计算服务-阿里云
下一篇:
Java沙箱__MapReduce_大数据计算服务-阿里云
开通表格存储服务__快速入门_表格存储-阿里云
云数据库 MongoDB 版使用哪个版本的Mongodb?__开发运维_技术运维问题_云数据库 MongoDB 版-阿里云
后端ECS为何访问不了负载均衡实例__后端 ECS 服务器常见问题_常见问题_负载均衡-阿里云
DetachPolicyFromUser__授权策略管理接口_RAM API文档_访问控制-阿里云
AssumeRole__操作接口_STS API文档_访问控制-阿里云
编辑账号信息__账号管理类 API_Open API 参考_企业级分布式应用服务 EDAS-阿里云
域名注册流程__域名注册_注册续费_域名-阿里云
主题使用手册__Java SDK_SDK使用手册_消息服务-阿里云
挂载数据盘__磁盘_用户指南_云服务器 ECS-阿里云
宗宁:城市大脑开始落地,阿里云让城市开始思考
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云