Hadoop[编辑]
一、简介
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。Hadoop是Apache Lucene的创始人 Doung Cutting 创建的,起源于Apache Nutch。是一个开源的网络搜索引擎也是Apache的Lucene项目的一部分。
Hadoop的框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。
Hadoop 主要由HDFS(Hadoop Distributed File System)和MapReduce 引擎两部分组成。最底部是HDFS,它存储Hadoop 集群中所有存储节点上的文件。HDFS 的上一层是MapReduce,引擎该引擎由JobTrackers和TaskTrackers组成。虽然Hadoop自身由Java语言开发,但它除了使用Java语言进行编程外同样支持多种编程语言如C++。
二、优点
⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5.低成本。与一体机、商用数据仓库以及Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。
三、Hadoop集群环境下的网络架构的设计与优化
(1)写数据。当向HDFS 写入初始数据或者大块数据时,会发生数据写入过程。写入的数据块需要备份到其他节点,需要在网络中传输这些数据。
(2)作业执行。
① Map 阶段。在算法的Map 阶段,几乎不需要在网络中传输数据。在Map 开始阶段,当HDFS 数据没有本地性(数据块不在本地存储,需要从其他节点拷贝)时,才需在网络中传输数据。
② Shuffle 阶段。这是作业执行中在网络中传输数据的阶段,数据传输的程度依赖于作业。Mapper 阶段的输出内容,会在这个时候传输到Reducer 进行排序。
③ Reduce 阶段。因为Reducer 需要的数据已经从Shuffle 阶段传来,所以此阶段不需要网络传输数据。
④ Output 复制。MapReduce 的输出作为文件存储在HDFS 上。当将输出结果写入HDFS 时,产生的备份会在网络中传输。
(3)读数据。当应用程序如网站、索引或者SQL数据库从HDFS 读取数据时,会发生数据读取的过程。另外,网络对Hadoop 的控制层非常重要,比如HDFS 的信令和运维操作,以及MapReduce 架构都受到网络影响。
四、知名用户
Yahoo!,2008年2月19日,Yahoo!使用10,000个微处理器核心的Linux计算机集群运行一个Hadoop应用程式。其他知名用户还有Facebook、Fox Interactive Media、IBM、ImageShack、资讯科学研究院等。
网络营销词典内容均由网友提供,仅供参考。如发现词条内容有问题,请发邮件至info # wm23.com。