大数据实战课程-EMR集群的运维实战
EMR集群运维实战
实验预计耗时:60分钟
1. 课程背景
1.1 课程目的
弹性 MapReduce(EMR)结合云技术和 Hadoop、Hive、Spark、Hbase、Presto、Storm 等社区开源技术,提供安全、低成本、高可靠、可弹性伸缩的云端托管 Hadoop 服务。
通过EMR可视化的监控界面可以监控集群的相关指标,比如文件数量、块信息等。监控集群组件的相关指标,比如HDFS、YARN、Hbase等相关组件的详细信息。监控集群的节点信息。监控集群的事件信息及组件配置信息等。通过可视化的监控界面全面的了解集群的整体运行状态,让使用者更加全面的快速的监控集群的异常状况。
本课程将带领学员完成EMR集群运维实战。
1.2 课前知识准备
学习本课程前,学员需要掌握以下前置知识:
1、能力基础
- Linux基本操作:掌握Linux 远程登录、文件与目录管理、vim 编辑器使用等。
- Hadoop基础:理解Hadoop基本组件的功能与原理。
- COS基础:了解对象存储基本功能,对象存储基本概念,对象存储权限管理等。
2、相关技术
- Maven:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
2. 实验环境
2.1 实验操作环境
本课程需要以下实验操作环境:
- 可以接入互联网的笔记本电脑或者台式机,本实验使用的本地计算机为Windows系统。
- 实验环境:计算机本地+腾讯云控制台
2.2 实验架构图
本实验将使用EMR三节点集群(Master节点和两个Core节点)。在任务2 集群硬件运维的实验环节中,学员将使用EMR集群扩容功能,增加一个Core节点。
2.3 实验的数据规划表
资源名称 | 数据 | 说明 |
---|---|---|
腾讯云账号 | 账号:XXXXXXXX、密码:XXXXXXXX | 涉及产品如下:VPC、EMR、COS |
PuTTY | 版本:0.73 | SSH工具 |
hdfs_to_cos_tools | 用于将 HDFS 上的数据拷贝到腾讯云COS上 | |
Maven安装包 | 版本:3.6.3 | 用于构建迁移HDFS_TO_COS 工具 |
Putty下载
hdfs_to_cos_tools下载
Maven下载
3. 实验流程
本实验共分为四个任务,首先第一个任务带领学员使用腾讯云弹性MapReduce服务创建一个Hadoop集群,并准备一个COS存储桶。实验接下来的环节将引导学员通过EMR服务依次完成集群硬件管理,集群组件管理,COS数据迁移三个任务,使学员可以掌握EMR硬件运维,软件运维,以及数据迁移的基本知识。
4. 实验步骤
任务1 实验环境准备
【任务目标】
借助弹性MapReduce服务购买一个Hadoop集群,并创建一个COS存储桶为后续实验使用做准备。
【任务步骤】
1、EMR集群选购
1.在腾讯云官网,找到弹性MapReduce首页,点击立即购买。
2.可用区与软件配置如下:
配置项 | 配置项说明 |
---|---|
计费模式 | 按量计费 |
地域/可用区 | 广州/广州四区(可根据所在地自定义选择) |
产品版本 | EMR-V3.0.0 |
必选组件 | hadoop、zookeeper、knox |
可选组件 | alluxio |
确认配置无误后,点击下一步:硬件配置。
3.硬件配置如下:
配置项 | 配置项说明 |
---|---|
节点高可用 | 不启用 |
Master配置1台 | EMR标准型S2 / 4核8G,CBS云盘100G |
Core配置2台 | EMR标准型S2 / 4核8G,CBS云盘100G |
集群外网 | 开启集群Master节点公网 |
集群网络 | 新建或选择已有的私有网络 |
启动高可用选项可以自定义选择,默认是选择的,如果取消需要手动取消选择。由于我们这里的实验环境仅仅是一个学习的实验环境所以这里我们将此选项取消,实际生产中要根据实际环境合理选择是否需要这个配置。
确认硬件配置信息无误后,点击下一步:基础配置。
4.基础配置如下:
配置项 | 配置项说明 |
---|---|
集群名称 | emr-test |
远程登录 | 开启 |
安全组 | 创建新安全组 |
对象存储 | 不开启 |
登录密码 | EMR集群云主机root用户登录的密码 |
确认信息无误后,点击购买,会自动跳转至集群页。图中的集群实例状态中显示集群创建中。
等待5min左右,集群构建成功,截图如下:
2、创建COS存储桶
因为任务中需要访问腾讯云对象存储(COS),所以需要在 COS 中先 创建一个存储桶(Bucket)。
1.访问对象存储控制台,点击存储桶列表,点击创建存储桶:
2.创建桶名称为mytest,地域选择广州。
3.创建成功后,可在存储桶列表查看到已创建的桶。
任务2 集群硬件运维
【任务目标】
EMR集群在运行一段时间后,随着集群的数据量的增加,需要对集群的节点进行扩容或提升节点配置。通过EMR集群的扩容,可以做到横向扩展集群的计算机存储能力,使集群的计算和 存储能力更强,而修改节点配置则是纵向扩展一个节点的计算或存储能力。
本节通过实验学习,让学员掌握集群扩容和集群配置修改操作。
【任务步骤】
1、EMR集群扩容
1.在EMR控制台的云硬件管理一栏中点击扩容:
2.在按量计费集群进行Core节点扩容,可以见HDFS和Alluxio是必选组件,规格选择同其他Core节点相同规格,扩容数量为1。确认信息后,点击确认。
集群扩容时,在集群列表可见EMR实例字体为灰色,实例状态显示为集群扩容中。
3.等待扩容完成大概需要5-10分钟,完成后查看Core节点信息如下;
2、EMR集群配置更改
1.登录EMR控制台,选择左侧的云硬件管理,可见此时集群共有三个节点:一个MASTER结点和俩个CORE节点。点击MASTER节点的变更配置:
2.勾选确认已阅读并理解重要提示中的内容,同意操作,点击下一步。
3.在目标配置的下拉栏中可以选择更高规格配置参数,此处选择8核16G,点击下一步。
4.再次勾选确认已阅读并理解重要提示中的内容,同意操作,点击开始调整。
5.集群配置更改时,在集群列表可见EMR实例字体为灰色,实例状态显示为变配等待中。
等待大概5分钟后,实例状态切换为集群运行中,此时可查看MASTER节点配置已经更换,计费单价也相应提高。
任务3 集群组件管理
【任务目标】
在生产过程中,随着数据量和集群硬件的变化,为了更好的保证集群的数据安全或集群的计算性能,我们通常会修改集群的一些相关配置项,以保证集群的稳定高效的运行。EMR服务还支持组件新增的功能,满足用户在后期需求增加时,可以随时增添组件实现更复杂的业务场景。
本任务带领学员通过EMR的web界面完成HDFS的Block(块)大小信息的修改,以及完成集群新增Spark组件的实现。
【任务步骤】
1、修改组件配置
1.在EMR控制台进入组件管理一栏,可以看到当前集群中已经安装的全部组件,点击HDFS组件右侧的配置:
2.HDFS的配置页面的配置管理一栏,可以看到HDFS的主要配置文件,点击配置块大小信息的hdfs-site.xml文件,点击修改配置;
3.找到dfs.blocksize这一行,原默认值为13,217728(128M),此处修改为67108864(64M),修改后点击保存配置。
4.在弹出窗口中,确认修改信息,并点击保存并下发。
大概几秒后,就提醒下发操作提交成功,HDFS块的默认值已经修改为64M。
2、新增组件
1.在EMR控制台进入组件管理一栏,点击新增组件:
2.选择增加Spark组件,选择spark_hadoop3.1-2.4.3,点击确认。
3.集群配置更改时,在集群列表可见EMR实例字体为灰色,实例状态显示为集群安装组件中。
等待大概5分钟后,实例状态切换为集群运行中,可在组件管理页面查看到列表中已经多了Spark组件的信息。
任务4 COS数据迁移
【任务目标】
好的迁移方案设计不仅能够节省迁移成本,还能帮助用户拥有更加完备的异地部署和灾备能力。腾讯云 EMR 数据迁移目前支持两种数据迁移,第一种是通过 COS(腾讯云对象存储)中转,第二种是自建 HDFS 通过DistC方式进行数据迁移,该种模式下需要实现自建集群和腾讯云EMR集群的网络互通,其中COS数据迁移应用比较广泛。
通过本实验,可以让用户能够熟练掌握COS的数据迁移,能够使用COS实现将数据从HDFS迁移到COS中。
【任务步骤】
1、开启COS访问
1.在EMR控制台进入集群管理一栏,点击EMR实例名称或详情进入实例详情页:
2.在实例详情页,右侧找到COS访问,点击设置。
3.在弹出的设置对象存储窗口内依次输入SecretId,SecretKey和测试验证地址,输入完成后点击确认。
SecretId,SecretKey可以在访问管理的API密钥管理中获取,密钥获取链接。
测试验证地址含义是,获取一个桶内文件的链接,获取方式参考如下:
a) 使用对象存储服务创建一个桶,并上传一个任意文件到桶内,点击进入文件的详情页。
b) 在对象详情页复制该对象的地址,粘贴到设置对象存储窗口的测试验证地址一栏。
4.设置对象存储信息提交无误后,COS访问状态改为已开启。
5.测试,使用查看命令:
hadoop fs -ls cosn://{bucket-name}/
实例代码如下,请注意更改为自己的存储桶名:
hadoop fs -ls cosn://mytest-1300207958.cos.ap-guangzhou.myqcloud.com/
2、迁移文件
1.在GitHub下获取HDFS到COS 的迁移工具,网址如下:
https://github.com/tencentyun/hdfs_to_cos_tools
在Clone or download下拉栏中点击Download ZIP。
2.下载完成后,将下载的zip包上传到hadoop的集群的一个节点的服务器上,这里我们传到该节点的/home/hadoop/apps目录下,首先创建目录:
mkdir /home/hadoop/apps
在PuTTY目录启动cmd,在弹出的黑窗口首先输入psftp,打开psftp工具用来传输文件;
psftp
接下来连接服务器,回车后需要输入用户名和密码;
open xxx.xxx.xxx.xxx
用于切换远程Linux 服务器上的目录;
cd /home/hadoop/apps
lcd命令用于切换本地的路径;
lcd D:\
上传文件;
put hdfs_to_cos_tools-master.zip
psftp使用参考如下:
3.将以上的迁移工具进行解压,解压命令如下:
unzip hdfs_to_cos_tools-master.zip
解压完成如下:
4.将需要迁移的hdfs集群的core-site.xml文件拷贝到cos迁移工具目录的conf目录下,使用命令如下:
cp /usr/local/service/hadoop/etc/hadoop/core-site.xml hdfs_to_cos_tools-master/conf/
注意:请注意相对路径是否正确。
5.修改cos的配置文件,路径为cos的安装目录下的conf目录下的cos_info.conf文件
vim /home/hadoop/apps/hdfs_to_cos_tools-master/conf/cos_info.conf
编辑配置文件cos_info.conf, 包括appid和bucket, region以及秘钥信息,可以在API密钥管理中获取:
属性名 | 解释 |
---|---|
ak | 所用COS的SecretId |
sk | 所用COS的SecretKey |
bucket | COS上的桶名 |
region | COS的地域简称 |
Endpoint_suffix | Endpoint |
6.快速创建并上传一个文件到HDFS
使用root账户;
su root
快速创建test文件;
echo "hello world">test.txt
验证文件内容添加成功;
cat test.txt
切换hadoop用户;
su hadoop
HDFS内创建/test文件夹;
hdfs dfs -mkdir /test
上传文件至HDFS的/test文件夹;
hdfs dfs -put ./test.txt /test
验证文件上传成功;
hdfs dfs -ls /test
7.安装Maven;
a) 下载Maven
切换root用户;
su root
创建/test目录;
mkdir /test
切换至/test目录;
cd /test
下载Maven安装包;
wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
解压Maven安装包;
tar -zxf apache-maven-3.6.3-bin.tar.gz
b) 配置Maven;
vim /etc/profile
添加配置信息;
export MAVEN_HOME=/test/apache-maven-3.6.3
在PATH内添加:
$MAVEN_HOME/bin
编辑后source环境变量;
source /etc/profile
使用which命令查看是否可以找到mvn可执行文件位置;
which mvn
8.对迁移工具进行重构
cd /home/hadoop/apps/hdfs_to_cos_tools-master/
在当前位置,创建输出文件夹;
mkdir ./dep
更改可执行权限;
chmod 777 ./opbin/rebuild.sh
重构迁移工具;
./opbin/rebuild.sh
验证:使用参数-h查看帮助信息;
java -jar ./dep/hdfs_to_cos-1.0.0-jar-with-dependencies.jar -h
9.进行数据迁移,将HDFS目录/test内的文件迁移到COS的配置桶中
java -jar ./dep/hdfs_to_cos-1.0.0-jar-with-dependencies.jar --appid 1300207958 --hdfs_path=/test --cos_path=/hdfs/2020
10.执行成功后,可以在COS桶内查看到迁移数据成功
至此,恭喜您已经完成了EMR集群运维实战的全部任务。
5. 注意事项
如实验资源无需保留,请在实验结束后及时销毁,以免产生额外费用。
学员评价