资讯专栏INFORMATION COLUMN

Hadoop学习笔记之:Hadoop的两个部分

赵连江 / 1117人阅读

摘要:包含两个部分即分布式文件系统具有高容错性,并且可以被部署在低价的硬件设备之上。管理着整个分布式文件系统,对文件系统的操作如建立删除文件和文件夹都是通过来控制。

本文大部分内容都是从官网Hadoop上来的。其中有一篇介绍HDFS的pdf文档,里面对Hadoop介绍的比较全面了。我的这一个系列的Hadoop学习笔记也是从这里一步一步进行下来的,同时又参考了网上的很多文章,对学习Hadoop中遇到的问题进行了归纳总结。

  言归正传,先说一下Hadoop的来龙去脉。谈到Hadoop就不得不提到Lucene和Nutch。首先,Lucene并不是一个应用程序,而是提供了一个纯Java的高性能全文索引引擎工具包,它可以方便的嵌入到各种实际应用中实现全文搜索/索引功能。Nutch是一个应用程序,是一个以Lucene为基础实现的搜索引擎应用,Lucene为Nutch提供了文本搜索和索引的API,Nutch不光有搜索的功能,还有数据抓取的功能。在nutch0.8.0版本之前,Hadoop还属于Nutch的一部分,而从nutch0.8.0开始,将其中实现的NDFS和MapReduce剥离出来成立一个新的开源项目,这就是Hadoop,而nutch0.8.0版本较之以前的Nutch在架构上有了根本性的变化,那就是完全构建在Hadoop的基础之上了。在Hadoop中实现了Google的GFS和MapReduce算法,使Hadoop成为了一个分布式的计算平台。

  其实,Hadoop并不仅仅是一个用于存储的分布式文件系统,而是设计用来在由通用计算设备组成的大型集群上执行分布式应用的框架。

  Hadoop包含两个部分:

  1、HDFS

  即Hadoop Distributed File System (Hadoop分布式文件系统)

  HDFS具有高容错性,并且可以被部署在低价的硬件设备之上。HDFS很适合那些有大数据集的应用,并且提供了对数据读写的高吞吐率。HDFS是一个master/slave的结构,就通常的部署来说,在master上只运行一个Namenode,而在每一个slave上运行一个Datanode。

  HDFS支持传统的层次文件组织结构,同现有的一些文件系统在操作上很类似,比如你可以创建和删除一个文件,把一个文件从一个目录移到另一个目录,重命名等等操作。Namenode管理着整个分布式文件系统,对文件系统的操作(如建立、删除文件和文件夹)都是通过Namenode来控制。

  下面是HDFS的结构:

  从上面的图中可以看出,Namenode,Datanode,Client之间的通信都是建立在TCP/IP的基础之上的。当Client要执行一个写入的操作的时候,命令不是马上就发送到Namenode,Client首先在本机上临时文件夹中缓存这些数据,当临时文件夹中的数据块达到了设定的Block的值(默认是64M)时,Client便会通知Namenode,Namenode便响应Client的RPC请求,将文件名插入文件系统层次中并且在Datanode中找到一块存放该数据的block,同时将该Datanode及对应的数据块信息告诉Client,Client便这些本地临时文件夹中的数据块写入指定的数据节点。

  HDFS采取了副本策略,其目的是为了提高系统的可靠性,可用性。HDFS的副本放置策略是三个副本,一个放在本节点上,一个放在同一机架中的另一个节点上,还有一个副本放在另一个不同的机架中的一个节点上。当前版本的hadoop0.12.0中还没有实现,但是正在进行中,相信不久就可以出来了。

  2、MapReduce的实现

  MapReduce是Google 的一项重要技术,它是一个编程模型,用以进行大数据量的计算。对于大数据量的计算,通常采用的处理手法就是并行计算。至少现阶段而言,对许多开发人员来说,并行计算还是一个比较遥远的东西。MapReduce就是一种简化并行计算的编程模型,它让那些没有多少并行计算经验的开发人员也可以开发并行应用。

  MapReduce的名字源于这个模型中的两项核心操作:Map和 Reduce。也许熟悉Functional Programming(函数式编程)的人见到这两个词会倍感亲切。简单的说来,Map是把一组数据一对一的映射为另外的一组数据,其映射的规则由一个函数来指定,比如对[1, 2, 3, 4]进行乘2的映射就变成了[2, 4, 6, 8]。Reduce是对一组数据进行归约,这个归约的规则由一个函数指定,比如对[1, 2, 3, 4]进行求和的归约得到结果是10,而对它进行求积的归约结果是24。

  关于MapReduce的内容,建议看看孟岩的这篇MapReduce:The Free Lunch Is Not Over!

  好了,作为这个系列的第一篇就写这么多了,我也是刚开始接触Hadoop,下一篇就是讲Hadoop的部署,谈谈我在部署Hadoop时遇到的问题,也给大家一个参考,少走点弯路。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/3700.html

相关文章

  • Hadoop学习笔记二:部署与应用实例

    摘要:本文主要是以安装和使用为例,指出在部署的时候容易遇到的问题以及如何解决。硬件环境共有台机器,均使用的系统,使用的是。配置如下这里有一点需要强调的就是,务必要确保每台机器的主机名和地址之间能正确解析。 本文主要是以安装和使用Hadoop-0.12.0为例,指出在部署Hadoop的时候容易遇到的问题以及如何解决。   硬件环境   共有3台机器,均使用的FC5系统,Java使用的是jdk1.6....

    CompileYouth 评论0 收藏0
  • Spark Streaming学习笔记HDFS

    摘要:用来管理文件系统的命名空间,其将所有的文件和文件夹的元数据保存在一个文件系统树中。文件系统镜像元数据镜像文件。其周期性的向元数据节点回报其存储的数据块信息。 Hadoop分布式文件系统(hadoopdistributed filesystem,HDFS)。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS可以...

    qqlcbb 评论0 收藏0
  • 从小白程序员一路晋升为大厂高级技术专家我看过哪些书籍?(建议收藏)

    摘要:大家好,我是冰河有句话叫做投资啥都不如投资自己的回报率高。马上就十一国庆假期了,给小伙伴们分享下,从小白程序员到大厂高级技术专家我看过哪些技术类书籍。 大家好,我是...

    sf_wangchong 评论0 收藏0
  • ZooKeeper学习笔记扫盲

    摘要:可靠性一旦数据更新成功,将一直保持,直到新的更新。这是一种主动的分布式数据结构,能够在外部情况发生变化时候主动修改数据项状态的数据机构。如果监视节点状态发生变化,则跳转到第步,继续进行后续的操作,直到退出锁竞争。 题外话:从字面上来看,ZooKeeper表示动物园管理员,而Hadoop生态系统中,许多项目的Logo都采用了动物,比如Hadoop采用了大象的形象,所以可以ZooKeepe...

    sarva 评论0 收藏0
  • Hadoop集群搭建及开机自启动-学习笔记

    摘要:一集群配置解压并复制文件修改配置文件中配置修改文件,加入将所有配置文件复制到所有机器上在节点格式化在节点启动二开机自启进入目录新建文件添加以下内容,只在配置即可给文件设置权限加入开机自启列表查看列表 一、Hadoop集群配置 1.解压并复制文件 tar -zxvf /home/software/hadoop-2.8.1.tar.gz mkdir -p /home/opt/hadoop/...

    894974231 评论0 收藏0

发表评论

0条评论

赵连江

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<