云小课 | MRS基础入门之HDFS组件介绍
摘要:HDFS是MapReduce服务中的基础文件系统,全称为Hadoop的分布式文件系统(Hadoop Distributed File System),可支持实现大规模数据可靠的分布式读写。
本文分享自华为云社区《【云小课】EI第21课 MRS基础入门之HDFS组件介绍》,原文作者:Hi,EI 。

HDFS针对的使用场景是数据读写具有“一次写,多次读”的特征,而数据“写”操作是顺序写,也就是在文件创建时的写入或者在现有文件之后的添加操作。HDFS保证一个文件在一个时刻只被一个调用者执行写操作,而可以被多个调用者执行读操作。
HDFS结构
HDFS是一个Master/Slave的架构,主要包含主、备NameNode和多个DataNode角色。在Master上运行NameNode,而在每一个Slave上运行DataNode,ZKFC需要和NameNode一起运行。
NameNode和DataNode之间的通信都是建立在TCP/IP的基础之上的。NameNode、DataNode、ZKFC和JournalNode能部署在运行Linux的服务器上。

图1-1中各模块的功能说明如表1-1所示。

HA即为High Availability,用于解决NameNode单点故障问题,该特性通过主备的方式为主NameNode提供一个备用者,一旦主NameNode出现故障,可以迅速切换至备NameNode,从而不间断对外提供服务。
在一个典型HDFS HA场景中,通常由两个NameNode组成,一个处于Active状态,另一个处于Standby状态。
为了能实现Active和Standby两个NameNode的元数据信息同步,需提供一个共享存储系统。本版本提供基于QJM(Quorum Journal Manager)的HA解决方案,如图1-2所示。主备NameNode之间通过一组JournalNode同步元数据信息。
通常配置奇数个(2N+1个)JournalNode,且最少要运行3个JournalNode。这样,一条元数据更新消息只要有N+1个JournalNode写入成功就认为数据写入成功,此时最多容忍N个JournalNode写入失败。比如,3个JournalNode时,最多允许1个JournalNode写入失败,5个JournalNode时,最多允许2个JournalNode写入失败。
由于JournalNode是一个轻量级的守护进程,可以与Hadoop其它服务共用机器。建议将JournalNode部署在控制节点上,以避免数据节点在进行大数据量传输时引起JournalNode写入失败。

HDFS原理
MRS使用HDFS的副本机制来保证数据的可靠性,HDFS中每保存一个文件则自动生成1个备份文件,即共2个副本。HDFS副本数可通过“dfs.replication”参数查询。
- 当MRS集群中Core节点规格选择为非本地盘(hdd)时,若集群中只有一个Core节点,则HDFS默认副本数为1。若集群中Core节点数大于等于2,则HDFS默认副本数为2。
- 当MRS集群中Core节点规格选择为本地盘(hdd)时,若集群中只有一个Core节点,则HDFS默认副本数为1。若集群中有两个Core节点,则HDFS默认副本数为2。若集群中Core节点数大于等于3,则HDFS默认副本数为3。

MRS服务的HDFS组件支持以下部分特性:
- HDFS组件支持纠删码,使得数据冗余减少到50%,且可靠性更高,并引入条带化的块存储结构,最大化的利用现有集群单节点多磁盘的能力,使得数据写入性能在引入编码过程后,仍和原来多副本冗余的性能接近。
- 支持HDFS组件上节点均衡调度和单节点内的磁盘均衡调度,有助于扩容节点或扩容磁盘后的HDFS存储性能提升。
更多关于Hadoop的架构和详细原理介绍,
请参见:http://hadoop.apache.org/。
HDFS文件基础操作
在MRS集群中,您可以通过管理控制台、客户端命令以及API接口等多种方式进行HDFS文件的操作。
MRS集群的创建您
可参考创建集群。
1、通过MRS管理控制台查看HDFS文件信息
在MRS管理控制台,点击集群名称进入到MRS集群详情页面,单击“文件管理”。
在文件管理页面,即可查看HDFS文件列表,并可以执行文件删除、文件夹增删以及与OBS服务数据的导入导入。

2、通过集群客户端查看HDFS文件信息
a. 登录MRS集群的FusionInsight Manager页面(如果没有弹性IP,需提前购买弹性IP),新建一个用户hdfstest,绑定用户组supergroup,绑定角色System_administrator(集群未开启Kerberos认证可跳过)。
b. 下载并安装集群全量客户端,例如客户端安装目录为“/opt/client”,可参考安装客户端。
c. 为客户端节点绑定一个弹性IP,然后使用root用户登录主Master节点,并进入客户端所在目录并认证用户。
cd /opt/client
source bigdata_env
kinit hbasetest(集群未开启Kerberos认证可跳过)
d. 使用hdfs命令进行HDFS文件相关操作。
例如:
- 创建文件夹:
hdfs dfs -mkdir /tmp/testdir
- 查看文件夹:
hdfs dfs -ls /tmp
Found 11 items
drwx------ - hdfs hadoop 0 2021-05-20 11:20 /tmp/.testHDFS
drwxrwxrwx - mapred hadoop 0 2021-05-10 10:33 /tmp/hadoop-yarn
drwxrwxrwx - hive hadoop 0 2021-05-10 10:43 /tmp/hive
drwxrwx--- - hive hive 0 2021-05-18 16:21 /tmp/hive-scratch
drwxrwxrwt - yarn hadoop 0 2021-05-17 11:30 /tmp/logs
drwx------ - hive hadoop 0 2021-05-20 11:20 /tmp/monitor
drwxrwxrwx - spark2x hadoop 0 2021-05-10 10:45 /tmp/spark2x
drwxrwxrwx - spark2x hadoop 0 2021-05-10 10:44 /tmp/sparkhive-scratch
drwxr-xr-x - hetuserver hadoop 0 2021-05-17 11:32 /tmp/state-store-launcher
drwxr-xr-x - hdfstest hadoop 0 2021-05-20 11:20 /tmp/testdir
drwxrwxrwx - hive hadoop 0 2021-05-10 10:43 /tmp/tmp-hive-insert-flag
- 上传本地文件至HDFS:
hdfs dfs -put /tmp/test.txt /tmp/testdir (/tmp/test.txt提前准备)
执行hdfs dfs -ls /tmp/testdir命令检查文件是否存在。
Found 1 items
-rw-r--r-- 3 hdfstest hadoop 49 2021-05-20 11:21 /tmp/testdir/test.txt
- 下载HDFS文件到本地:
hdfs dfs -get /tmp/testdir/test.txt /opt
3、通过API接口访问HDFS文件
HDFS支持使用Java语言进行程序开发,使用API接口访问HDFS文件系统,从而实现大数据业务应用。
具体的API接口内容请参考HDFS Java API。
关于HDFS应用开发及相关样例代码介绍,请参考《HDFS开发指南》。
更多华为云MapReduce(MRS)服务功能介绍及详情,请戳这里了解。
云小课 | MRS基础入门之HDFS组件介绍的更多相关文章
- 云小课|MRS基础原理之MapReduce介绍
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:MapReduce ...
- 云小课|DGC数据开发之基础入门篇
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:欢迎来到DGC数据 ...
- 云小课|MRS数据分析-通过Spark Streaming作业消费Kafka数据
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:Spark Str ...
- 云小课|云小课教您如何选择Redis实例类型
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:购买Redis实例 ...
- 小甲鱼零基础入门学习python--课后作业
[小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...
- 云小课|带你揭开IP地址的神秘身份
摘要:本文带你了解网络云产品和相关的知识内容. 华为云网络服务大家族提供了丰富的云产品,可以满足用户的各种网络互联需求.相应地,华为云帮助中心也贴心的奉上了你想了解的所有网络云产品知识. 可是小课最近 ...
- 云小课 | IPv4枯了,IPv6来了
摘要:本篇主要分享IPv4与IPv6的区别和IPv6的应用场景,助您快速理解华为云IPv6双栈及IPv6 EIP. IPv6的由来 上节课我们讲了公网IP与私网IP,了解了IP地址的一些知识. 我们一 ...
- 云小课 | 搬迁本地数据至OBS,多种方式任你选
摘要:搬迁本地数据至OBS,包括OBS工具方式.CDM方式.DES磁盘方式.DES Teleport方式和云专线方式,每种方式特点不同,本节课我们就一起看看有什么区别. 已有的业务数据可能保存在本地的 ...
- 【Hadoop离线基础总结】HDFS详细介绍
HDFS详细介绍 分布式文件系统设计思路 概述 只有一台机器时的文件查找:hello.txt /export/servers/hello.txt 如果有多台机器时的文件查找:hello.txt nod ...
- 微信小程序之基础入门
微信小程序有几个基础的文件:js(JavaScript逻辑代码),json(页面配置),wxml(类似hthml布局),wxss(css样式) 我们使用app.json文件来对微信小程序进行全局配置, ...
随机推荐
- TOPSIS模型
TOPSIS模型主要是用于评估类模型 一些基本概念: 因为TOPSIS模型是用于评价类的模型,所以会有一些指标的概念,所有指标并非越大越好,例如我们在评价一人的时候会有成绩.和他人发生争吵的次数这两个 ...
- [Python急救站课程]动态爱心绘画
想不想画一个动态爱心来哄女朋友高兴呢? 那么它来啦 import random from math import sin, cos, pi, log from tkinter import * CAN ...
- 昇腾迁移丨4个TensorFlow模型训练案例解读
本文分享自华为云社区<TensorFlow模型训练常见案例>,作者: 昇腾CANN. 基于TensorFlow的Python API开发的训练脚本默认运行在CPU/GPU/TPU上,为了使 ...
- python之字符串format()方法
format()方法就是格式化指定的值,然后再将其插入字符串的占位符内 占位符用大括号{}来定义哈,可以使用命名索引{sws}.编号索引{0}.甚至空的占位符{}来标识占位符. 语法就是 string ...
- python列表删除元素之del,pop()和remove()
del函数 如果知道要删除元素在列表中的位置,可以使用del语句: list_1 = ['one', 'two', 'three'] print(list_1) del list_1[0] print ...
- LOG日志系统
# coding=utf-8 import datetime import logging import os import sys from logging.handlers import Time ...
- SPI扩展点在业务中的使用及原理分析
1 什么是SPI SPI 全称Service Provider Interface.面向接口编程中,我们会根据不同的业务抽象出不同的接口,然后根据不同的业务实现建立不同规则的类,因此一个接口会实现多个 ...
- Ingress & Ingress Controller & API Gateway
Ingress Ingress 内部服务如何暴露给集群外部访问 使用NodePort类型的service 将k8s集群中的服务暴露给集群外部访问,最简单的方式就是使用NodePort,类似在docke ...
- Git 安装与配置教程
一.下载Git 1.官网地址 下载地址 2.下载 二.安装 1.下载完成后,直接点击安装包安装,即可. 2.开始安装,然后下一步 3.可以在此处自定义地址,然后下一步 3.选择组件 此处默认即可,但我 ...
- [NOI online22提高A] 丹钓战
题目描述 有 \(n\) 个二元组 \((a_i, b_i)\),编号为 1 到 n. 有一个初始为空的栈 SS,向其中加入元素 \((a_i, b_i)\) 时,先不断弹出栈顶元素直至栈空或栈顶元素 ...