day28-s-hadoop
day28-s-hadoop
hadoop
hadoop是一个由Apache基金会开发的 分布式系统基础架构
主要解决:海量数据的存储和海量数据的分析计算问题
广义上来说:hadoop通常指一个更广泛的概念--hadoop生态圈
需要掌握的:
hadoop hdfs
hadoop mapReduce
hadoop Common
Zookeeper
hive
oozie
hbase
hadoop发展历史
1 Lucene框架是Doug Cutting开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,他提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎。
2 2001年年底Lucene成为Apache基金会的一个子项目
3 对于海量数据的场景,Lucene面对与Google同样的困难,存取数据困难,检索数据慢
4 学习和模仿Google解决这些问题的颁发:微型版Nutch
5 Google在大数据方面的三篇论文:
GFS --- HDFS
Map-Reduce --- MapReduce
BigTable --- HBase
6 2006年3月份,Map-Reduce和Nuth Distributed File System(NDFS)分别被纳入到Hadoop项目种,Hadoop就此正式诞生,标志着大数据时代来临。
hadoop三大发行版本
Apache、Cloudera、Hortonworks
Apache 版本最原始(最基础)的版本,对于入门学习最好
Cloudera 内部集成了很多大数据框架。对应产品CDH
Hortonworks 文档较好。对应产品HDP
hadoop的优势(4高)
- 高可靠性
- Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失
- 高扩展性
- 在集群间分配任务数据,可方便的扩展数以千计的节点
- 高效性
- 在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度
- 高容错性
- 能够自动将失败的任务重新分配
hadoop组成(面试重点)
hadoop1.x和hadoop2.x和hadoop3.x区别

在hadoop1.x时代,hadoop种的mapreduce同时处理逻辑运算和资源调度,耦合性较大,在hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算。
HDFS架构概述
HDFS(Hadoop Distributed File System)的架构概述
- NameNode(nn)
存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataDode等
通过元数据去找到具体的文件(DataNode)
- DataNode(dn)
在本地文件系统存储文件块数据,以及块数据的校验和。
校验和:对数据的检查的校验值,检查数据是否损坏
默认是128M
- SecondNameNode
帮助NameNode分担工作
HDFS的架构:
NameNode(nn):是HDFS的大哥,管理和存储所有真实数据的元数据信息(文件名、文件大小、创建时间等)
DataNode(dn):是HDFS的小弟,存储真实的数据,以块为单位
默认的块大小是128M,比如一个2000M的文件,存储到HDFS后,有两块:128M 72M
Secondary NameNode(2nn):是NameNode的秘书,辅助NameNode干活,分担NameNode工作,减轻NameNOde的压力
YARN
资源调度
考虑内存
Resource Manager :YARN 的大哥,整个集群的所有资源
Node Manger :管理的是所在机器的资源
Resource Manager任务:
处理客户端请求
监控NodeManager
启动或监控ApplicationMaster
资源的分配与调度
NodeManger主要作用:
管理单个节点上的资源
处理来自ResoureManager的命令
处理来自ApplicationMaster的命令
ApplicationMaster 作用:
负责数的切分
为应用程序申请资源并分配给内部的任务
任务的监控与容错
Container
Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等

YARN架构
ResourceManager(rm):是YARN的大哥,管理和分配集群中所有的资源(来自每个机器的资源)
NodeManager(nm):是yarn的小弟。管理所在机器的资源,(但只能听从大哥的指令才能去分配资源)
ApplicationMaster(am):每个job都对应一个ApplicationMaster,主要负责Job的执行过程(资源申请、监控、容错)
Container:对资源的抽象封装,防止资源被侵占
理解:
ResourceManager(项目总监):管理公司中所有的开发人员
NodeManager:
ApplicationMaster(项目经理):管理某个项目的开发人员
<-- (申请开发人员)申请资源
接了个项目(job)-->ResourceManager --(分配负责人)启动--> ApplicationMaster(负责当前的项目(job)) -把控项目-> 项目骑电动,进行开发
MapReduce架构
MapReduce将计算过程分为两个过程:Map(分)和Reduce(和)
1 Map阶段并行处理输入数据
2 Reduce阶段对Map结果进行汇总

MapReduce思想
Map(分):将数据分到多台机器进行计算
Reduce(和):将多台机器中运算的结果同一汇总
大数据技术生态体系

大数据分析过程:


浙公网安备 33010602011771号