云小课|mrs基础入门之hdfs组件介绍(代码片段)

华为云开发者社区 华为云开发者社区     2022-12-02     300

关键词:

摘要: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基础原理之hudi介绍(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:Hudi是数据湖的文件组织层,对Parquet格式文件进行管理提供数据湖能力&... 查看详情

云小课|mrs基础原理之carbondata入门(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:CarbonData是一种新型的ApacheHadoop本地文件格式,使用先进的列式存储、... 查看详情

云小课|mrs基础原理之mapreduce介绍(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:MapReduce是Hadoop的核心,是Google提出的一个软件架构,用于大规模数... 查看详情

云小课|mrs基础原理之clickhouse组件介绍

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:在2016年开源的高性能、开源联机分析列式数据库管理系统。其数据压缩比... 查看详情

云小课|mrs基础原理之flink组件介绍(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了... 查看详情

云小课|mrs基础原理之oozie任务调度(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:Oozie是一个基于工作流引擎的开源框架,它能够提供对Hadoop作业的任务... 查看详情

云小课|mrs数据分析-通过sparkstreaming作业消费kafka数据(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:SparkStreaming是一种构建在Spark上的实时计算框架,扩展了Spark处理大规模... 查看详情

云小课|dgc数据开发之基础入门篇

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:欢迎来到DGC数据开发的世界,花十分钟跟着云小课一起学习云数据开发... 查看详情

云小课|华为云kyon之elb混合负载均衡

...下业务无缝融合和资源共享。本文分享自华为云社区《【云小课】基础服务第77课华为云KYON之ELB混合负载均衡》,原文作者:云小萌。华为云KYON(KeepYourOwnNetwork)企业级云网络解决方案,打造极 查看详情

云小课|帮您高效快速上传组件至私有依赖库(代码片段)

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:软件开发平台中的发布服务类似于网盘,可以存储任何软件包和工具。... 查看详情

云小课|教你如何使用rdsforpostgresql插件(代码片段)

本文分享自华为云社区《【云小课】【第42课】RDSforPostgreSQL插件介绍》,作者:数据库的小云妹。本文介绍RDSforPostgreSQL支持的插件及不同插件的创建、删除或使用方法。PostgreSQL插件简介PostgreSQL是开源数据库中经典的大... 查看详情

云小课|cdn第5课cdn入门之—我的网站可以用cdn加速吗?

...,从而达到加速的效果。本文分享自华为云社区《【云小课】CDN第5课CDN入门之—我的网站可以用CDN加速吗?》,作者:阅识风云。网站打开速度慢!图片加载慢!!文件下载慢!!!慢慢慢... 查看详情

云小课|华为云kyon之私网nat网关

...叠组网,助您的业务敏捷上云。本文分享自华为云社区《云小课|华为云KYON之私网NAT网关》,原文作者:云小萌。华为云KYON(KeepYourOwnNetwork)企业级云网络解决方案,打造极简敏捷的上云之路,助力企业极简规划,敏捷迁移,无... 查看详情

hdfs基础入门(代码片段)

大家好,我是脚丫先生(o^^o)废话不多说,我们开始今天的正文。文章目录一、HDFS的介绍1.1HDFS分布式文件系统1.2HDFS设计思路1.3HDFS架构1.4特性二HDFS优缺点2.1优点2.2缺点三、HDFS不适合存储小文件一、HDFS的介绍1.1HDFS分布式文... 查看详情

云小课|华为云kyon之vpc终端节点

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:在华为云KYON(KeepYourOwnNetwork)企业级云网络解决方案中,VPC终... 查看详情

云小课|云小课带你快速掌握云数据迁移cdm

...化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击此处。摘要:欢迎来到云数据迁移CDM的世界,跟着云小课一起学习云数据迁移。本课... 查看详情

mrs离线数据分析:通过flink作业处理obs数据(代码片段)

...据计算处理的存算分离模式。本文分享自华为云社区《【云小课】EI第47课MRS离线数据分析-通过Flink作业处理OBS数据》,作者:HelloEI。MRS支持在大数据存储容量大、计算资源需要弹性扩展的场景下 查看详情

云小课|使用sql加密函数实现数据列的加解密(代码片段)

摘要:数据加密作为有效防止未授权访问和防护数据泄露的技术,在各种信息系统中广泛使用。作为信息系统的核心,GaussDB(DWS)数仓也提供数据加密功能,包括透明加密和使用SQL函数加密。本文分享自华为云社区... 查看详情