博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop核心组件之HDFS
阅读量:5750 次
发布时间:2019-06-18

本文共 1973 字,大约阅读时间需要 6 分钟。

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]# lshadoop-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的优缺点

优点:

数据冗余,硬件容错
一次写入,多次读取数据
适合存储大文件
构建在廉价机器上

缺点:

延时性高
不适合小文件存储

转载于:https://www.cnblogs.com/liuge36/p/9882715.html

你可能感兴趣的文章
负载均衡之Haproxy配置详解(及httpd配置)
查看>>
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
查找恶意的TOR中继节点
查看>>
MAVEN 属性定义与使用
查看>>
shell高级视频答学生while循环问题
查看>>
使用@media实现IE hack的方法
查看>>
《11招玩转网络安全》之第一招:Docker For Docker
查看>>
hive_0.11中文用户手册
查看>>
hiveserver2修改线程数
查看>>
XML教程
查看>>
oracle体系结构
查看>>
Microsoft Exchange Server 2010与Office 365混合部署升级到Exchange Server 2016混合部署汇总...
查看>>
Proxy服务器配置_Squid
查看>>
开启“无线网络”,提示:请启动windows零配置wzc服务
查看>>
【SDN】Openflow协议中对LLDP算法的理解--如何判断非OF区域的存在
查看>>
纯DIV+CSS简单实现Tab选项卡左右切换效果
查看>>
栈(一)
查看>>
ios 自定义delegate(一)
查看>>
创建美国地区的appleId
查看>>
例题10-2 UVa12169 Disgruntled Judge(拓展欧几里德)
查看>>