首页 > 其他分享 >Hadoop是什么?

Hadoop是什么?

时间:2022-10-21 13:35:36浏览次数:69  
标签:HDFS 一个 什么 Hadoop MapReduce Client Namenode


谈到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的结构:

Hadoop是什么?_lucene


      从上面的图中可以看出,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时遇到的问题,也给大家一个参考,少走点弯路。

标签:HDFS,一个,什么,Hadoop,MapReduce,Client,Namenode
From: https://blog.51cto.com/u_5112239/5782479

相关文章

  • 为什么 Python 会如此火爆?
    python是编程语言,属于高级语言,python之所以火爆,主要是爬虫的应用,也就是你可以来做自己的大数据,用python来进行搜索数据!第二python应用在人工智能上,效果较好!第三:它属于胶水......
  • 战略决定结构是什么意思?
    战略决定结构是一个业务原则,它规定组织的办事处、部门、团队、过程和技术是为了实现公司的战略而设计的。这个似乎理所当然,但是实际上相反情况屡有发生。例如,技术部门可能......
  • RPC 和 SOAP 有什么区别?
    RPCvsSOAP无论在商业、政治、人际关系,甚至在拯救生命的过程中,通信在任何领域都是至关重要的。通信被证明最重要的另一个领域是计算机网络。如果没有合适的通信手段,一个典......
  • 失败的 SOA 案例是什么样子的呢?一个反面模式
    SOA行为失败的原因有很多,但是最重要的一个原因是-缺乏服务复用。很难对(上述案例的)未来做出预测。如果你今天没有对自己的服务进行SOA化治理的......
  • 为什么方法断点那么慢
    原文一些IDE提供“方法断点”的功能,可以让断点调试看起来非常简洁,然而在调试过程中我们会发现调试反应时间很长,调试器的性能大大降低。在本文中,我会简单解释方法断点的实......
  • 为什么要反对精致的利己主义者
    1.眼里揉不进沙子早上和同学探讨一个问题眼里揉不进沙子是一个褒义词还是贬义词而我们最后得出的结论是,它是中性的。为什么呢?因为这个要看在什么情况去使用。如果一个......
  • 什么是开源工作流框架?有什么特点?
    在大数据时代,开源工作流框架也成为大家提升办公效率的利器软件之一。那么,什么是开源工作流框架?又有哪些特点?作为低代码平台服务商,流辰信息有责任和义务潜心研发更多优良的......
  • 【TPC-DS】trino+S3+hive+postgresql性能测试----hadoop+mysql+hive安装部署(三)
    总体过程1、安装hadoop-3.2.02、安装hive-standalone-metastore-3.0.03、配置环境变量 安装hadoop-3.2.0下载hadoop的链接,选择hadoop3.2.0:​​https://archive.apache.org/......
  • 居家隔离一个礼拜是什么感受 ?
    大家好,我是贺同学,好久没上来和大家唠嗑了。干嘛去了?已经居家隔离一个礼拜了。没想到吧,我居然也有这一天?隔离开始事情是这样的,上周四,接到公司的通知。公司园区A大厦发生一......
  • 数据标准和数据规范到底有什么区别???
    编 辑:彭文华​彭友们好,我是老彭呀。前两天有个彭友问我:到底数据标准和数据规范有啥区别?这哥们可不是小白,他是十几年的老数据人了,最近在做集团数据管理体系设计,写文档都写到......