快速创建和使用启用安全认证的MRS集群
操作场景
本入门提供从零开始创建开启Kerberos认证的Hadoop分析集群并通过集群客户端提交一个wordcount作业的操作指导。wordcount是最经典的Hadoop作业,用于统计海量文本的单词数量。
Hadoop集群完全使用开源Hadoop生态,采用Yarn管理集群资源,提供Hive、Spark离线大规模分布式数据存储和计算及进行海量数据分析与查询的能力。
操作流程
开始使用如下样例前,请务必按准备工作指导完成必要操作。
准备工作
- 注册账号并实名认证。
在创建MRS集群之前,请先注册华为账号并开通华为云,进行实名认证。
如果您已开通华为云并进行实名认证,请忽略此步骤。
- 已准备具有创建MRS集群权限的IAM用户,详细操作请参见创建IAM用户并授权使用MRS。
步骤一:创建MRS集群
- 进入购买MRS集群页面。
- 在服务列表中搜索“MapReduce服务 MRS”,进入MRS服务管理控制台。
- 单击“购买集群”,进入“购买集群”页面,选择“快速购买”页签。
- 根据实际业务规划情况填写集群配置信息(本示例为快速创建按需计费的MRS 3.2.0-LTS.1版本集群,如需了解更多参数配置请参考快速创建MRS集群)。
表1 MRS集群配置参数 参数
示例
参数说明
计费模式
按需计费
选择待创建的集群的计费模式,MRS提供“包年/包月”与“按需计费”两种计费模式。
按需计费是一种后付费模式,即先使用再付费,按照MRS集群实际使用时长计费。
区域
中国-香港
选择区域。
不同区域的云服务产品之间内网互不相通。请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
集群名称
mrs_demo
待创建的MRS集群名称。
集群类型
自定义
根据业务实际需求选择待创建的MRS集群类型。“自定义”类型集群提供丰富的组件搭配,可自行选择对应版本MRS集群所支持的所有组件。
版本类型
普通版
待创建的MRS集群版本类型。
集群版本
MRS 3.2.0-LTS.1
待创建的MRS集群版本,不同版本所包含的开源组件版本及功能特性可能不同,推荐选择最新版本。
组件选择
Hadoop分析集群
基于系统预置的集群模板选择要购买的集群组件。
可用区
可用区1
选择集群工作区域下关联的可用区。
虚拟私有云
vpc-default
选择需要创建集群的VPC,单击“查看虚拟私有云”进入VPC服务查看已创建的VPC名称和ID。如果没有VPC,需要创建一个新的VPC。
子网
subnet-default
选择需要创建集群的子网,可进入VPC服务查看VPC下已创建的子网名称和ID。如果VPC下未创建子网,请单击“创建子网”进行创建。
集群节点
保持默认
配置集群节点信息。
Kerberos认证
开启
是否启用Kerberos认证。
用户名
admin/root
登录集群管理页面及ECS节点的用户名。
密码
-
设置登录集群管理页面及ECS节点用户的密码。
确认密码
-
再次输入设置用户密码。
企业项目
default
选择集群所属的企业项目。
通信安全授权
勾选
勾选确认授权。
图1 购买Hadoop分析集群
- 单击“立即购买”,进入任务提交成功页面。
- 单击“返回集群列表”,在“现有集群”列表中可以查看到集群创建的状态。
集群创建需要时间,所创集群的初始状态为“启动中”,创建成功后状态更新为“运行中”,请您耐心等待。
步骤二:创建集群用户
开启Kerberos认证的集群,必须通过以下步骤创建一个用户并分配相应权限来允许用户执行程序。
- MRS集群创建成功后,在集群列表中单击MRS集群名称进入集群概览页面。
- 单击“集群管理页面”后的“前往 Manager”,在弹出的窗口中选择“EIP访问”并配置弹性IP信息。
首次访问时,可点击“管理弹性公网IP”,在弹性公网IP控制台购买一个弹性公网IP,购买成功后刷新弹性公网IP列表并选择。
- 勾选确认信息后,单击“确定”,登录集群的FusionInsight Manager管理界面。
Manager登录用户名为admin,密码为购买集群时配置的用于登录Manager管理界面的“admin”用户的自定义密码。
- 选择“系统 > 权限 > 角色”。
- 单击“添加角色”,配置如下参数创建一个角色,详情请参见创建角色。
- 填写角色的名称,例如mrrole。
- 在“配置资源权限”选择待操作的集群,然后选择“Yarn > 调度队列 > root”,勾选“权限”列中的“提交”和“管理”,勾选完全后,单击如下图的待操作的集群名,进行后面权限的选择。
图2 配置Yarn服务权限
- 选择“HDFS > 文件系统 > hdfs://hacluster/”,勾选“user”所在行的“权限”列的“读”、“写”和“执行”权限,单击“确定”,完成角色的创建。
图3 配置HDFS服务权限
- 选择“用户 > 添加用户”,配置如下参数创建一个用户,详情请参见创建用户。
- 填写用户名,例如test。
- 用户类型为“人机”用户。
- 输入密码和确认新密码。
- 绑定“Manager_viewer”和5新建的“mrrole”角色取得权限。
图4 添加用户
- 单击“确定”完成用户创建。
步骤三:安装集群客户端
MRS集群创建成功后,用户可安装集群客户端用于连接集群内各组件服务,进行作业提交等操作。
客户端可以安装在集群内的节点上,也可以安装在集群外的节点上。本指南以在Master1节点上安装客户端为例进行介绍。
- MRS集群创建成功后,在集群列表中单击MRS集群名称进入集群概览页面。
- 单击“集群管理页面 ”后的“前往 Manager”,在弹出的窗口中选择“EIP访问”并配置弹性IP信息。
首次访问时,可点击“管理弹性公网IP”,在弹性公网IP控制台购买一个弹性公网IP,购买成功后刷新弹性公网IP列表并选择。
- 勾选确认信息后,单击“确定”,登录集群的FusionInsight Manager管理界面。
Manager登录用户名为admin,密码为购买集群时配置的用于登录Manager管理界面的“admin”用户的自定义密码。
- 在“主页”页签的集群名称后单击,单击“下载客户端”下载集群客户端。
图5 下载客户端
在“下载集群客户端”弹窗中,配置以下参数:
- 选择客户端类型:选择“完整客户端”。
- 选择平台类型:默认勾选即可,例如“x86_64”。
- 勾选“仅保存到如下路径”,使用默认保存路径,文件生成后将保存在集群主OMS节点的“/tmp/FusionInsight-Client”目录下。
图6 下载集群客户端提示框
单击“确定”后,等待客户端软件生成成功。
- 在MRS服务管理控制台的集群列表中,单击集群名称,在集群的“节点管理”页签,单击包含“master1”的节点名称,在ECS详情页面单击右上角的“远程登录”登录Master1节点。
图7 查看Master1节点
- 使用root用户登录Master1节点,密码为购买集群时配置的用于登录集群节点的“root”用户自定义密码。
- 执行以下命令切换到客户端软件包所在目录,并解压客户端软件包:
cd /tmp/FusionInsight-Client/
tar -xvf FusionInsight_Cluster_1_Services_Client.tar
tar -xvf FusionInsight_Cluster_1_Services_ClientConfig.tar
- 执行以下命令进入安装包所在目录,安装客户端:
cd FusionInsight_Cluster_1_Services_ClientConfig
执行如下命令安装客户端到指定目录(绝对路径),例如安装到“/opt/client”目录,等待客户端安装完成。
./install.sh /opt/client
... ... component client is installed successfully ...
客户端安装目录可以不存在,会自动创建。但如果存在,则必须为空,目录路径不能包含空格。且客户端安装目录路径只能包含大写字母、小写字母、数字以及_字符。
步骤四:准备应用程序及数据
MRS集群创建成功后,可获取集群客户端内的wordcount样例程序进行运行,也可准备上层业务自行开发的大数据应用程序并上传至集群。本指南以运行MRS集群客户端内的wordcount样例程序为例进行介绍,需先准备wordcount样例程序运行所需的数据文件。
- 以root用户登录Master1节点。
- 准备数据文件。
数据文件无格式要求,例如文件名为“wordcount1.txt”和“wordcount2.txt”,内容如下所示:
vi /opt/wordcount1.txt
hello word hello wordcount
vi /opt/wordcount2.txt
hello mapreduce hello hadoop
- 执行以下命令切换到客户端安装目录,配置环境变量并创建用于存放样例数据的HDFS目录,例如“/user/example/input”。
cd /opt/client
source bigdata_env
kinit test(test为6创建的用户名,如果该用户首次登录,需修改初始密码)
hdfs dfs -mkdir /user/example
hdfs dfs -mkdir /user/example/input
6创建的test用户仅具有“/user”目录的“读”、“写”和“执行”权限,如果在“/user”之外其他目录中创建“input”目录会报权限不足错误,例如:
hdfs dfs -mkdir /hbase/input
命令执行后会报如下错误:
mkdir: Permission denied: user=test, access=EXECUTE, inode="/hbase":hbase:hadoop:drwxrwx--T
- 执行以下命令,将样例数据上传至HDFS。
hdfs dfs -put /opt/wordcount1.txt /user/example/input
hdfs dfs -put /opt/wordcount2.txt /user/example/input
步骤五:提交作业并查看结果
- 以root用户登录客户端节点(Master1节点)。
- 执行如下命令提交wordcount作业,读取源数据进行分析并将执行结果输出至HDFS。
cd /opt/client
source bigdata_env
kinit test
hadoop jar HDFS/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1-*.jar wordcount "/user/example/input/*" "/user/example/output/"
... File Input Format Counters Bytes Read=56 File Output Format Counters Bytes Written=48
- “/user/example/output/”为HDFS上存放作业输出文件地址,请设置为一个不存在的目录。
- “hadoop-mapreduce-examples-3.3.1-*.jar”文件在不同版本的集群客户端目录下文件名有差异,以实际名称为准。
- 查看作业执行结果。
- 作业执行完成后,可执行以下命令查看作业输出文件。
hdfs dfs -ls /user/example/output/
... ... /user/example/output/_SUCCESS ... /user/example/output/part-r-0000
- 输出结果保存在HDFS文件系统中,可以通过命令将其下载到本地进行查看。
hdfs dfs -get /user/example/output/part-r-00000 /opt
cat /opt/part-r-00000
“part-r-00000”文件内容如下:
hadoop 1 hello 4 mapreduce 1 word 1 wordcount 1
- 作业执行完成后,可执行以下命令查看作业输出文件。
- 查看作业运行记录。
- 使用6创建的test用户登录集群的FusionInsight Manager页面,选择“集群 > 服务 > Yarn”。
- 单击“ResourceManager Web UI”所在行的“ResourceManager(xxx,主)”链接。
- 在“All Applications”页面,单击目标作业的ID,可以查看作业运行的详情。
在“All Applications”页面可根据任务提交时间和提交任务的用户名确认具体任务。
图8 查看作业详情
相关信息
Hadoop组件包含了HDFS、Yarn、Mapreduce服务,可根据业务实际需求运行相关作业进行离线数据分析或查看,详细操作请参见使用HDFS、使用MapReduce或使用Yarn。