45分钟

实验1-HDFS实战

实验预计耗时:45分钟

1. 课程背景

1.1 课程目的

弹性 MapReduce(EMR)是腾讯云结合云技术和 Hadoop、Spark 等社区开源技术,提供的安全、低成本、高可靠、可弹性伸缩的云端托管 Hadoop 服务。您可以在数分钟内创建安全可靠的专属 Hadoop 集群,以分析位于集群内数据节点或 COS 上的 PB 级海量数据。

本实验将搭建一个EMR集群,通过HDFS基础命令的使用,让学员了解HDFS基本功能,体验EMR为大数据开发和使用带来的高效与便捷。

1.2 课前知识准备

学习本课程前,学员需要掌握以下前置知识:

1、能力基础

  • Linux运维基础:掌握Linux远程登录、文件与目录管理、vim编辑器使用等。

2、相关技术

  • Hadoop:是由Apache基金会所开发的分布式系统基础架构,其核心包括以下几个组件:
    • HDFS:提供数据高吞吐量访问的分布式文件系统。
    • YARN:作业调度和集群资源管理框架。
    • MapReduce:一种基于YARN的大型数据集并行处理系统。
  • HDFS:Hadoop Distributed File System,分布式文件系统:
    • Namenode:存储文件的metadata(元数据),元数据记录了每一个block数据的位置信息。
    • Datanode:从节点负责真实数据的存储,保存具体的block数据。
    • Secondary Namenode:定时与NameNode进行同步,NameNode失效后可以手工将其设置成主机。
  • 相关概念:
    • EMR 节点类型:EMR 提供了5种节点类型,您可以根据自身需求进行选择:
      • Master 节点为管理节点,保证集群的调度正常进行。
      • Core 节点为计算及存储节点,您在 HDFS 中的数据全部存储于 Core 节点中,因此为了保证数据安全,扩容 Core 节点后不允许缩容。
      • Task 节点为纯计算节点,不存储数据,被计算的数据来自 Core 节点及 COS 中,因此 Task 节点往往被作为弹性节点,可随时扩容和缩容。
      • Common 节点为 HA 集群 Master 节点提供数据共享同步以及高可用容错服务。
      • Router 节点用以分担 Master 节点的负载或者作为集群的任务提交机,可以随时扩容和缩容。

2. 实验环境

2.1 实验操作环境

本课程需要以下实验操作环境:

  1. 可以接入互联网的笔记本电脑或者台式机,包括但不限于Windows、MAC系统
  2. 实验环境:计算机本地+腾讯云控制台
  3. 电脑需安装SSH客户端工具,此实验采用PuTTY

2.2 实验架构图

本实验使用3节点EMR集群,通过PuTTY连接Master节点后,使用操作命令向NameNode发起请求,实现文件的上传、下载等操作:

2.3 实验的数据规划表

资源名称

数据

说明

腾讯云账号

账号:XXXXXXXX、密码:XXXXXXXX

涉及产品如下:VPC、EMR

PuTTY

版本:0.73

-

PuTTY下载

3. 实验流程

实验开始前首先准备实验环境,主要步骤为EMR的配置与购买,其中PuTTY软件的安装请学员自行完成。

环境准备后,按照实验任务与步骤,学员可以一次进行文件上传和目录查看,文件移动和复制,文件统计和下载等操作的练习,对HDFS的基本命令与使用有更深的理解。

4. 实验步骤

任务1 实验环境准备

【任务目标】

通过EMR集群的搭建练习,使学员可以熟练搭建EMR集群,快速构建实验所需大数据平台环境。

【任务步骤】

1、角色EMR授权

1.登录腾讯云首页,点击上方产品,在大数据专栏中找到弹性 MapReduce,点击进入链接。

2.在产品页,点击立即选购

3.使用主账号初次使用时,会提醒该功能需要对角色进行服务授权,点击前往访问管理。如使用子账号无权限时,需要通过主账号对子账号的角色进行服务授权。

4.点击同意授权,此操作需要进行身份验证。

授权成功后页面会自动跳转回EMR选购页面,接下来就可以开始选择EMR的配置了。

2、EMR集群购买

1.可用区与软件配置如下:

配置项

配置项说明

计费模式

按量计费

地域/可用区

广州/广州四区(可根据所在地自定义选择)

产品版本

EMR-V3.0.0

必选组件

hadoop、zookeeper、knox

可选组件

确认配置无误后,点击下一步:硬件配置

注意:请勿选择EMR-3.0.0 tlinux,如产品版本无EMR-3.0.0版本,请更换个人主账号进行实验。

2.硬件配置如下:

配置项

配置项说明

节点高可用

不启用

Master配置1台

EMR标准型S4 / 2核8G,CBS云盘:100G高效云盘 X 1

Core配置2台

EMR标准型S4 / 2核8G,CBS云盘:100G高效云盘 X 1

集群外网

开启集群Master节点公网

集群网络

新建或选择已有的私有网络

启动高可用选项可以自定义选择,默认是选择的,如果取消需要手动取消选择。由于我们这里的实验环境仅仅是一个学习的实验环境所以这里我们将此选项取消,实际生产中要根据实际环境合理选择是否需要这个配置。

确认硬件配置信息无误后,点击下一步:基础配置

3.基础配置如下:

配置项

配置项说明

集群名称

emr-test

远程登录

开启

安全组

创建新安全组

对象存储

不开启

登录密码

EMR集群云主机root用户登录的密码

确认信息无误后,点击购买,会自动跳转至集群页。图中的集群实例状态中显示集群创建中

等待10min左右,集群构建成功,截图如下:

3、第三方工具连接EMR集群

1.复制集群页的主节点外网IP,打开PuTTY创建连接,将复制的外网IP粘贴至Host Name,端口默认22,如图:

2.点击Open,第一次连接会弹出安全警告,点击是(Y)

3.接下在login as:后填写用户名为root,密码为构建EMR的时候设置的密码:

备注:这里只能使用root用户进行连接。

回车确认后,我们即可成功访问主节点实例。输入java进程查看命令jps,可看到应用进程已经启动,可以看到NameNode已经启动。

任务2 文件上传和目录查看

【任务目标】

通过文件上传练习,使学员了解和掌握HDFS的mkdir、put和ls命令。

【任务步骤】

1、文件上传

1.在/home目录下使用vim创建一个文件。

vim words.dat

多次粘贴如下数据,建议数据超过20行,本实验文本内容25行。

hello java hello mysql hello hadoop hello hadoop hello emr hello java hello mysql hello hadoop hello hadoop hello emr hello java hello mysql hello hadoop hello hadoop hello emr hello java hello mysql hello hadoop hello hadoop hello emr hello java hello mysql hello hadoop hello hadoop hello emr

输入完内容后,点击ECS,输入:wq保存并退出。

2.切换到hadoop用户,并创建在HDFS根目录上创建一个test文件夹。

su - hadoop

hdfs dfs -mkdir /test

验证:查看HDFS根目录下是否出现了test文件夹。

hdfs dfs -ls /

3.使用-put命令将创建的文档上传到HDFS的test目录下,使用命令如下:

hdfs dfs -put ./words.dat /test

验证:查看HDFS上test文件夹内是否出现了words.dat文件。

hdfs dfs -ls /test

2、文件查看

1.分别使用下面两条命令分别查看尾行数据,以及统计数据行数。

查看尾行数据;

hdfs dfs -tail /test/words.dat

查看行数统计;

hdfs dfs -cat /test/words.dat |wc -l

2.下图为查看test目录下的words.dat文件的尾行数据。

3.下图为查看test目录下的words.dat文件数据行数。

4.在控制台找到组件管理,点击HDFS原生WebUI访问地址。注意,第一次访问需要输入用户名(root)和密码(EMR登录密码)。

注:如果浏览器提示安全警告,点击高级>允许访问

5.点击上方Utilities,选择Browser the file system

6.可以输入/test进行搜索,或者点击目录名称,您也可以查看到目录下的文件。

任务3 文件移动和复制

【任务目标】

通过文件复制和移动练习cp,mv命令。

【任务步骤】

1、移动文件

在HDFS内创建一个/tmp文件夹;

hdfs dfs -mkdir /tmp

将/test目录下的words.dat文件移动至/tmp目录下;

hdfs dfs -mv /test/words.dat /tmp/words.dat

验证:确认/tmp目录下文件信息;

hdfs dfs -ls /tmp/

验证:确认/test目录下文件信息;

hdfs dfs -ls /test/

如下图可知,执行移动操作后,/test目录下没有文件。

2、拷贝文件

将/test目录下的words.dat文件拷贝至/tmp/test目录下。

hdfs dfs -mkdir /tmp/test
hdfs dfs -cp /tmp/words.dat /tmp/test

验证:查看HDFS上tmp和tmp/test目录下的文件,应该都有words.dat。

hdfs dfs -ls /tmp/test/

如下图可知,执行移动操作后,/tmp和/tmp/test目录皆有words.dat文件。

任务4 文件统计和下载

【任务目标】

通过实操练习count和get命令,实现HDFS上文件统计与下载功能。

【任务步骤】

1、文件统计

1.使用下面命令对/test目录下的信息进行统计。

hdfs dfs -count /test/

下图为显示test下的目录个数为1,文件个数为0,文件大小为0:

2、拷贝文件到本地

1.首先使用root用户;

su root

在本地创建一个/test文件夹;

mkdir /test

再使用chown命令变更文件夹的属主为hadoop用户;

chown hadoop /test

验证:根目录下应该看到test文件夹,并且可以看到文件夹归属于hadoop用户。

ll /

2.用户切换回hadoop,使用-get命令下载文件到本地/test目录下

su - hadoop
hdfs dfs -get /tmp/test/words.dat /test/word_copy.dat

验证:test文件夹内应该出现word_copy.dat文件。

ll /test/

图片为查看从HDFS上下载到本地/test目录下的文件是否下载成功:

至此,您已经完成了实验的全部任务,相信您已经掌握了HDFS的基本使用。您还可以查阅官方文档,在EMR上体验Hadoop的其他功能。

5. 注意事项

如实验资源无需保留,请在实验结束后及时销毁,以免产生额外费用。