Hadoop之HDFS的简单介绍及常用命令

【目录】

1. HDFS介绍
2. HDFS优点
3. HDFS缺点
4. HDFS架构图
5. HDFS数据存储单元
6. HDFS结构
7. Block的副本放置策略
8. Hadoop之HDFS文件读写过程
9. 安全模式
10. HDFS常用命令

1、HDFS(HadoopDistributedFileSystem)是分布式存储系统,提供了高可靠性、高扩展性和高吞吐率的数据存储服务。

2、HDFS优点

– 高容错性
    • 数据自动保存多个副本 
    • 副本丢失后,自动恢复
– 适合批处理
    • 移动计算而非数据
    • 数据位置暴露给计算框架
– 适合大数据处理
    • GB、TB、甚至PB级数据 
    • 百万规模以上的文件数量 
    • 10K+节点
– 可构建在廉价机器上
    • 通过多副本提高可靠性 
    • 提供了容错和恢复机制

3、HDFS缺点

– 低延迟数据访问
    • 比如毫秒级
    • 低延迟与高吞吐率
– 小文件存取
    • 占用NameNode大量内存 
    • 寻道时间超过读取时间
– 并发写入、文件随机修改
    • 一个文件只能有一个写者
    • 仅支持append

4、HDFS架构图

这里写图片描述

5、HDFS 数据存储单元

– 文件被切分成固定大小的数据块
    • 默认数据块大小为64MB,可配置
    • 若文件大小不到64MB,则单独存成一个block
– 一个文件存储方式
    • 按大小被切分成若干个block,存储到不同节点上 
    • 默认情况下每个block都有三个副本
– Block大小和副本数通过Client端上传文件时设置,文件上传成功后副本数可以变更,Block Size不可变更。

这里写图片描述

6、HDFS的结构

HDFS也是按照Master和Slave的结构。分NameNode、SecondaryNameNode、DataNode这几个角色:

NameNode(NN)

– NameNode主要功能:接受客户端的读写服务
– NameNode保存metadate信息包括 
    • 文件owership和permissions
    • 文件包含哪些块
    • Block保存在哪个DataNode(由DataNode启动时上报)
– NameNode的metadate信息在启动后会加载到内存 
    • metadata存储到磁盘文件名为”fsimage”
    • Block的位置信息不会保存到fsimage 
    • edits记录对metadata的操作日志

SecondaryNameNode(SNN)

– 它不是NN的备份(但可以做备份),它的主要工作是帮助NN合并edits
log,减少NN启动时间。 
– SNN执行合并时机
    • 根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒
    • 根据配置文件设置editslog大小fs.checkpoint.size规定edits文件的最大值默认是64MB

DataNode(DN)

– 存储数据(Block)
– 启动DN线程的时候会向NN汇报block信息
– 通过向NN发送心跳保持与其联系(3秒一次),如果NN10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN

7、Block的副本放置策略

– 第一个副本:放置在上传文件的DN; 如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点。
– 第二个副本:放置在于第一个副本不同的机架的节点上。
– 第三个副本:与第二个副本相同机架的节点。
– 更多副本:随机节点

8、 Hadoop之HDFS文件读写过程
参考:http://blog.csdn.net/gaijianwei/article/details/45918337

9、安全模式

– namenode启动的时候,首先将映像文件(fsimage)载入内存,并执行编辑日志(edits)中的各项操作。
– 一旦在内存中成功建立文件系统元数据的映射,则创建一个新的fsimage文件(这个操作不需要SecondaryNameNode)和一个空的编辑日志。
– 此刻namenode运行在安全模式。即namenode的文件系统对于客服端来说是只读的。(显示目录,显示文件内容等。写、删除、重命名都会失败)。
– 在此阶段Namenode收集各个datanode的报告,当数据块达到最小副本数以上时,会被认为是“安全”的,在一定比例(可设置)的数据块被确定为“安全”后,再过若干时间,安 全模式结束
– 当检测到副本数不足的数据块时,该块会被复制直到达到最小副本数,系统中数据块的位 置并不是由namenode维护的,而是以块列表形式存储在datanode中

10、HDFS常用命令

1)列出HDFS下的文件

hadoop fs -ls

2)上传本地文件到HDFS

hadoop fs -put dir1 dir2

说明:dir1,本地文件系统文件目录;dir2,HDFS文件系统文件目录

3)下载HDFS文件到本地

hadoop fs -get dir1 dir2

说明:dir1,本地文件系统文件目录;dir2,HDFS文件系统文件目录

4)创建HDFS文件

hadoop fs -mkdir dir

5)删除HDFS下的文档

hadoop fs -rmr dir

6)查看HDFS下某个文件的内容

hadoop fs -cat 文件路径

7)查阅帮助

获取所用Hadoop版本关于HDFS完整的命令列表,可执行

hadoop fs

或者

使用help来显示某个命令的用法与简短描述。

例如 要了解ls,可执行

hadoop fs -help ls

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值