HDFS:分布式文件系统

一句话总结

一个文件先被拆分为多个Block块(会有Block-ID:方便读取数据),以及每个Block是有几个副本的形式存储

1个文件会被拆分成多个Block

blocksize:128M(Hadoop2.0以后默认的块大小,可以自定义配置)

130M ==> 2个Block: 128M 和 2M

HDFS设计目标

  • 巨大的分布式文件系统
  • 满足大数据场景基本数据存储的要求
  • 廉价的机器上
  • 当你的存储空间不够,你可以水平横向扩展机器方式提高

HDFS架构

NameNode + N个DataNode

典型的主从架构,即:

1 Master(NameNode/NN) 带 N个Slaves(DataNode/DN)

建议:NN和DN是部署在不同的节点上

PS:

常见的主从架构还有:HDFS/YARN/HBase

主从架构一个难题就是:如何保证HA的问题,很多时候会使用Zookeeper来配置使用

NameNode/NN:主节点Master

1)负责客户端请求的响应

2)负责元数据(文件的名称、副本系数、Block存放的DN)的管理

DataNode/DN:从节点Slaves

1)存储用户的文件对应的数据块(Block)

2)要定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况

HDFS副本机制

  • replication factor:副本系数、副本因子

  • 一个大的文件会被拆分为许多块,最终以多副本的方式存储在多个节点上

  • 一个文件,除了最后一个,其余所有块的大小都是一致的

问题:那么如何为每个Block选择存储在哪些节点上呢?

Rack代表的是机架:一般三份副本分别是这样存储的

第一份副本:存储在当前提交存储的机架中当前节点上

第二份副本:存储在非当前机架上的某一节点上

第三份副本:和第二副本统一机架的不同节点之上

建议:生产只能够,起码划分两个及其以上的机架

HDFS Shell

Usage: hdfs dfs [COMMAND [COMMAND_OPTIONS]]

hadoop fs -ls / 等价 hdfs dfs -ls /

[root@hadoop000 data]# ls
hadoop-tmp hello.txt
上传:
[root@hadoop000 data]# hadoop fs -put hello.txt /
下载:
[root@hadoop000 data]# hadoop fs -get /test/a/b/h.txt
查看内容:
[root@hadoop000 data]# hadoop fs -text /hello.txt
[root@hadoop000 data]# hadoop fs -cat /hello.txt
建立目录;
[root@hadoop000 data]# hadoop fs -mkdir /test
创建递归的目录
[root@hadoop000 data]# hadoop fs -mkdir -p /test/a/b
递归展示目录文件:
[root@hadoop000 data]# hadoop fs -ls -R /
本地拷贝到hdfs:
[root@hadoop000 data]# hadoop fs -copyFromLocal hello.txt /test/a/b/h.txt
删除文件:
[root@hadoop000 data]# hadoop fs -rm /hello.txt
递归删除文件夹:
[root@hadoop000 data]# hadoop fs -rm -R /test

HSFS的读写流程,工作原理(面试)

漫画图解

https://blog.csdn.net/eric_sunah/article/details/41546863

Client:客户端,通过HDFS Shell或Java API发起读写请求

1个NameNode:全局把控

N 个DataNode: 数据存储

写数据流程:

1.客户端把文件拆分为多个Block

2.NameNode:提供刚才拆分出来的Block块的具体datanode存储位置

3.DataNode:存储Block块的数据,把3个副本数据写完

读数据流程:

1.用户提供文件名就可以给客户端

2.客户端发起请求给NameNode

3.NameNode就会告诉客户端具体的存储位置和块

4.发起最近距离节点请求给DataNode下载数据

HDFS的优缺点

优点:

数据冗余,硬件容错

一次写入,多次读取数据

适合存储大文件

构建在廉价机器上

缺点:

延时性高

不适合小文件存储

Hadoop核心组件之HDFS的更多相关文章

  1. hadoop核心组件概述及hadoop集群的搭建

    什么是hadoop? Hadoop 是 Apache 旗下的一个用 java 语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台.允许使用简单的编程模型在大量计算机集群上对大型数据集进行分 ...

  2. 对Hadoop分布式文件系统HDFS的操作实践

    原文地址:https://dblab.xmu.edu.cn/blog/290-2/ Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)是Hadoop核 ...

  3. Hadoop学习笔记—HDFS

    目录 搭建安装 三个核心组件 安装 配置环境变量 配置各上述三组件守护进程的相关属性 启停 监控和性能 Hadoop Rack Awareness yarn的NodeManagers监控 命令 hdf ...

  4. Hadoop官方文档翻译——HDFS Architecture 2.7.3

    HDFS Architecture HDFS Architecture(HDFS 架构) Introduction(简介) Assumptions and Goals(假设和目标) Hardware ...

  5. hadoop 2.5 hdfs namenode –format 出错Usage: java NameNode [-backup] |

    在 cd  /home/hadoop/hadoop-2.5.2/bin 下 执行的./hdfs namenode -format 报错[hadoop@node1 bin]$ ./hdfs nameno ...

  6. Hadoop 分布式文件系统 - HDFS

    当数据集超过一个单独的物理计算机的存储能力时,便有必要将它分不到多个独立的计算机上.管理着跨计算机网络存储的文件系统称为分布式文件系统.Hadoop 的分布式文件系统称为 HDFS,它 是为 以流式数 ...

  7. Hadoop 2.x HDFS新特性

    Hadoop 2.x HDFS新特性 1.HDFS联邦    2. HDFS HA(要用到zookeeper等,留在后面再讲)    3.HDFS快照 回顾: HDFS两层模型     Namespa ...

  8. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令(转)

    hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...

  9. 何时使用hadoop fs、hadoop dfs与hdfs dfs命令

    hadoop fs:使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs:只能操作HDFS文件系统相关(包括与Local FS间的操作),前者已经Deprecated,一般使用后 ...

随机推荐

  1. ConcurrentLinkedQueue 源码解读

    一.介绍 ConcurrentLinkedQueue 是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部:当我们获取一个元素时,它 ...

  2. 一文搞懂transform: skew

    如何理解斜切skew,先看一个demo.在下面的demo中,有4个正方形,分别是 红色:不做skew变换, 绿色:x方向变换, 蓝色:y方向变换, 黑色:两个方向都变换, 拖动下面的滑块可以查看改变s ...

  3. C# - AutoMapper之不同类型的转换

    一.Dto & Model约定 class TestDto { public string Name { get; set; } public int Age { get; set; } pu ...

  4. spring-cloud-kubernetes官方demo运行实战

    关于spring-cloud-kubernetes spring-cloud-kubernetes是springcloud官方推出的开源项目,用于将Spring Cloud和Spring Boot应用 ...

  5. Delphi - Indy TIdMessage和TIdSMTP实现邮件的发送

    idMessage / idSMTP 首先对idMessage类的各种属性进行赋值(邮件的基本信息,如收件人.邮件主题.邮件正文等),其次通过idSMTP连接邮箱服务器,最后通过idSMTP的Send ...

  6. 通过代码审计找出网站中的XSS漏洞实战(三)

    一.背景 笔者此前录制了一套XSS的视频教程,在漏洞案例一节中讲解手工挖掘.工具挖掘.代码审计三部分内容,准备将内容用文章的形式再次写一此,前两篇已经写完,内容有一些关联性,其中手工XSS挖掘篇地址为 ...

  7. 微擎 人人商城 增加营收比统计(即每个订单支持多少,收入多少,总得统计)多表联合查询, sum统计一对多总和 联合 group by 进行查询

    在公司要求增加一项统计,即营收比, 每个订单收入多少 支出多少,盈利多少,盈利比都详细记录下来. 在做完针对单个订单的营收比之后(支出储存在 ewei_shop_order_external_pay ...

  8. ccpc网赛 hdu6705 path(队列模拟 贪心

    http://acm.hdu.edu.cn/showproblem.php?pid=6705 这是比赛前8题过的人数第二少的题,于是就来补了,但感觉并不难啊..(怕不是签到难度 题意:给个图,给几条路 ...

  9. 单细胞转录组测序技术(scRNA-seq)及细胞分离技术分类汇总

    单细胞测序流程(http://learn.gencore.bio.nyu.edu) 在过去的十多年里,高通量测序技术被广泛应用于生物和医学的各种领域,极大促进了相关的研究和应用.其中转录组测序(RNA ...

  10. SSL证书部署相关知识总结

    证书生成工具,手动:Keymanager工具https://keymanager.org/ 证书服务商集成:可自由获得TrustAsia.Let’s Encrypt颁发的 免费证书. Keymanag ...