快速创建和使用数据湖分析集群

更新时间:
复制为 MD 格式

本文为您介绍如何通过E-MapReduce(简称EMR)控制台,快速创建一个基于开源Hadoop生态的数据湖分析集群,并通过集群客户端提交经典的WordCount作业。WordCountHadoop中最基础且经典的分布式计算任务,用于统计海量文本中的单词数量,广泛应用于数据分析、数据挖掘等场景。

操作概述

通过本快速入门,您将学会:

  • 如何快速创建一个数据湖分析集群。

  • 如何通过集群客户端提交和运行WordCount作业。

  • 初步了解阿里云EMR的核心功能和Hadoop生态的基本使用方法。

前提条件

  • 注册阿里云账号,并完成实名认证。具体操作请参见账号注册(PC端)

    说明

    根据阿里云ECS的规则,您在购买按量付费实例时,需要保证阿里云账户中可用余额(含现金、代金券、优惠券等)不得少于100元人民币。

  • 完成对E-MapReduce的服务账号授予默认的EMRECS角色权限,详情请参见阿里云账号角色授权

注意事项

代码的运行环境由所属用户负责管理和配置。

操作流程

步骤一:创建集群

  1. 进入创建集群页面。

    1. 登录EMR on ECS控制台

    2. 在顶部菜单栏处,根据实际情况选择地域和资源组。

      • 地域:创建的集群会在对应的地域内,一旦创建不能修改。

      • 资源组:默认显示账号全部资源。

    3. 单击上方的创建集群

  2. 在创建集群页面,完成集群相关配置。

    配置区域

    配置项

    示例

    描述

    软件配置

    地域

    华东1(杭州)

    集群节点ECS实例所在的物理位置。

    重要

    集群创建后,无法更改地域,请谨慎选择。

    业务场景

    数据湖

    选择适合的业务场景,创建集群时阿里云EMR会自动为您配置默认的组件、服务和资源,以简化集群配置,并提供符合特定业务场景需求的集群环境。

    产品版本

    EMR-5.18.1

    选择最新的软件版本。

    服务高可用

    不开启

    默认不开启。打开服务高可用开关后,EMR会把Master节点分布在不同的底层硬件上以降低故障风险。

    可选服务

    HADOOP-COMMON、 OSS-HDFS、YARN、Hive、Spark3、Tez、KnoxOpenLDAP。

    根据您的实际需求选择组件,被选中的组件会默认启动相关的服务进程。

    说明

    如需通过控制台访问Web UI界面, 还需 选择KnoxOpenLDAP服务。

    允许采集服务运行日志

    开启

    支持一键开启或关闭所有服务的日志采集。默认开启,将收集您的服务运行日志,这些日志仅供集群诊断使用。

    集群创建后,您可以在基础信息页面,修改服务运行日志收集状态

    重要

    关闭日志采集后,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、DataServingCustom集群,支持选择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密钥对

    登录密码确认密码

    自定义密码。

    请记录该配置,登录集群时您需要输入该密码。

  3. 单击确认订单

    EMR on ECS页面,当集群状态显示为运行中时,表示集群创建成功。更多集群参数信息,请参见创建集群

步骤二:准备数据

集群创建成功后,您可以使用集群客户端内预置的WordCount样例程序进行数据分析测试,也可以上传并运行自行开发的大数据应用程序。本文将以运行预置的WordCount样例程序为例,指导您完成从数据准备到数据分析作业提交的完整流程。

  1. 通过SSH方式连接集群,详情请参见登录集群

  2. 准备数据文件。

    创建一个文本文件 wordcount.txt,作为WordCount的输入数据,内容如下所示。

    hello world
    hello wordcount
  3. 上传数据文件。

    说明

    您可以根据实际情况将数据文件上传至集群的HDFSOSS/OSS-HDFS。本文以上传至OSS-HDFS为例,如果是上传至OSS,可以参见简单上传

    1. 执行以下命令,创建名为input的目录。

      hadoop fs -mkdir oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/input/
    2. 执行以下命令,将本地根目录下的wordcount.txt文件上传至OSS-HDFSinput目录。

      
      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/"

涉及参数说明如下。

参数

说明

/opt/apps/.../hadoop-mapreduce-examples-3.2.1.jar

该文件是Hadoop自带的示例程序包,包含了多个经典的MapReduce示例程序。其中,hadoop-mapreduce-examples-3.2.1.jar为您集群中对应的JAR包名称,3.2.1为版本号。通常EMR-5.x系列集群的版本号为3.2.1,如果您使用EMR-3.x系列集群,则版本号为2.8.5。

-D mapreduce.job.reduces

用于设置MapReduce作业的Reducer数量。

默认情况下,Hadoop会根据输入数据量自动决定Reducer的数量。如果未明确指定,可能会生成多个输出文件(如part-r-00000part-r-00001 等)。通过设置为1,可以确保最终只生成一个输出文件(part-r-00000)。

oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/input/wordcount.txt

WordCount作业的输入路径。为前一个步骤中您上传至OSS的数据文件。其中,应替换<yourBucketname>为您的OSS存储空间的Bucket名称,cn-hangzhou为地域名称。

oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/output/

WordCount作业的输出路径,用于存储作业的计算结果。

步骤四:查看结果

查看作业执行结果

您可以通过Hadoop Shell命令方式查看执行结果。

  1. 通过SSH方式连接集群,详情请参见登录集群

  2. 执行以下命令,查看作业执行结果。

    hadoop fs -cat oss://<yourBucketname>.cn-hangzhou.oss-dls.aliyuncs.com/output/part-r-00000

    查看返回信息。

    hello	2
    wordcount	1
    world	1

查看作业运行记录

YARNHadoop的资源管理框架,负责调度和管理集群上的任务。通过YARN UI,您可以查看作业的运行状态和历史记录,了解作业的执行过程。例如,查看作业状态、任务详情、日志信息、资源使用情况等。

  1. 开启8443端口,详情请参见管理安全组

  2. 新增用户,详情请参见OpenLDAP 用户管理

    在使用Knox账号访问YARN UI页面时,需要Knox账号的用户名和密码。

  3. EMR on ECS页面,单击目标集群所在行的集群服务

  4. 单击访问链接与端口页签。

  5. 单击YARN UI所在行的公网链接。

    使用用户管理中的用户身份信息进行登录认证,即可进入YARN UI页面。

  6. All Applications页面,单击目标作业的ID,可以查看作业运行的详情。

    该页面顶部展示 Cluster Metrics(Apps Submitted、Apps Running、Memory Used 等)和 Cluster Nodes Metrics,底部为应用列表,包含 IDNameApplication TypeStateFinalStatus 等列信息。

(可选)步骤五:释放集群

如果您创建的集群不再使用时,可以释放集群节约成本。确认集群释放后,系统会对集群进行如下处理:

  1. 强制终止集群上的所有作业。

  2. 终止并释放所有的ECS实例。

这个过程所需时间取决于集群的大小,集群越小释放越快。通常在几秒内可以完成释放,至多不会超过5分钟。

重要
  • 按量付费的集群可以随时释放,包年包月的集群到期后才能释放。

  • 释放集群前,请确保集群状态是初始化中、运行中或空闲。

  1. EMR on ECS页面,选择目标集群所在行的more > 释放

    您还可以单击目标集群的集群名称,然后在基础信息页面,选择右上角的全部操作 > 释放

  2. 在弹出的对话框中单击确定

相关文档

常见问题

了解使用阿里云EMR常见问题