第一节:Hadoop之Hadoop概述
2021-01-19
第一节:Hadoop之Hadoop概述
- 认识Hadoop是什么
- 了解 Hadoop的发展史
- 掌握 Hadoop中的核心组件及功能
- 了解 Hadoop常用的发行版本
- 了解 Hadoop生态系统中常用的处理框架
- 了解大数据在企业中的应用案例
一、 Hadoop简介
1.什么是 Hadoop
Hadoop是 Apache基金会旗下的一个分布式系统基础架构。主要包括:分布式文件系统HDFS( Hadoop Distributed File System)、分布式计算系统 MapReduce和分布式资源管理系YARN。可以使得用户在不了解分布式底层细节的情况下,开发分布式程序、充分利用集群的分布式能力进行运算和存储。以 Apache Hadoop为生态系统的框架是目前分析海量数据的首选针对第一节中描述的大数据,我们如何对这些数据进行分析或者提取出我们所需要的有价值的信息呢?我们可以采用 Hadoop以及生态圈提供的分布式存储和分布式计算的功能来完成。
2. Hadoop发展史
(1)2002年, Doug Cutting团队开发了网络搜索引擎 Nutch,这就是 Hadoop的前身;
(2)2003-2004年,Google两篇论文诞生:GFS和 MapReduce;
(3)2006年,为致力于Hadoop技术的发展, Doug Cutting加入 Yahoo!;
(4)2008年1月, Hadoop成为 Apache顶级项目,并在同年7月打破最快排序1TB数据的世界纪录;
(5)2008年9月,Hive成为Hadoop项目;
(6)2009年3月, Cloudera推出CDH;
(7)2011年12月,1.0.0版本发布,标志看 Hadoop已经初具生产规模;
(8)2013年10月,发布2.2.0版本,正式进入2.x时代;
(9)2014年,先后发布了 Hadoop2.3.0, Hadoop2.4.0, Hadoop2.5.0和Hadoop2.6.0;
(10)2015年,发布 Hadoop2.7.0;
(11)2016年,发布 Hadoop3.0-alpha版本,预示着 Hadoop即将进入3.x时代。
3. Hadoop核心构成
Hadoop框架主要包括三大部分:分布式文件系统、分布式计算系统,资源管理系统。
(1)分布式文件系统HDFS源自于 Google发表于2003年10月的GFS论文,HDFs是GFS克隆版。
Hadoop分布式文件系统(HDFS)能提供对数据访问的高吞吐量,适用于大数据场景的数据存储,因为HDFS提供了高可靠性(主要通过多副本来实现)、高扩展性(通过添加机器来达到线性扩展)和高吞吐率的数据存储服务,按照官方的说法,HDFS是被设计成能够运行在通用硬件上的分布式文件系统,所以我们的 Hadoop集群可以部署在普通的机器上,并不需要部署在价格昂贵的小型机或者其他机器上,能够大大减少公司的运营成本。
HDFS的基本原理是将数据文件以指定的块的大小拆分成数据块,并将数据块以副本的方式存储到多台机器上,即使其中的某个节点出现故障,那么该节点上存储的数据块副本丢失,但是该副本在其他节点上还有对应的数据副本,所以在HDFS中即使某个节点出现问题也不会产生数据的丢失(前提是你的 Hadoop集群的副本系数大于1)·HDFS将数据文件的切分、容错、负载均衡等功能透明化(用户是感知不到整个过程的,只知道上传了一个文件到HDFS上,其中数据的切分、存储在哪些机器上是感知不到的,非常易用),我们可将HDFS看成一个容量巨大、具有高容错性的磁盘,在使用的时候完全可以当作普通的本地磁盘进行使用。所以说HDFS是适用于海量数据的可靠性存储。
2)分布式计算系统 MapReduce
MapReduce是一个编程模型,用以进行大数据量的计算, MapReduce的名字源于这个模型中的两项核心操作:Map(映射)和 Reduce(归纳), MapReduce是一种简化并进行应用程序开发的编程模型,能让没有多少并行应用经验的开发人员也可以快速的学会并行应用的开发,而不需要去关注并行计算中的一些底层问题,只要按照MapReduce API的编程模型实现相应业务逻辑的开发即可。
一个 Map Reduce作业通常会把输入的数据集切分为若于独立的数据块,由map任务以并行的方式处理它们,对map的输出先进行排序,然后把结果输入给reduce任务,由 reduce任务来完成最终的统一处理,通常 MapReduce作业的输入和输出都是使用Hadoop分布式文件系统HDFS进行存储,换句话说就是 MapReduce框架处理数据的输入源和输出目的地大部分场景都是存储在HDFS上的。
在部署 Hadoop集群时,通常是将计算节点和存储节点部署在相同的节点之这样做的好处是允许计算框架在任务调度时,可以将作业优先调度到那些已经存有数据的节点上进行数据的计算,这可以使整个集群的网络带宽被非常高效地利用,这就是大数据中非常有名的一句话“移动计算而不是移动数据”。
(3)资源管理系统YARN
Hadoop YARN的基本思想是将 Hadoop1.x中的 MapReduce架构中 JobTracker的资源管理和作业调度监控功能进行分离,解决了在 Hadoop1.x中只能运行 MapReduce框架的限制。
YARN是随着Hado发展而催生的新框架,全称是 Yet Another Resoure Negotiator,是一个通用资源管理系统,可为运行在YARN之上的分布式应用程序提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了很大好处,而且在YARN之上我们可运行各种不同类型的作业,比如:MapReduce、Spak、Tez等不同的计算框架。
4.为什么很多公司选择 Hadoop作为大数据平台的解决方案
(1) Hadoop源代码开源;
(2)社区活跃,参与者众多(这是我们选择某一项框架的很重要的原因,试想如果社区都不活跃,那么当我们在工作中遇到各种问题时,如何去解决);
(3)涉及大数据分布式存储和计算的各个场景;
(4)发展了10余年,已得到企业各界的验证.
5. Hadoop发行版本
Hadoop的发行版除了社区的 Apache Hadoop外, Cloudera、 Hortonworks、MapReduce等都提供了自己的商业版本。商业版主要是提供了各项服务的支持(高级功能要收取定的费用),
这对一些研发能力不是太强的企业来说是非常好的,公司只要出一定的费用就能使用到一些高级功能。每个发行版都有自己的一些特点,这里就使用最多
的CDH和HDP发行版的特点做简单介绍。
(1) Cloudera CDH
Cloudera CDH版本的 Hadoop是现在国内公司用的最多的
特点: Cloudera Manager(简称CM)小白式安装,CM配置简单、升级方便,资源分配设置方便,非常便于整合 Impala,而且文档写的很好,与 Spark的整合力度非常好。
在CM的基础之上,我们通过页面就能完成对 Hadoop生态系统的环境的各种安装、配置和升级
缺点:CM不开源, Hadoop的功能和社区版有些出入。
(2) Hortonworks HDP
特点。原装Hadoop,纯开源,版本和社区版一致,支持Tez,集成开源监控方案Ganglia和 Nagios。
缺点:安装、升级、添加删除节点比较麻烦。