本文为您介绍如何通过E-MapReduce(简称EMR)控制台,快速创建一个基于开源Hadoop生态的数据湖分析集群,并通过集群客户端提交经典的WordCount作业。WordCount是Hadoop中最基础且经典的分布式计算任务,用于统计海量文本中的单词数量,广泛应用于数据分析、数据挖掘等场景。
操作概述
通过本快速入门,您将学会:
- 如何快速创建一个数据湖分析集群。 
- 如何通过集群客户端提交和运行WordCount作业。 
- 初步了解阿里云EMR的核心功能和Hadoop生态的基本使用方法。 
前提条件
注意事项
代码的运行环境由所属用户负责管理和配置。
操作流程
步骤一:创建集群
- 进入创建集群页面。 - 在顶部菜单栏处,根据实际情况选择地域和资源组。 - 地域:创建的集群会在对应的地域内,一旦创建不能修改。 
- 资源组:默认显示账号全部资源。 
 
- 单击上方的创建集群。 
 
- 在创建集群页面,完成集群相关配置。 - 配置区域 - 配置项 - 示例 - 描述 - 软件配置 - 地域 - 华东1(杭州) - 集群节点ECS实例所在的物理位置。 重要- 集群创建后,无法更改地域,请谨慎选择。 - 业务场景 - 数据湖 - 选择适合的业务场景,创建集群时阿里云EMR会自动为您配置默认的组件、服务和资源,以简化集群配置,并提供符合特定业务场景需求的集群环境。 - 产品版本 - EMR-5.18.1 - 选择最新的软件版本。 - 服务高可用 - 不开启 - 默认不开启。打开服务高可用开关后,EMR会把Master节点分布在不同的底层硬件上以降低故障风险。 - 可选服务 - HADOOP-COMMON、 OSS-HDFS、YARN、Hive、Spark3、Tez、Knox和OpenLDAP。 - 根据您的实际需求选择组件,被选中的组件会默认启动相关的服务进程。 说明- 如需通过控制台访问Web UI界面,还需选择Knox和OpenLDAP服务。 - 允许采集服务运行日志 - 开启 - 支持一键开启或关闭所有服务的日志采集。默认开启,将收集您的服务运行日志,这些日志仅供集群诊断使用。 - 集群创建后,您可以在基础信息页面,修改服务运行日志收集状态。 重要- 关闭日志采集后,EMR的健康检查和技术支持将受到限制,但其他功能仍可正常使用。如何关闭及影响详情,请参见如何停止采集服务日志?。 - 元数据 - 内置MySQL - 表示元数据存储在MySQL中。 重要- 内置MySQL是一种快速搭建测试环境的方式,不建议在生产环境中使用。如果您正在规划生产环境的元数据存储方案,建议根据实际需求选择自建RDS或者DLF统一元数据。 - 集群存储根路径 - oss://******.cn-hangzhou.oss-dls.aliyuncs.com - 当您在可选服务区域选择了OSS-HDFS服务时,需要配置该参数,如果选择的是HDFS服务,则无需配置该参数。 说明- 在选择使用OSS-HDFS服务之前,请确保您选择的地域支持该服务。否则,您可以尝试更换地域或使用HDFS服务替代OSS-HDFS服务。OSS-HDFS服务目前支持的地域信息,请参见开通并授权访问OSS-HDFS服务。 
- EMR-5.12.1及后续版本,EMR-3.46.1及后续版本的DataLake、DataFlow、DataServing和Custom集群,支持选择OSS-HDFS服务。 
 - 硬件配置 - 付费类型 - 按量付费 - 在测试场景下,建议使用按量付费,测试正常后可以释放该集群,再新建一个包年包月的生产集群正式使用。 - 可用区 - 可用区 I - 集群创建后,无法直接更改可用区,请谨慎选择。 - 专有网络 - vpc_Hangzhou/vpc-bp1f4epmkvncimpgs**** - 选择对应区域下的专有网络。如果没有,单击创建VPC前往新建。创建专有网络完成后,单击刷新,可以选择刚创建的VPC。 - 交换机 - vsw_i/vsw-bp1e2f5fhaplp0g6p**** - 选择在对应专有网络下可用区的交换机,如果在这个可用区没有可用的交换机,则需要新创建一个。 - 默认安全组 - sg_seurity/sg-bp1ddw7sm2risw**** 重要- 不支持使用ECS上创建的企业安全组。 - 如果已有在使用的安全组,则可以直接选择使用。您也可以新建一个安全组。 - 节点组 - 打开Master节点组下的挂载公网开关,其余使用默认值即可。 - 您可以根据业务诉求,配置Master节点组、Core节点组或Task节点组信息。详情请参见选择硬件与网络。 - 基础配置 - 集群名称 - Emr-DataLake - 集群的名字,长度限制为1~64个字符,仅可使用中文、字母、数字、短划线(-)和下划线(_)。 - 身份凭证 - 密码。 - 用于远程登录集群的Master节点。 说明- 如果您希望在不输入密码的情况下进行身份验证,可以选择密钥对方式,更多详情请参见管理SSH密钥对。 - 登录密码和确认密码 - 自定义密码。 - 请记录该配置,登录集群时您需要输入该密码。 
- 单击确认订单。 - 在EMR on ECS页面,当集群状态显示为运行中时,表示集群创建成功。更多集群参数信息,请参见创建集群。 
步骤二:准备数据
集群创建成功后,您可以使用集群客户端内预置的WordCount样例程序进行数据分析测试,也可以上传并运行自行开发的大数据应用程序。本文将以运行预置的WordCount样例程序为例,指导您完成从数据准备到数据分析作业提交的完整流程。
- 通过SSH方式连接集群,详情请参见登录集群。 
- 准备数据文件。 - 创建一个文本文件 - wordcount.txt,作为WordCount的输入数据,内容如下所示。- hello world hello wordcount
- 上传数据文件。 说明- 您可以根据实际情况将数据文件上传至集群的HDFS或OSS/OSS-HDFS。本文以上传至OSS-HDFS为例,如果是上传至OSS,可以参见简单上传。 - 执行以下命令,创建名为 - input的目录。- hadoop fs -mkdir oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/input/
- 执行以下命令,将本地根目录下的 - wordcount.txt文件上传至OSS-HDFS的- input目录。- hadoop fs -put wordcount.txt oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/input/
 
步骤三:提交作业
通过WordCount程序,您可以实现对文本数据中单词出现频率的统计分析。
执行以下命令,提交WordCount作业。
hadoop jar /opt/apps/HDFS/hadoop-3.2.1-1.2.16-alinux3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount -D mapreduce.job.reduces=1 "oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/input/wordcount.txt" "oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/output/"涉及参数说明如下所示。
| 参数 | 说明 | 
| 
 | 该文件是Hadoop自带的示例程序包,包含了多个经典的MapReduce示例程序。其中, | 
| 
 | 用于设置MapReduce作业的Reducer数量。 默认情况下,Hadoop会根据输入数据量自动决定Reducer的数量。如果未明确指定,可能会生成多个输出文件(如 | 
| 
 | WordCount作业的输入路径。为前一个步骤中您上传至OSS的数据文件。其中,应替换 | 
| 
 | WordCount作业的输出路径,用于存储作业的计算结果。 | 
步骤四:查看结果
查看作业执行结果
您可以通过Hadoop Shell命令方式查看执行结果。
- 通过SSH方式连接集群,详情请参见登录集群。 
- 执行以下命令,查看作业执行结果。 - hadoop fs -cat oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/output/part-r-00000- 返回信息如下所示。  
查看作业运行记录
YARN是Hadoop的资源管理框架,负责调度和管理集群上的任务。通过YARN UI,您可以查看作业的运行状态和历史记录,了解作业的执行过程。例如,查看作业状态、任务详情、日志信息、资源使用情况等。
- 开启8443端口,详情请参见管理安全组。 
- 新增用户,详情请参见OpenLDAP 用户管理。 - 在使用Knox账号访问YARN UI页面时,需要Knox账号的用户名和密码。 
- 在EMR on ECS页面,单击目标集群所在行的集群服务。 
- 单击访问链接与端口页签。 
- 单击YARN UI所在行的公网链接。 - 使用用户管理中的用户身份信息进行登录认证,即可进入YARN UI页面。 
- 在All Applications页面,单击目标作业的ID,可以查看作业运行的详情。  
(可选)步骤五:释放集群
如果您创建的集群不再使用时,可以释放集群节约成本。确认集群释放后,系统会对集群进行如下处理:
- 强制终止集群上的所有作业。 
- 终止并释放所有的ECS实例。 
这个过程所需时间取决于集群的大小,集群越小释放越快。通常在几秒内可以完成释放,至多不会超过5分钟。
- 按量付费的集群可以随时释放,包年包月的集群到期后才能释放。 
- 释放集群前,请确保集群状态是初始化中、运行中或空闲。 
- 在EMR on ECS页面,选择目标集群所在行的。 - 您还可以单击目标集群的集群名称,然后在基础信息页面,选择右上角的。 
- 在弹出的对话框中单击确定。 
相关文档
常见问题
了解使用阿里云EMR的常见问题。
 > 释放
 > 释放