Week 12 学习总结
一、大数据技术介绍
1、大数据技术的起源
1)技术背景:Google的搜索引擎需要处理海量的数据
2)大数据“三驾马车”
a. 分布式文件系统GFS--文件系统
b. 大数据分布式计算框架MapReduce--计算框架
c. NoSQL数据库系统BigTable--数据库系统
2、大数据技术体系

3、大数据技术的应用历史
1)大数据应用的搜索引擎时代
2)大数据应用的数据仓库时代
3)大数据应用的数据挖掘时代
4)大数据应用的机器学习时代
4、大数据技术的应用领域
1)医学影像智能识别
2)病历大数据智能诊疗
3)AI外语老师
4)智能解题
5)舆情监控与分析
6)大数据风控
7)新零售
8)无人驾驶
二、大数据存储之HDFS介绍
1、面临的问题
1)如何存储一个大文件?
2)如何快速访问一个大文件?
3)如何保证文件的高可用(损坏了怎么办)?
2、HDFS设计
1)系统架构


2)不适合HDFS的场景
a. 低延迟的数据访问
b. 大量小文件
-> 超过NameNode的处理能力
c. 多用户随机写入修改文件
3、如何存储一个大文件
1)文件切分成块,以块为单位,存储在多台机器上
2)NameNode:构建一个集群环境下的文件系统。管理文件名、文件目录结构、文件属性等,记录文件的存储位置(所在DataNode)
3)DataNode:存储文件块。启动后向NameNode注册,注册通过后会周期性的向NameNode上报所有的块信息;启动后也会定时向NameNode发送心跳检测。
4、如何保证系统的高可用以及存储文件的高可用
1)需要解决的问题
a. DataNode中的磁盘挂了怎么办?
b. DataNode所在的机器挂了怎么办?
c. NameNode挂了怎么办?
d. Client挂了怎么办?
2)DataNode中的磁盘 or 所在机器挂了怎么办
a. 数据复制(冗余机制):机架感知策略 b. 故障检测 c. 心跳报告
3)NameNode挂了怎么办
4)Client挂了怎么办
5)高可用下的写文件流程


6)高可用下的读文件流程

三、大数据计算之MapReduce介绍
1、需要解决的问题
1)处理海量数据
2)利用大量CPU实行并行处理--分布式计算
2、MapReduce设计
1)MapReduce1整体架构

2)MapReduce的框架设计
a. InputFormat
b. FileInputFormat
c. OutputFormat
d. Partitioner
e. 任务调度方法
f. JobTracker实现
g. JobTracker容错
h. TaskTRacker容错
i. Task容错
j. Record容错
3、MapReduce处理过程



4、MapReduce编程
1)继承Mapper&Reduce,实现对应的方法
2)抓住的核心点:关注Mapper&Reduce的输入和输出。数据从哪里来?数据代表什么意思?
四、大数据技术--Yarn的介绍
1、Yarn的诞生
1)是什么?
a. 集群资源调度管理系统
b. 通用的运行时框架,可以基于其编写自己的计算框架,而不限于使用MapReduce计算框架
2)为什么会诞生 or Hadoop1中的MapReduce架构面临的问题?
a. 集群资源调度管理与MapReduce执行过程耦合严重,不利于集成其他的计算框架,如Spark、Storm
2、Yarn的设计
1)核心思想
a. 将原来的MapReduce中的JobTracker的两个主要功能:资源管理+作业管理 拆分成两个独立的进程
b. 资源管理+作业管理 对应两个组件,ResourceManager+ApplicationMaster
c. ApplicationMaster对应一个单独的MapReduce作业或者DAG作业
2)整体架构

3)系统主要角色
a. 资源管理器 ResourceManager:负责整个集群的资源调度管理
-> 调度器:根据应用程序提交的任务,进行资源分配,本质上是一个资源分配算法
-> 应用程序管理器:负责应用程序的提交和运行状态的监控
b. 节点管理器 NodeManager:负责具体服务器上的资源和任务管理,会在每一台服务器上启动,基本会和HDFS的DataNode进程一起出现
4)工作流程
五、大数据技术--Hive的介绍
1、Hive的诞生
自己写一套MapReduce程序本身比较麻烦?有没有更简单的方式?将一个SQL翻译成/转换成MapReduce程序--Hive
2、Hive架构


3、Hive执行流程


评论