Hadoop简介

发布于:2022-12-19 ⋅ 阅读:(1349) ⋅ 点赞:(1)

一、Hadoop是个啥

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

  • 主要解决,海量数据的存储和海量数据的分析计算 问题。
  • 广义上来说, Hadoop通常是指一个更广泛的概念 —— Hadoop 生态圈 。
  • 狭义上来说,Hadoop就是单独指代Hadoop这个软件(HDFS+MAPREDUCE)

二、Hadoop发展历史

Hadoop最早起源于lucene下的Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

2003年、2004年谷歌发表的三篇论文为该问题提供了可行的解决方案。

  • 分布式文件系统(GFS),可用于处理海量网页的存储
  • 分布式计算框架MAPREDUCE,可用于处理海量网页的索引计算问题。
  • 分布式的结构化数据存储系统Bigtable,用来处理海量结构化数据。

Doug Cutting基于这三篇论文完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP,到2008年1月,HADOOP成为Apache顶级项目(同年,cloudera公司成立),迎来了它的快速发展期。

三、Hadoop的优点

高可靠性

Hadoop底层维护了多个数据副本,所以即使某一个单元出现故障,也不会导致数据丢失,并且拥有按位存储和处理数据的能力。

高扩展性

Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

高效性

Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡。并且Hadoop是并行处理数据的,效率高。

高容错性

Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

低成本

与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。Hadoop带有用Java语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

四、Hadoop的组成

HDFS

Hadoop Distributed File System ,简称 HDFS ,是一个分布式文件系统。

  • NameNode( nn ):存储文件的 元数据 ,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
  • DataNode(dn) :在本地文件系统 存储文件块数据,以及块数据的校验和 。
  • Secondary NameNode(2nn) : 每隔一段时间对NameNode元数据备份 。

简单的说就是NameNode就相当于一个目录,一个索引,负责标记每一个DataNode的存放位置而DataNode才是真正存放数据的, Secondary NameNode(2nn) :相当与老板的一个秘书,他会备份 一部分 数据,不会备份全部数据。

YARN

Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。

MapReduce

MapReduce将计算过程分为两个阶段:Map和Reduce

  • Map阶段并行处理输入数据
  • Reduce阶段对Map结果进行汇总

参考资料

Hadoop百度百科​​​​​​​


网站公告

今日签到

点亮在社区的每一天
去签到