大数据学习

第二章 Hadoop简介

2.1 Hadoop是什么

1、Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
2、主要解决的是海量数据的存储和海量数据的分析计算问题。
3、广义来说,Hadoop通常是指一个广泛的概念——Hadoop生态圈,因为Hadoop中包含了很多的框架,比如HDFS、MapReduce、HBase等框架。

2.2 Hadoop发展历史

1、Lucene框架是Doug Cutting开创的开源软件,用Java书写代码,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎。
2、2001年底Lucene成为了Apache基金会的一个子项目。
3、对于海量数据的场景,Lucene面对与Google同样的困难,存储数据苦难,检索速度慢。
4、学习和模仿Google解决这些问题的方法:微型版Nutch。
5、可以说Google是Hadoop的思想之源(Google在大数据方面的三篇论文)
GFS——> HDFS
Map-Redce ——> MR
Big Table ——> HBase

6、2003-2004年,Google公开了部分GFS和MapReduce思想的细节,以此为基础Doug Cutting等人用了2年的业余时间实现了DFS和MapReduce机制,使Nutch性能飙升。
7、2005年Hadoop作为Lucene的子项目Nutch的一部分正式引入到Apache基金会。
8、2006年3月份,Map-Reduce和Nutch Distributed File System(NDFS)分别被纳入称为Hadoop的项目中。
9、名字来源于Doug Cutting儿子的玩具大象。

2.3 Hadoop 三大发行版本

Hadoop三大发行版本:Apache、Cloudera、Hortonworks。
Apache版本最原始(最基础)的版本,对于入门学习最好。
Cloudera在大型互联网企业中用的较多。
Hortonworks文档较好。

1 Apache Hadoop
官网地址:http://hadoop.apache.org/releases.html
下载地址:https://archive.apache.org/dist/hadoop/common/

2 Cloudera Hadoop
(1)、2008年成立的Cloudera是最早将Hadoop商用的公司,为合作伙伴提供Hadoop的商用解决方案,主要是包括支持、咨询服务、培训等。
(2)、2009年Hadoop的创始人Doug Cutting也加盟Cloudera公司。Cloudera 产品主要为CDH,Cloudera Manager ,Cloudera Support。
(3)、CDH是Cloudera 的Hadoop发行版本,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。
(4)、Cloudera Manager 是集群的软件分发以及管理监控平台,可以在几个小时内部署好一个Hadoop集群、并且对集群的节点以及服务进行实时监控。Cloudera Support 即是对Hadoop的技术支持。
(5)、Cloudera 的标价为每年每个节点4000美元。Cluodera开发贡献了可实时处理大数据的项目
2018年10月,均为开源平台的Cloudera与Hortonworks公司宣布他们以52亿美元的价格合并。

3 Hortonworks Hadoop
官网地址:https://hortonworks.com/products/data-center/hdp/
下载地址:https://hortonworks.com/downloads#data-platform
(1) 、2011年成立的 Hortonworks 是雅虎与硅谷风投公司 Benchmak Capital合资组建。
(2)、公司成立之初就吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,贡献了Hadoop 80%的代码。
(3)、雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler 出任 Hortonworks 的首席执行官。
(4)、Hortonworks 的主打产品是 Hortonworks Data Platform(HDP),也同样是 100%开源的产品,HDP除了常见的项目外还包括了Ambari,一款开源的安装和管理系统。
(5) HCatalog,一个元数据管理系统,HCatalog 现已集成到Facebook开源的Hive中。

Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取、变形和加载(ETL)方面上的天然优势。Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储,对例如像ETL这样的批处理操作相对合适,因为类似这样操作的批处理结果可以直接走向存储。Hadoop的MapReduce功能实现了将单个任务打碎,并将碎片任务(Map)发送到多个节点上,之后再以单个数据集的形式加载(Reduce)到数据仓库里 。

2.4 Hadoop 的优势

1、高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或者存储出现故障,也不会导致数据的丢失。
2、高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
3、高效性:在 MapReduce 的思想下,Hadoop 是并发工作的,以加快任务处理速度。
4、高容错性:能够自动将失败的任务重新分配。
5、低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低 [4] 。

2.5 Hadoop 组成

Hadoop 1.x 和 Hadoop 2.x 的区别:
Hadoop 1.x 组成:
① Common(辅助工具)
② HDFS(数据存储)
③ MapReduce(计算+资源调度)

Hadoop 2.x 组成:
① Common(辅助工具)
② HDFS(数据存储)
③ Yarn(资源调度)
④ MapReduce(计算)
Hadoop 1.x 和 Hadoop 2.x 区别图:
大数据学习
在Hadoop 1.x 时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源调度,耦合性较大。在Hadoop 2.x 时代下,增加了Yarn。Yarn只负责资源调度,MapReduce只负责运算。

1、HDFS架构概述
NameNode(nn):存储文件的元数据,如文件名字,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表和块所在的DataNode等。
DataNode(dn):在本文件系统存储文件块数据,以及块数据的校验和。
Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

2、YARN架构概述
Resource Manager的作用如下:
(1)、处理客户端的请求
(2)、监控NodeManager
(3)、启动或者监控ApplicationMaster
(4)、资源的分配与调度

NodeManager的作用如下:
(1)、管理单个节点上的资源
(2)、处理来自ResourceManager的命令
(3)、处理来自ApplicationMaster的命令

Application(AM)的作用如下:
(1)、负责数据的切分
(2)、为应用程序申请资源并且分配给内部的任务。
(3)、任务的监控与容错

Container:是YARN中的资源抽象,它封装了某个节点上的多个维度资源,如内存、CPU、磁盘、网络等。

3、MapReduce 架构概述
MapReduce将计算过程分为两个过程:Map和Reduce。
(1)、Map阶段并行处理输入数据。
(2)、Reduce阶段对Map结果进行汇总。

2.6 大数据技术生态体系

数据来源层:数据库(结构化数据)、文件日志(半结构化数据)、视屏,ppt等(非结构数据)

数据传输层:Sqoop数据传递、Flume日志采集、Kafka消息队列

数据存储层: HDFS文件存储、HBase非关系层数据库

资源管理层: YARN资源管理

数据计算层:MapReduce离线计算,Spark Core内存计算,Storm实时计算,Hive数据查询、Mahout数据挖掘,Spark Mlib数据挖掘、Spark R数据分析、Spark sql数据查询,Spark Streaming 实时计算

任务调度层:Oozie任务调度,Azkaban任务调度

资源平台配置和调度:业务模型层,业务模型、数据可视化、业务应用

大数据技术体系框架图:
大数据学习

2.7 推荐系统框架图

大数据学习

本文章属于个人学习笔记,并且从获得的资料所积累写的分享给大家如有错误,请大家多多指教。
文章内容是跟随”尚硅谷“课程里,大数据系列课程中的笔记所写。
尚硅谷学习地址:https://space.bilibili.com/302417610/dynamic
尚硅谷

上一篇:大数据发行版本与云厂商


下一篇:CDH6.2离线安装