大数据系列——什么是hdfs?hdfs用来干什么的?

news2025/1/16 20:13:53

目录

一、什么是HDFS

二、hdfs用来干什么的

三、hdfs适用场景

四、hdfs不适合的场景

五、hdfs 架构

基本概念

 六、HDFS基础命令

七、hdfs业务中应用


一、什么是HDFS

  • HDFS全称是Hadoop Distributed File System
  • 是一种分布式文件系统(HDFS使用多台计算机存储文件,对外提供统一操作文件的接口)
  • Hodoop使用HDFS(Hadoop Distributed File System)作为存储系统。

二、hdfs用来干什么的

用于大规模数据的分布式读写,特别是读多写少的场景

三、hdfs适用场景

  • 具备高度容错特性,支持高吞吐量数据访问,可以在处理海量数据(TB或PB级别以上)的同时最大可能的降低成本。
  • 读多写少的场景

a.存储非常大的文件并且对延时没有要求 

b.一次写入,多次读取。数据集经常从数据源生成或者拷贝,然后做很多分析工作。

四、hdfs不适合的场景

 a.对延时有要求;

 b.多方读写

五、hdfs 架构

  • HDFS是一个主/从体系结构(经典的Master和Slave架构)。 HDFS由四部分组成,HDFS Client,NameNode,DataNode和Secondary NameNode。
  • 每一个HDFS集群包括一个NameNode和多个DataNode。

Client:客户端 

a.文件切分,文件上传HDFS的时候,将文件切分成一个一个的数据块(Block)进行存储 。

b.与NameNode交互,获取文件的位置 。

c.与DataNode交互,读取或写入数据 。 存储实际的数据块 执行数据库的读/写操作

基本概念

名称描述
NameNode用于管理文件系统的命名空间、维护文件系统的目录结构树以及元数据信息,记录写入的每个数据块(Block)与其归属文件的对应关系。

此信息以命名空间镜像(FSImage)和编辑日志(EditsLog)两种形式持久化在本地磁盘中。

DataNodeDataNode是文件的实际存放位置。

DataNode会根据NameNode或Client的指令来存储或者提供数据块,并且定期的向NameNode汇报该DataNode存储的数据块信息。

Client通过Client来访问文件系统,然后由Client与NameNode和DataNode进行通信。Client对外作为文件系统的接口,类似于POSIX。
BlocksHDFS将文件拆分成128 MB大小的数据块进行存储,这些Block可能存储在不同的节点上。HDFS可以存储更大的单个文件,甚至超过任何一个磁盘所能容纳的大小。一个Block默认存储3个副本(EMR Core节点如果使用云盘,则为2副本),以Block为粒度将副本存储在多个节点上。此方式不仅提高了数据的安全性,而且对于分布式作业可以更好地利用本地的数据进行计算,减少网络传输。
Secondary NameNode对于非高可用集群,默认会启动一个Secondary NameNode进程。Secondary NameNode的作用是消费EditsLog,定期地合并FsImage和EditsLog,生成新的FsImage文件,降低了NameNode的压力。
高可用对于高可用集群,默认会启动两个NameNode,一个是Active NameNode,另一个是Standby NameNode,两个NameNode承担不同角色。

Active NameNode负责处理DataNode和Client的请求,Standby NameNode跟Active NameNode一样拥有最新的元数据信息,随时准备在Active NameNode出现异常时接管其服务。如果Active NameNode异常,Standby NameNode会感知到并切换成Active NameNode的角色处理DataNode和Client请求。

 六、HDFS基础命令

(hdfs 命令最常用的就是: hdfs dfs -[linux的命令])

1、 ls: 列出根目录下文件列表 hdfs dfs -ls / 

使用-ls -R: 整个目录下递归运行ls ,如 hdfs dfs -lsr / 


2、 mkdir: hdfs dfs mkdir <paths>
    hdfs dfs -mkdir tmp   # 在hdfs文件系统中/user/test 目录下创建tmp目录
    hdfs dfs -mkdir /tmp  # 在hdfs文件系统的根目录下创建一个tmp目录

3、 hdfs dfs -rm -r -f
    hdfs dfs -rm -r -f /test      # 删除根目录下的test目录
    hdfs dfs -rmdir /test         # 删除目录:只能删除空目录

4、put :将本地文件/文件夹拷贝到HDFS内. 
例如 将a.txt上传到根目录下, hdfs dfs -put a.txt /

5、get :将HDFS中的文件拷贝到本地. 
例如 将HDFS中根目录下a.txt文件拷贝到本地当前目录  hdfs dfs -get /a.txt ./

6、mv:将HDFS的文件移动到目标路径(HDFS内部的文件移动). 
例如 hdfs dfs -mv /a.txt /test

7、rm:删除文件或目录
8、cp:将文件拷贝到目标路径
9、cat :显示文件内容. 
例如 hdfs dfs -cat /test/a.txt; hdfs dfs -cat ./tmp/exception.log

10、hdfs dfs -text. # 查看文件内容,支持压缩文件的查看而不会乱码 
 hdfs dfs -text ./tmp/exception.log

11、# 从根目录下精确搜索exception.log文件
hdfs dfs -find / -name exception.log

12、hdfs dfs -count  /user/test # 对/user/test 目录进行统计

13、chmod:改变文件权限
14、chown :改变文件所属用户和用户组 

15、appendToFile :合并本地文件拷贝至HDFS
hdfs dfs -appendToFile ./exp.log ./tmp/exception.log

七、hdfs业务中应用

实际业务中,会全量输入写入hdfs文件供第三方业务线读取,或者同步到hive表供后续业务继续加工。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117231.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易基因|深度综述:癌症中RNA修饰机制的遗传和表观遗传失调(m6A+m1A+m5C+ψ)

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 2022年11月12日&#xff0c;《Trends Genet》杂志发表了题为“Genetic and epigenetic defects of the RNA modification machinery in cancer”的综述文章&#xff0c;讨论了m6A、m5C、…

CSS滤镜 filter 网站灰色设置

-webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: grayscale(100%); filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale1);例如&#xff1a; CSS滤镜 filter 详情链接 blu…

【K3s】第6篇 详解yaml文件,pod端口供外部访问

目录 1、yaml文件详解 2、pod 容器对外透露端口号 1、yaml文件详解 apiVersion: v1 #创建一个新的命名空间 kind: Namespace metadata:name: test --- apiVersion: apps/v1 #资源版本&#xff0c;可使用 kubectl api-versions命令查看有哪些&#xff0c;只有指定具体的资源…

嵌入式:ARM常用开发编译软件介绍

文章目录编译器介绍1、ADS1.22、ARM RealView Developer Suite (RVDS)3、IAR EWARM4、KEIL ARM-MDKARM5、WIN ARM-GCC ARM编译器介绍 1、ADS1.2 ADS&#xff08;ARM Developer Suite&#xff09;&#xff0c;是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。 他…

结合今年的考试难度浅析浙大MBA/MPA/MEM三项目的分数线趋势…

最近一些天&#xff0c;不少考生都在关注今年的分数线问题&#xff0c;按照往年惯例&#xff0c;这个问题的答案要等到3月10日前后才会出来&#xff0c;包括国家线和浙大自划线两个复试的标尺。但从历史数据和经验方面倒也可以提前针对这个问题做一些趋势分析&#xff0c;特别是…

client-go源码学习(一):client-go源码结构、Client客户端对象

本文基于Kubernetes v1.22.4版本进行源码学习&#xff0c;对应的client-go版本为v0.22.4 1、client-go源码结构 client-go的代码库已经集成到Kubernetes源码中了&#xff0c;源码结构示例如下&#xff1a; $ tree vendor/k8s.io/client-go -L 1 vendor/k8s.io/client-go ├─…

《业务安全大讲堂》——2022全年大回顾!

数字化的深入普及&#xff0c;让企业的业务愈加开放互联。企业的核心业务、关键数据、用户信息、基础设施、运营过程等均处于边界模糊且日益开放的环境中&#xff0c;在电商、支付、信贷、账户、交互、交易等各种形态的业务场景中&#xff0c;存在着形式多样的欺诈行为。而业务…

企业数字化转型迫切,团队协同工具何以成为“杀手锏”?

不久前&#xff0c;2022世界互联网大会乌镇峰会开幕&#xff0c;360创始人周鸿祎以“构建SaaS生态&#xff0c;助力数字化共同富裕”为主题发表分论坛演讲&#xff0c;并宣布360集团正式上线SaaS商店&#xff0c;为中小微企业和实体产业提供一站式数字化转型服务&#xff0c;填…

elasticsearch之metric聚合

文章目录1、背景2、准备数据2.1 准备mapping2.2 准备数据3、metric聚合3.1 max 平均值3.1.1 dsl3.1.2 java代码3.2 min最小值3.2.1 dsl3.2.2 java3.3 min最小值3.3.1 dsl3.3.2 java3.4 min最小值3.4.1 dsl3.4.2 java3.5 count(*)3.5.1 dsl3.5.2 java3.6 count(distinct)3.6.1 d…

一款非常萌的桌面工具 --- Bongo Cat Mver 附使用教程

最近看B站的时候发现了一个很好玩的桌面工具&#xff0c;Bongo Cat Mver 通过多方查找资源&#xff0c;终于找到了&#xff0c;并且已经下载使用 O(∩_∩)O 不知道这只小猫是不是特别好看呢&#xff1f;放在你的桌面上 Bongo Cat Mver简介 Bongo Cat Mver 是一款画风非常萌的…

[论文解析] NeRF-Art: Text-Driven Neural Radiance Fields Stylization

文章目录OverviewWhat problem is addressed in the paper?Is it a new problem? If so, why does it matter? If not, why does it still matter?What is the key to the solution?What is the main contribution?What can we learn from ablation studies&#xff1f;P…

vue3 路由 vite方式新建项目【适合新手】

一 配环境、并初始化项目 安装nodejs https://blog.csdn.net/lh155136/article/details/128444850 参考官网https://cn.vuejs.org/guide/quick-start.html#creating-a-vue-application 找个空目录cmd打开黑窗口 初始化项目 npm init vuelatest输入y 输入项目名字&#xff…

大聪明教你学Java | 带你了解 Binlog 实现 MySQL 主从同步的原理及实现方式

前言 &#x1f34a;作者简介&#xff1a; 不肯过江东丶&#xff0c;一个来自二线城市的程序员&#xff0c;致力于用“猥琐”办法解决繁琐问题&#xff0c;让复杂的问题变得通俗易懂。 &#x1f34a;支持作者&#xff1a; 点赞&#x1f44d;、关注&#x1f496;、留言&#x1f4…

MYSQL性能分析

MYSQL性能分析 1.慢SQL查询 开启慢sql查询机制 set global slow_query_logon set global long_query_time2; set global log_queries_not_using_indexesonslow_query_log&#xff1a;慢查询log日志记录 on(开启)/off(关闭)&#xff1b; long_query_time:SQL语句执行时间超过2…

Django学习 Day8

1.查询语句 主要目的是学习在ORM中使用条件查询 Filter&#xff08;条件&#xff09; 语法&#xff1a; MyModel.objects.filter(属性1值1&#xff0c;属性2值2) 作用&#xff1a;返回包含此条件的全部数据集 返回值&#xff1a;QuerySet容器对象&#xff0c;内部存放MyModel实…

元旦礼!2022年国家高新技术企业

​近日&#xff0c;2022年度第一批高新技术企业证书已正式发放。根据《高新技术企业认定管理办法》&#xff08;国科发火〔2016〕32号&#xff09;和《高新技术企业认定管理工作指引》&#xff08;国科发火〔2016〕195号&#xff09;有关规定&#xff0c;北京市高新技术企业认定…

项目实战之旅游网(七)后台分类管理 后台产品管理(上)

目录 一.后台分类管理 二.后台产品管理&#xff08;上&#xff09; 1.产品列表 2.新增产品 3.富文本编辑器 一.后台分类管理 mapper层&#xff1a; public interface CategoryMapper extends BaseMapper<Category> { } service层&#xff1a; Service Transactio…

什么是机器视觉计算机?

机器视觉是用于通过分析视频和图像帮助计算机做出决策的硬件和软件的集成。在制造业中&#xff0c;机器视觉通常用于生产线上&#xff0c;以便在产品的每个阶段进行自动检查。机器视觉还扩展了其在高端监控和安全、生物医学成像甚至视觉引导机器人、车辆中的应用。随着视觉技术…

“虚拟试衣间”项目可行性分析报告

目录 “虚拟试衣间”项目可行性分析报告 1 引言 1.1 标识 1.2 背景 1.3 项目概述 1.3.1 软件的基本描述 1.3.2 项目开发基本描述 1.3.3 投资方 1.4 文档概述 3 可行性分析的前提 3.1 项目的要求 一、功能 二、性能 三、输出 四、输入 五、基本数据流程和处理流程 六、安全与保…

如何从0开始画出一张优秀的架构图

你好&#xff0c;我是悟空。 最近在画项目的技术架构图&#xff0c;找到了一些不错的模板&#xff0c;分享给大家~ 画图工具&#xff1a;ProcessOn。 画图技巧&#xff1a;如何从0开始画出一张优秀的架构图 文末再送 5 本书给大家&#xff01; 业务架构图 定义&#xff1…