Hadoop学习笔记一:HDFS

一、HDFS是什么?

  • HDFS是Hadoop Distributed File System的简称;源自于Google的GFS论文,是其开源实现。
  • 基于流数据模式访问和处理超大文件的需求而开发的;
  • 适合应用于大规模数据集上;

二、HDFS优缺点

  • 优点:
  1. 处理超大文件,能用来存储管理Pb级数据。
  2. 流式数据访问数据。
  3. 运行于廉价的集群上
  • 缺点
  1. 不适合处理低延迟数据访问
  2. 无法高效存储大量的小文件
  3. 不支持多用户写入和任意文件修改

三、HDFS架构

主从结构

  • NameNode(主节点,一般只有一个;HA下会有多个),包含命名空间镜像文件(namespace image,存储文件系统的命名空间,包括文件映射、文件属性等)和操作日志文件(edit log,记录hdfs元数据的变化),其主要作用:
  1. 接收用户操作请求;
  2. 维护文件系统的目录结构;
  3. 管理文件与block之间关系,block与DataNode之间关系;
  • SecondaryNameNode(NameNode 辅助节点,为解决NameNode单点故障),周期性的合并NameNode的EditLog。
  1. 工作原理如下图:
  2. 参数设置:core-site.xml中fs.checkpoint.period:合并的时间间隔,默认1小时合并一次;fs.checkpoint.size:文件大小,默认64Mb,当editLog文件大小超过64M,就会触发EditsLog与FsImage文件的合并。
  • DataNode(从节点,会有很多个),其主要作用
  1. 存储文件;
  2. 文件被分成固定大小的block(2.x默认是128M)存储在磁盘上;
  3. 为保证数据安全,文件会有多个副本(2.x版本默认为3副本)。
  4. 通过向NameNode发送心跳保持联系(3秒一次)。

四、HDFS核心设计

  • NameNode的create、addBlock、complete动作
  • 数据复制及数据副本存放策略
  • 并发写入时租约设计
  • 安全模式
  • 负载均衡
  • 心跳机制
  • 机架感知

五、HDFS读写流程

  • 写流程
  • 读流程

六、HDFS常用命令

  • hadoop fs -ls <path> :查看该目录下所有文件
  • hadoop fs -lsr <path>:递归查看该目录及子目录下所有文件
  • hadoop fs -mkdir <path>:创建目录
  • hadoop fs -put <src><des> :从本地上传文件到hdfs上
  • hadoop fs -copyFromLocal <src><des> :同上,从本地上传文件到hdfs上
  • hadoop fs -get <src> <des> :从hdfs上下载文件到本地
  • hadoop fs -copyToLocal <src> <des>:同上,从hdfs上下载文件到本地
  • hadoop fs -cat <src>:查看文件内容
  • hadoop fs -text <src>:同上,查看文件内容
  • hadoop fs -rm(r) :删除文件(夹)
  • hadoop fs -chmod :改变文件访问权限

七、HDFS JAVA API

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值