Hadoop学习(一)
一、Hadoop是什么
1)Hadoop是一个由Apache基金会所开发的分布式系统基础架构
-
分布式系统,一份工作,多个服务器运行
-
基础架构,像spark都是基于hadoop进行的一个存储
2)Hadoop主要解决,海量数据的存储和海量数据的分析计算问题
-
存储是因为,传统的工具存不了这么大的数据
-
计算是因为,传统的计算工具进行不了这么大的计算
3)广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈
- 这个生态圈还包括HBASE、HIVE、ZooKeeper
二、Hadoop发展历史
1)Lucene框架是Doug Cutting开创的开源软件,用Java书写的,实现与Google类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎。
2)2001年年底Lucenne称为Apache基金会的一个子项目
3)对于海量数据的场景,Lucene面对与Google同样的困难,存储数据困难,检索速度慢。
4)学习和模仿Google解决这些问题的办法:微型版Nutch
5)Google是Hadoop的思想之源(Google在大数据方面的三篇论文)
-
GFS >> HDFS
-
MapReduce >> MR
-
BigTable >> HBase
6)2003-2004年,Google公开了部分GFS和MapReduce思想的细节,Doug Cutting用2年实现了DFS和MapReduce机制,使Nutch性能飙升
7)2005年Hadoop被引入Apache基金会
8)2006年3月,MapReduce和NDFS分别被纳入了Hadoop的项目中
三、Hadoop三大发行版本
Hadoop三大发行版本:Apache、Cloudera、Hortonworks
Apache版本最基础,对于入门学习最好
Cloudera在大型互联网企业中用的较多(收费)
Hortonworks文档较好
四、Hadoop的优势
1)高可靠性:Hadoop底层维护了多个数据副本(默认3个副本,即3个备份),即使Hadoop某个计算元素或存储出现故障,也不回导致数据的丢失
2)高扩展:在集群间分配任务数据,可方便的扩展数以千计的节点
3)高效性:在MapReduce的思想下,Hadoop是并行工作的,加快任务处理的速度
4)高容错性:自动将失败的任务重新分配(有很详细的调度机制)
五、Hadoop1.x和Hadoop2.x的区别

- 2.x有了Yarn,专门负责资源调度,功能模块化
五、HDFS架构概述
1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
3)Secondary NameNode(2nn):用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
六、YARN架构概述

1)ResourceManager(RM)主要作用如下
2)NodeManager(NM)主要作用如下
-
管理单个节点上的资源
-
处理来自ReourceManager的命令
-
处理来自于ApplicationMaster的命令
七、MapReduce架构概述
MapReduce将计算过程分为两个阶段:Map和Reduce
1)Map阶段并行处理输入数据
2)Reduce阶段对Map结果进行汇总

八、大数据技术生态体系

九、推荐系统框架图

参考链接: