一、概述
1.1什么是大数据?
专业的解释是4V,即Volume(数量)、Variety(多样性、复杂性)、Value(基于高度分析的新价值)、velocity(速度)。
1.2大数据带来的技术变革
1.计算瓶颈、2.存储瓶颈、3.数据库瓶颈
1.3大数据公司现存的模式
1.有大数据,但不会利用的(电信,金融,医疗行业)。2.没有数据,但是知道如何帮助有数据的人利用数据的。3.既有数据,又有大数据处理能力的(BAT)
二、Hadoop概述
2.1什么是Hadoop
一个分布式系统基础架构,由apache基金会开发,用户可以在不了分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。
2.2组成结构
HDFS、YARN、MAPREDUCE、Common
2.3为什么选择hadoop作为大数据平台的解决方案?
1.源码开源。2.社区活跃,参与者很多。3.涉及到分布式存储的方方面面。4.已经得到了业界的验证。
三、HDFS
3.1概述
一个文件会被拆分成多个Block,一个blocksize:128M
NN:
1.负责客户端请求的响应
2.负责元数据(文件的名称,副本系数,block存放的DN)的管理
DN:
1.存储用户的文件对应的数据块(block)
2.要定期向NN发送心跳信息,汇报本身及其所有的block信息,健康状况。
3.2环境搭建
1.使用hadoop-2.6.0-cdh5.7.0
2.jdk环境搭建、3.Linux环境配置(ssh、hostname、ip跟hsotname的映射关系)
4、hadoop-env.sh、core-site.xml、hdfs-site.xml三个配置文件的修改。
四、MapReduce分布式计算框架
缺点:
实时计算、流式计算、DAG计算(A—>B—>C,B跟C都依赖于A的计算结果)
优点(相对的):
易于编程、良好的扩展性、高容错性、海量数据的离线处理。
五、YARN
5.1架构
1个RM(ResourceManager)+ N个NM(NodeManager)
5.2RM的职责:
一个集群活跃的RM只有一个(可以集群,但是活跃的Rm只能有一个,只有当前活跃的Rm挂了的时候,备用的Rm才能被启用),负责整个集群的资源管理和调度
1.处理客户端的请求(启动/杀死)
2.启动/监控ApplicationMaster(一个作业对应一个AM)
3.通过心跳监控NM
4.系统的资源分配和调度
5.3NM
这个集群有N个,负责单个节点的资源管理和使用以及task 的运行情况
1.定期向RM汇报本节点的资源使用请求和各个Container的运行状态。
2.接受并梳理RM的container启停的各种指令
3.单个节点的资源管理和任务管理
5.4ApplicationMaster
每一个应用/作业对应一个,负责应用程序的管理
1.数据切分
2.为应用程序向RM申请(container),并分配给内部任务。
3.与NM通信以启停task,task是运行在container中的
4.task的监控和容错。
5.5Container
对任务运行情况的描述:CPU、memory、环境变量
5.6资源调度框架YARN流程
(1)用户向YARN提交作业
(2)Rm为该作业分配第一个container(AM)
(3)Rm会与对应的NM通信,要求NM在这个container上启动应用程序的AM
(4)Am首先向RM注册(用户可以通过RM观察作业的运行情况),然后AM将为各个任务申请资源,并监控运行情况。
(5)Am采用轮询的方式通过RPC协议向Rm申请和领取资源
(6)Am申请到资源以后,便和相应的NM通信,要求NM启动任务
(7)NM启动我们的作业对应的task
六、HIVE大数据数据仓库
作用:使用sql完成大数据相关统计,分析操作
6.1什么是Hive
1.由facebook开源,最初用于解决海量结构化的日志数据统计问题
2.构建在hadoop之上的数据仓库
3.Hive定义了一种类 sql查询语言:HQL(与sql很像但不完全相同)。
4.通常用于进行离线数据处理(采用Mapreduce)
5.底层支持多种不同过的执行引擎
6.支持多种不同的压缩格式,存储格式以及自定义函数。