一、概念
1、Hadoop是什么
Hadoop是由一个Apache基金会所开发的分布式基础架构,Hadoop是一个生态圈
2、主要解决的问题
1、海量数据的存储
2、海量数据的分析计算
3、Hadoop是一个生态圈
2、Hadoop的发展历史
1、Hadoop的创始人:Doug Cutting
2、创始人想要实现类似Google类似的全文搜索功能,在Lucene框架上优化
3、Google的三篇论文
GFS----> HDFS
Map-Reduce --->MR
BigTable ---> HBase
3、Hadoop的三大发行版本
1、Apache版本(免费开源)2006
2、Cloudera内部集成很多大数据框架,对应产品CDH,2011年Hadoop的创始人Doug Cutting
3、Hortonworks文档写的好,产品HDP 2011
4、Cloudera收购了Hortonworks公司,推出CDP,开始收费之旅 基本版每台机器10000$
4、Hadoop的优势
1、高可靠性:Hadoop使用多副本机制,所以当某个机器坏了,也没事
2、高拓展型:在集群中分配任务数据,可方便的拓展新的节点。
例如:618,双11可以动态的增加机器
3、高效性:MR思想下,Hadoop是并行计算的。多台机器一起干活
4、高容错性:能够将失败的任务进行重新分配,保证程序的正常运行
5、Hadoop的组成
1、Hadoop1.x的组成
Common (辅助工具类啥的)
HDFS(数据存储)
MapReduce(计算+资源调度:管理CPU资源和内存资源)
2、Hadoop2.x
Common (辅助工具类啥的)
HDFS(数据存储)
MapReduce(计算)
yarn (资源调度:管理CPU资源和内存资源)
3、Hadoop3.x在组成方面与2.x没有区别
6、Hadoop的核心组件概述
1、HDFS:Hadoop Distribute File System,分布式文件系统
1、NameNode(NN):保存数据存储的位置,知道数据保存在个机器上。 (老板)
存储文件的元数据信息(文件名,文件目录结构,文件的属性)文件的属性(生成时间,副本数,文件的权限)
文件的块列表,块所在的DataNode等 2、DataNode(DN):具体数据的存储地方。(工人)
本地文件系统存储文件块数据 块数据的校验和(保证数据的正确性,完整性)
3、SecondaryNameNode(2NN):帮助老板干活的。(秘书) 每隔一段时间对NameNode元数据的备份
2、Yarn的架构概述
1、ResourceManage(RM):资源管理器,管理整个集群的(CPU,内存等)资源(整个集群资源的老大)
2、NodeManger(NM):管理单个服务器资源的老大
3、ApplicationMaster(AM):单个任务运行的老大
4、Container:容器,相当于一台独立的服务器中封装了任务所运行的所需的资源(CPU资源,I/O资源等)
3、MapReduce架构概述
1、MapReduce概述
MapReduce是Hadoop中面向大数据并行处理的计算模型、框架和平台。MapReduce用于海量数据的并行计算,它采用“分而治之”的思想,把大规模数据集的操作分发到多个机器去共同完成,然后对各个节点的中间结果进行整合后得到最终的结果。
2、MapReduce的核心思想
当启动一个MapReduce任务时,作业会将输入的数据集切分成若干独立的数据块,由Map端将数据映射成需要的键值对类型,然后对Map的输出进行排序,再把结果输入Reduce端;Reduce端接收Map端传过来的键值对类型的数据,根据不同键分组,对每一组键相同的数据进行处理,得到新的键值对并输出,这就是MapReduce的核心思想。
3、MapReduce编程模型
MapReduce是一种编程模型,它由Map和Reduce两个阶段组成。Map表示“映射”,由一定数量的Map
Task组成;Reduce表示“归约”,由一定数量的Reduce Task组成。
7、大数据的生态体
1、生态体系图
2、大数据生态体系图的解读
1、数据来源层
数据分为三种数据:结构化数据,半结构化数据,非结构化数据
结构化数据:比如csv格式的数据,存在传统的关系型数据库中的数据基本上都是结构化数据。 半结构化据:比如
josn数据以及服务器,传感器产生的日志数据都是半结构化数据。
非结构化数据:图片,音乐,视频,这种单个文件不可分开的,或者分开了对文件本身有巨大影响的数据,影响打开、运行的都可称为非结构化数据。
2、数据传输层
Sqoop数据传递:主要用于结构化数据直接的互相导入。比如:mysql 到oracle。mysql 到 hive ,再或者 hive 到mysql。
Flume:主要就是采集一些日志文件 Kafaka消息队列:主要采集一些非结构化数据,当然也可以采集其他的数据。
3、数据存储层
数据保存的地方
4、资源管理层
主要就是通过YARN对集群资源的调度。
5、数据计算、处理层
对数据存储层的数据通过一系列的计算框架,实现对数据的加工计算处理,提供给业务模型层使用。
6、任务调度层
主要有Oozie任务调度,Azkaban任务调度,以及管理Hadoop生态圈各个框架的管理工具 Zookeeper。
7、业务模型层
使用数据计算,处理层的数据,来实现相应的功能,或者效果。