WHCSRL 技术网

Hadoop大数据学习生态系统(一)


前言

上篇文章讲述了大数据的发展及历程,这篇文章就带大家进入大数据的技术应用,以下文章观点或描述如有错误,请指正!!

1、什么是hadoop

广义:hadoop代表是大数据的一个技术生态圈,这个生态圈中包含其他很多的技术框架。

例如一下技术框架:

HadoopHDFS+MapReduce+Yarn
Hive数据仓库工具
HBase海量列式非关系型数据库
SqoopETL工具
Kafka消息中间件
Flume数据采集工具

狭义:hadoop是一个分布式存储和计算的框架平台。

2、Hadoop起源

那么我们紧接着来说一下hadoop的发展历程:

Hadoop起源于Apache Nutch项目,始于2002年,是Apache Lucene的子项目之一 。2004年,Google在“操作系统设计与实现”(Operating System Design and Implementation,OSDI)会议上公开发表了题为MapReduce:Simplified Data Processing on Large Clusters(Mapreduce:简化大规模集群上的数据处理)的论文之后,受到启发的Doug Cutting等人开始尝试实现MapReduce计算框架,并将它与NDFS(Nutch Distributed File System)结合,用以支持Nutch引擎的主要算法 。由于NDFS和MapReduce在Nutch引擎中有着良好的应用,所以它们于2006年2月被分离出来,成为一套完整而独立的软件,并被命名为Hadoop。到了2008年年初,hadoop已成为Apache的顶级项目,包含众多子项目,被应用到包括Yahoo在内的很多互联网公司

从上述过程中,我们可以清楚的了解到Hadoop最初的设计启发来源于Nutch。而Nutch诞生于2002年,是一个开源Java实现的搜索引擎,其设计目标是花费很少的资金来配置世界一流的Web所有引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

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

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

Google的三篇论文(三驾马车)

  • GFS:Google的分布式文件系统(Google File System)
  • MapReduce:Google的分布式计算框架
  • BigTable:大型分布式数据库

发展演变关系:

  • GFS :HDFS(分布式文件系统)
  • Google MapReduce : Hadoop MapReduce(分布式计算模型)
  • BigTable : HBase (海量列式非关系型数据库)

3、Hadoop的四大特点

Hadoop既然经过这么长时间的沉淀,那么它的特性有哪些呢?

  • 扩容能力(Scalable):顾名思义hadoop作为分布式存储和计算的框架平台是在计算机集群内分配数据并行完成计算任务,而集群可以随时扩展到成百上千个节点上。
  • 低成本(Economical):Hadoop通过普通且廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低。
  • 高效率(Efficient):Hadoop可以在节点之间动态并行的移动数据,速度非常之快。
  • 可靠性(Rellable):能自动维护数据的多份复制,并且可以在任务失败后能自动的重新部署(redeploy)计算任务,所以说Hadoop的按位存储和处理数据的能力值得信赖。

4、Hadoop的三大发行版本

  • Apache Hadoop (最原始版本,所有的发行版均基于这个版本进行改进维护)
    优点:拥有全世界的开源贡献,代码更新版本比较快。
    缺点:版本的升级,版本的维护,以及版本之间的兼容性,学习非常方便,但是在实际的生产环境中尽量不要使用。
    Apache所有软件的下载地址(包括各种历史版本):http://archive.apache.org/dist/
  • 软件收费版本ClouderaManager CDH生产环境使用
    Cloudera主要是美国一家大数据公司在Apache开源Hadoop的版本上,通过自己公司内部的各种补丁,实现版本之间的稳定运行,大数据生态圈的各个版本的软件都提供了对应的版本,解决了版本的升级困难,版本兼容性等各种问题,生产环境强烈推荐使用
  • 免费开源版本HortonWorks HDP生产环境使用
    hortonworks主要是雅虎主导Hadoop开发的副总裁,带领二十几个核心成员成立Hortonworks,核心产品软件HDP(ambari),HDF免费开源,并且提供一整套的web管理界面,供我们可以通过web界面管理我们的集群状态,web管理界面软件HDF网址(http://ambari.apache.org/)

5、Hadoop的版本迭代

0.x 系列版本:Hadoop当中最早的一个开源版本,在此基础上演变而来的1.x以及2.x的版本
1.x 版本系列:Hadoop版本当中的第二代开源版本,主要修复0.x版本的一些bug等
2.x 版本系列:架构产生重大变化,引入了yarn平台等许多新特性
3.x 版本系列:EC技术、YARN的时间轴服务等新特性

组件Hadoop1.0Hadoop2.0
HDFS存在单点故障问题,且资源不能进行隔离(后边进行详细介绍)设计了HA,提供了节点热备
MapReduce资源管理效率低下设计了新的资源管理框架-YARN

详细版本之间的区别以及差异

6、Hadoop的优点及缺点

Hadoop的优点

  • Hadoop具有存储和处理数据能力的高可靠性。
  • Hadoop通过可用的计算机集群分配数据,完成存储和计算任务,这些集群可以方便地扩展到数以千计的节点中,具有高扩展性。
  • Hadoop能够在节点之间进行动态地移动数据,并保证各个节点的动态平衡,处理速度非常快,具有高效性。
  • Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配,具有高容错性。

Hadoop的缺点

  • Hadoop不适用于低延迟数据访问。
  • Hadoop不能高效存储大量小文件。
  • Hadoop不支持多用户写入并任意修改文件。

7、Hadoop组成

Hadoop = HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块

  • HDFS:一个高可靠、高吞吐量的分布式文件系统(分而治之)

在这里插入图片描述

1、NameNode(nn):存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。
2、SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。
3、DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验
注意:NN,2NN,DN这些既是角色名称,进程名称,代指电脑节点名称!!
  • 1
  • 2
  • 3
  • 4
  • MapReduce:分布式离线并行计算框架
    在这里插入图片描述

    拆解任务、分散处理、汇整结果
     MapReduce计算 = Map阶段 + Reduce阶段
     Map阶段就是“分”的阶段,并行处理输入数据;
     Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总;
    
    • 1
    • 2
    • 3
    • 4
  • Yarn:作业调度于集群资源管理框架

在这里插入图片描述

Yarn中有如下几个主要角色,同样,既是角色名、也是进程名,也指代所在计算机节点名称。
1、ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度;
2、NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令;
3、ApplicationMaster(am):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
  • 1
  • 2
  • 3
  • 4
推荐阅读