使用Linux 和Hadoop 进行分布式计算
人们每天都依赖搜索引擎以从 Internet 的海量数据中找到特定的内容,但您曾经想过这些搜索是如何执行的吗?一种方法是 Apache 的 Hadoop,它是一个能够对海量数据进行分布式处理的软件框架.Hadoop 的一个应用是并行索引 Internet Web 页面.Hadoop 是一个受到 Yahoo!、Google 和 IBM 等公司支持的 Apache 项目.本文将介绍 Hadoop 框架,并展示它为什么是最重要的基于 Linux? 的分布式计算框架之一. Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子项目 Nutch 的一部分正式引入.它受到最先由 Google Lab 开发的 MapReduce 和 Google File System 的启发.2006 年 3 月份,MapReduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目中. Hadoop 是最受欢迎的在 Internet 上对搜索关键字进行内容分类的工具,但它也可以解决许多要求极大伸缩性的问题.例如,如果您要 grep 一个 10TB 的巨型文件,会出现什么情况?在传统的系统上,这将需要很长的时间.但是 Hadoop 在设计时就考虑到这些问题,因此能大大提高效率. 先决条件 Hadoop 是一个能够对大量数据进行分布式处理的软件框架.但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的.Hadoop 是可靠的,它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理.Hadoop 是高效的,它以并行的方式工作,通过并行处理加快处理速度.Hadoop 还是可伸缩的,能够处理 PB 级数据.此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用. 您可能已经想到,Hadoop 运行在 Linux 生产平台上是非常理想的,它带有用 Java? 语言编写的框架.Hadoop 上的应用程序也可以使用其他语言编写,比如 C . Hadoop 架构 Hadoop 有许多元素构成.最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件.HDFS(对于本文)的上一层是 MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成. HDFS 对外部客户机而言,HDFS 就像一个传统的分级文件系统.可以创建、删除、移动或重命名文件,等等.但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的.这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块.仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败). 图 1. Hadoop 集群的简化视图
存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode).这与传统的 RAID 架构大不相同.块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定.NameNode 可以控制所有文件操作.HDFS 内部的所有通信都基于标准的 TCP/IP 协议.
NameNode NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件.它负责管理文件系统名称空间和控制外部客户机的访问.NameNode 决定是否将文件映射到 DataNode 上的复制块上.对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,一个复制块存储在不同机架的某个节点上.注意,这里需要您了解集群架构. 实际的 I/O 事务并没有经过 NameNode,只有表示 DataNode 和块的文件映射的元数据经过 NameNode.当外部客户机发送请求要求创建文件时,NameNode 会以块标识和该块的第一个副本的 DataNode IP 地址作为响应.这个 NameNode 还会通知其他将要接收该块的副本的 DataNode. NameNode 在一个称为 FsImage 的文件中存储所有关于文件系统名称空间的信息.这个文件和一个包含所有事务的记录文件(这里是 EditLog)将存储在 NameNode 的本地文件系统上.FsIm |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |