HDFS简介

HDFS(Hadoop Distributed Filesystem)

  1. HDFS是为高数据吞吐量应用优化的,则会以提高实践延迟为代价。
  2. 由于namenode内存容量限制,HDFS不适合存储大量的小文件。
  3. HDFS只支持单个写入者,不支持多个写入者,不支持在文件任意位置修改

HDFS的设计

设计理念:一次写入,多次读取。

HDFS上的文件是被划分为块,块作为独立的存储单元(默认128M),且HDFS中小于一个块大小的文件不会占据整个块。
好处:

  • 一个文件的大小可以大于网络中任意一个磁盘的容量
  • 大大简化存储系统的设计:简化存储管理
  • 块适合用于数据备份而提高数据容错能力和提高可用性

namenode与datanode

HDFS集群有两类结点:一个管理节点namenode和多个工作结点datanode。

namenode

  • namenode管理文件系统的命名空间,它维护着文件系统树及整棵树内所有的文件和目录。这些信息以命名空间镜像文件和编辑日志文件两个文件形式永久保存在本地磁盘上。
  • namenode在内存中保存文件系统中每个文件和每个数据块的引用关系。
  • namenode负责管理文件系统的名字空间以及客户端对文件的访问
  • namenode全权管理数据块的复制,它周期性得从集群中每个Datanode接收心跳信号(存活的象征)和块状态报告(节点上所有数据块的列表)。
  • 跟文件内容相关的数据流不经过namenode,只会询问它跟哪个datanode联系
  • 目录作为元数据保存在namenode中

datanode

  • datanode是文件系统的工作结点。它们根据需要存储并检索数据块,并定期向namenode发送它们所存储的块的列表。
  • datanode启动后向namenode注册,通过后,定期向NameNode上报信息
  • 心跳是每秒3次,心跳返回结果会带有复制数据,删除数据等命令。如果超过10分钟没有收到某个datanode的心跳,则认为该节点不可用

数据损坏的处理

  1. 当datanode读取block时,会计算checksum
  2. 如果计算的checksum与block创建时值不一样,说明block已坏,Client读取其他datanode上的block
  3. namenode标记该块已经损坏,然后复制block达到预期设置的文件备份数
  4. datanode在其文件创建三周后验证其checksum

启动

NameNode初始化时,创建fsimage文件和edits文件。

启动

  • namenode加载fsimage和edits文件(到内存),并生成新的fsimage和一个空的edits
  • datanode向namenode注册,发送Block Report(安全模式,只读状态)
  • namenode开始监听RPC(远程过程通过协议)和HTTP请求

Secondary NameNode运行时定期合并edits文件至fsimage,避免意外宕机丢失edits

命令行接口

hadoop fs -help
hadoop fs -copyFromLocal 本地文件 hdfs文件
hadoop fs -cppyToLocal hdfs文件 本地文件
hadoop fs -mkdir books
hadoop fs -ls
	Found 2 items
	drwxr-xr-x - tom supergroup 0 2014-10-04 13:22 books
	-rw-r--r-- 1 tom supergroup 119 2014-10-04 13:21 quangle.txt
	第一列显示文件模式;第二列是文件的备份数;第三列所属用户;第四列所属组;第五列文件大小;第六列第七列	  最后修改日期与实践;第八列是文件或目录的名称。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值