浅谈Hadoop(一)——hadoop简介

来源:互联网 发布:js如何实现上传文件 编辑:程序博客网 时间:2024/04/28 04:10

浅谈Hadoop(一)——hadoop简介

本文翻译取材来自hadoop官方文档:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Introduction

简介
hadoop分布式文件系统(hdfs)被设计成运行在普通硬件环境中的分布式文件系统。他和现有的一些分布式文件系统有相似之处。但是,hdfs和现有的分布式文件系统之间的区别也是巨大的。hdfs是高度容错的,而且能够运行在廉价的硬件上。hdfs为应用程序提供的高吞吐量,适合处理大数据。hdfs释放了一些POSIX的限制,允许采用二进制流的方式在文件系统间传递数据。hdfs最初是作为apache Nutch web搜索项目的基础设施,现在是apache的核心项目之一。项目地址: http://hadoop.apache.org/

假设和目标
hardware failure
硬件错误比异常更常见。一个hdfs实例由成千上百台服务器组成,其中每台服务器都保存着系统的一部分数据。这就意味着,任何机器上发生故障对于整个系统来说都是灾难性的(个人理解 假设每台机器的无故障率是90%,那么整个系统正常运行的概率就是 0.9的n次方,n就是分布式系统的机器个数,这样如果是10台机器,那么正常运行的概率就是0.9的10次方=0.34)。因此,hdfs的主要架构目标就是检测错误,并且快速,自动恢复。

streaming access data
运行在hdfs上的应用程序需要采用二进制流的方式访问数据,这些应用程序不是运行在一般文件系统上的一般的应用程序。hfds设计的更像批处理系统,而不是用户交互系统。hdfs强调的是数据的高吞吐量,而不是数据的低延迟。对于在hdfs上的运行的应用程序不需要支持一些POSIX中的硬性要求。有些POSIX的要求被转换成数据的吞吐率。

large data sets
运行在hdfs上的程序有很大的数据量。在hdfs中的一个典型的文件有gigabytes到terabytes。因此,hdfs能够支持大数据,提供高的带宽,并且在一个集群中包含成千上百个节点。hdfs能够在单个集群中支持上千万的文件。

simple coherency model
hdfs提供了一次写入多次读取的文件模型。对于一个文件,除非在末尾添加和删除,否则一旦创建写入就不能够改变。修改文件只能在末尾添加,不能再其他点插入。这样的一致性模型简化的数据一致性的处理,同时保证了较高的数据吞吐量。MapReduce和网络爬虫对于这种模型有很好的兼容性。

moving computation is cheaper than moving data
对于应用程序来说,计算单元要靠近计算的数据是很重要的。尤其是在计算大数据的时候。这样能减少网络拥堵,增加系统整体的吞吐量。假设移动计算单元到数据比移动数据到计算单元是更好的。hdfs提供了应用程序接口,让程序把自己移动到数据所在的地方。

portability across heterogeneous hadward and software platforms
hdfs被设计成跨平台,这样促进了大数据处理时被更多的采用。


0 0
原创粉丝点击