第三章 Hadoop分布式文件系统

Hadoop是一个综合性的文件系统抽象,可以集成不同的文件系统(如本地文件系统和Amazon S3系统)


HDFS的设计

HDFS以流式数据访问模式来存储超大文件,运行于商用的硬件集群上

1、超大文件。目前已有PB级数据的Hadoop集群了

2、流式数据访问。一次写入,多次读写。长时间在数据集上各种分析每次分析都将涉及数据集的大部分或者全部。强调读取整个数据集的时间

3、商用硬件

4、低时间延迟的数据访问。要求低时间延迟数据访问的应用,例如十毫秒范围,不适合在HDFS上运行。记住,HDFS是为高数据吞吐量应用优化的,这可能会以提高时间延      迟为代价。目前,对于低延时访问需求,HBase是更好的选择

5、大量的小文件。由于namenode将文件系统的元数据存储在内存中,因此该文件系统所能存储的文件总数受限于namenode的内存容量。根据经验,每个文件、目录和数据      块的存储信息大约占150字节。

6、多用户写入,任意修改文件。 HDFS中的文件可能只有一个writer,而且写操作总是将数据添加在文件的末尾。不支持具有多个写入者的操作,也不支持在文件的任意位置进      行修改。以后可能支持

数据块:每个磁盘都有默认的数据块大小,这是磁盘进行数据读写的最小单位,磁盘块一般为512字节,HDFS默认数据块的大小为64M

每个块复制到少数几个独立的机器上(默认为3个)

namenode实现容错非常重要,Hadoop为此提供两种机制

1、备份那些组成文件系统元数据持久状态的文件。一般配置是,将持久状态写入本地磁盘的同时,写入一个远程挂载的网络文件系统(NFS)

2、另一种可行的方法运行一个辅助namenode,但它不能被用作namenode。这个辅助name的重要作用是定期通过编辑日志合并命名空间镜像,以防止编辑日志过大


联邦HDFS

在2.x发行版系列中引入联邦HDFS允许系统通过添加namenode实现扩展,其中每个namenode管理文件系统命名空间中的一个部分。例如,一个namenode可能管理/user目录下的所有文件,而另一个namenode可能管理/share目录下的所有文件


HDFS的高可用性

Hadoop的2.x发行版本在HDFS中增加了对高可用性(HA)支持。在这一实现中,配置了一对活动-备用(activie-standby)namenode。当活动namenode失效,备用namenode就会接管它的任务并开始服务于来客户端的请求,不会有任何明显中断。实现这一目标需要在架构上做如下修改。

1、namenode之间需要通过高可用共享存储实现编辑日志的共享

2、datanode需要向两个namenode发送数据块处理报告,因为数据块的映射信息存储在namenode的内存中,非磁盘

3、客户端需要使用特定的机制来处理namenode的失效问题,这一机制对用户是透明的。


Hadoop增删改查,可通过命令型,API



通过Flume和Sqoop导入数据

Flume:导入半结构化数据,例如syslog和apache log4j

Sqoop:导入结构化数据,例如传统的关系型数据库,应用场景,组织将白天产生的数据库中的数据在晚间导入Hive数据仓库中进行分析

Distcp:典型应用场景是在两个HDFS集群之间传输数据。如果两个集群运行相同版本hadoop,就非常适合使用hdfs方案


Hadoop归档

1个1MB的文件以大小为128的块存储,使用的是1MB的磁盘空间,而不是128MB

Hadoop存档根据:archive,存档格式.har,HAR可以作为MapReduce的输入



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值