HDFS学习总结----面试必须掌握

为什么要用HDFS

  • 一台服务器存不下数据,需要多台服务器。多台服务器上的数据需要一个系统来组织和管理。

tip:HDFS、NTFS是不同的文件管理系统

HDFS的定义

  • HDFS是一个分布式的文件系统,通过目录树来定位文件

HDS的使用场景

  • 一次写入,多次读出,不支持文件的修改,并且数据读取慢
  • 适合做数据分析的存储

优点

  • 高容错

    自动保存多个副本,当节点数足够的时候,会自动保持副本份数。如10个节点,3个副本,一台挂掉,那么这台节点上的数据会被转存到其他节点,保证副本份数。

  • 适合做大数据,大文件规模,GB,TB,PB

缺点

  • 不适合低延时的数据访问,毫秒级的响应不适合
  • 无法高效的对大量小文件存储
    1. 每一个小文件,在NameNode中会消耗150字节的内存,小文件多,会占用大量NameNode 的内存存储
    2. 小文件的存储寻址的时间超过了读取时间,违背设计原则
  • 不支持并发写入数据,即两个客户端无法同时写入相同的文件,不同文件可以并发写入
  • 不支持随机写操作,即无法修改文件

组成架构

NameNode

  • 管理HDFS名称空间
  • 管理数据块的映射信息
  • 处理客户端的读写请求

DataNode

  • 存储实际的数据块
  • 执行数据块的读写请求

客户端

  • 文件切块:上传文件的时候,客户端将文件切分成Block,然后上传
  • 与NameNode交互,获取文件位置信息
  • 与DataNode交互,读取或写入数据
  • 提供命令管理、访问HDFS

2ndNameNode

  • 辅助NameNode工作,合并fsimage和edits
  • 紧急情况下,可辅助恢复NameNode

块大小设置

设置方法

  • 默认大小Hadoop 2.x是128MB(),1.x是64MB。
  • hdfs-site中,dfs.blocksize设置(字节)

设置原则

  • 块的寻址约10ms,1%,1s,磁盘速率100MB/s,所以一个块大约128MB,
  • 当磁盘速率较高的时候,可以设置为256MB。
  • HDFS块大小取决于磁盘传输速率。

为什么块的大小不能太大或太小?

  • 太小:块数太多,增加块的寻址时间同时增加内存消耗
  • 太大:并行度减小

HDFS的shell操作

hadoop fs和hdfs dfs的关系,后者是前者的实现类。

# 查看HDFS节点状态
hdfs dfsadmin -report

# 帮助命令
hadoop  fs -help rm

# 地柜查看目录
hadoop fs -ls -R /

# 创建多及目录
hadoop fs -mkdir -p /sanguo/shuguo

# 剪切本地文件到HDFS,本地文件会消失
hadoop fs -moveFromLocal 本地文件   目标地址

# 复制本地文件到HDFS
hadoop fs -copyFromLocal 本地文件 目标地址

# 复制HDFS文件到本地
hadoop fs -copyToLocal 目标文件 本地地址

# 追加
hadoop fs -appendToFile 源文件  目标文件

# 合并一个目录下的多个文件,下载到本地,如一个目录下的多个log文件合并,
hadoop fs -getmerge /user/*.log  ./my_log.txt

# 查看文件尾部,查看日志尾部,一般最新的日志都在最后面
hadoop
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值