最近更新时间:2024.03.19 15:54:10
首次发布时间:2023.03.16 17:40:40
您可以通过创建火山引擎 E-MapReduce(EMR)的 MapReduce 任务,调用 MapReduce 提供的接口处理存储在 hdfs 上的数据,也可以将复杂的数据集通过 MapReduce 任务,拆分为多个简单的 MapReduce 子任务来并行处理,提升运算效率。
本文将通过一个 WordCount 案例,即统计文件中的单词数量为例,来为您介绍如何创建 EMR MapReduce 节点,并应用到实际的开发流程场景中。
任务创建成功后,进入到 MapReduce 任务配置界面,在配置界面中完成以下参数配置。
资源类型支持 Jar 资源包的形式,可以按以下方式选择资源:
参数 | 说明 |
---|---|
Main Class | 填写 Jar 包主类信息,如 org.myorg.WordCount |
自定义参数 | 根据实际情况,配置任务中可设置的一些 MapReduce 参数,例如您可通过
您可通过以下两种方式来进行配置:
|
Params | 输入任务中定义的参数,多个参数以空格形式进行分隔,例如您可输入 MapReduce 任务的 input 和 output 相关文件的路径地址。 |
任务产出数据登记,用于记录任务---数据血缘信息,并不会对代码逻辑造成影响。对于系统无法通过解析获取产出信息的任务,可手动登记其产出信息。 如果任务含有 Hive 表或者 HDFS 目录的写入操作,强烈建议填写。您填写的内容即为任务产出,支持填写多个。其他任务的依赖推荐会根据此处填写的 Hive 表或者 HDFS 目录进行推荐。 具体登记内容包括:
通过 ssh 方式,登录到 EMR 集群中,详见登录集群。
在 EMR 集群环境中,执行sudo vim wordcount.txt
命令,创建 wordcount.txt,并插入文本,文本内容如下:
He is Bob hello world hello MySQL MySQL python python python java java java java java
将 wordcount.txt 上传至 HDFS 的 /tmp 目录下:
hdfs dfs -put wordcount.txt /tmp
将如下 Jar 包资源下载到本地
登录 DataLeap租户控制台 。
进入数据开发 > 资源库,进行 EMR 资源创建:
参数 | 说明 |
---|---|
关联信息 | |
引擎绑定 | 支持选择 EMR 引擎。 |
关联实例 | 默认关联项目绑定时的 EMR 实例。 |
保存至 | 资源上传后的文件路径。 |
基本信息 | |
资源名称 | 输入资源名称,示例 emr_mr_wordcount,只允许数字、字母、下划线、-和.组成。 说明 相同引擎类型下,不能和已创建成功的资源名称重复。 |
资源类型 | 资源支持 Jar、File、Zip 类型,本次示例选择 Jar 资源类型。 |
资源来源 | 默认选择本地文件的来源方式 |
资源文件 | 将上方的资源包下载到本地后,单击点击上传按钮,完成 Jar 包资源上传。 |
单击确定按钮,完成资源创建。新增资源更多操作详见资源库。
资源类型:选择上方创建的 emr_mr_wordcount 资源文件。
Main Class:org.myorg.WordCount,填写 Jar 资源中的主类信息。
Params:输入文件所在路径,及输出结果路径,以空格分隔:
/tmp/wordcount.txt /tmp/mr/out_'${date}'
说明
任务配置完成后,单击上方操作栏中的保存和调试按钮,进行 MapReduce 任务的调试。
注意
待任务运行完成后,进入 EMR 集群环境中,执行以下命令,进行查看任务运行结果:
##其中下方的 out_20230303 可按照具体执行的业务日期进行替换 hdfs dfs -cat /tmp/mr/out_20230303/part-00000
数据验证确认无误后,您可进行后续的调度设置和将任务提交发布到运维中心离线任务运维中执行。