第十二周总结
1. 大数据概述
1.1 起源
Google在2004年发布的三篇论文:分布式系统GFS,大数据分布式计算框架MapReduce,NoSQL数据库BigTable。 (一个文件系统,一个计算框架,一个数据库系统)
1.2 发展
1.3 应用
大数据处理的主要应用场景包括:数据分析(Hive、Spark SQL),数据挖掘,机器学习(TensorFlow、Mahout、MLib);
大数据+搜索引擎
大数据+数据仓库
大数据+数据挖掘
大数据+机器学习
2. HDFS
2.1 大数据存储需要解决的问题
大文件存储
数据可用性
读写性能
2.2 HDFS系统架构
2.3 文件
文件切成块(默认64M),以块为单位,每个块有多个副本存储在不同的机器上,副本数可在文件生成是指定(默认3)。
2.4 Name Node
存储文件的元数据如文件名、文件目录、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表、块所在的DataNode等等。
2.5 Data Node
在本地文件系统存储文件块数据,以及块数据的校验和可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。
2.6 高可用
一个名字节点和多个数据节点
数据复制(3个副本)
故障检测
数据节点:心跳包、块报告、数据完整性检测
名字节点(日志文件,镜像文件,主从 通过zk选主)
空间回收机制
2.7 如何写文件
2.8 如何读文件
2.9 HDFS应用场景
适用于:
超大文件
流式数据访问(一次写入多次读取)
商用硬件
不适用于:
低延迟的数据访问
大量小文件
多用户随机写入修改文件
3. MapReduce
3.1 为什么需要MapReduce
处理海量数据
分布式计算
移动计算比移动数据更划算
3.2 什么是MapReduce
MapReduce 既是一个编程模型,又是一个计算框架,开发人员必须基于 MapReduce 编程模型进行编程开发,然后将程序通过 MapReduce 计算框架分发到 Hadoop 集群中运行。
MapReduce编程模型由map和reduce两部分程序组成,利用框架在集群上根据需求运行多个程序实例来处理各个子任务,最后进行归并。
3.3 MapReduce过程
4. Yarn
4.1 什么是Yarn
Yarn 是“Yet Another Resource Negotiator”的缩写,字面意思就是“另一种资源调度器”。
在Hadoop1时,把 MapReduce 程序分发到大数据集群的服务器上,主要是通过 TaskTracker 和 JobTracker 通信来完成。服务器集群资源调度管理和 MapReduce 执行过程耦合在一起,如果想在当前集群中运行其他计算任务,比如 Spark 或者 Storm,就无法统一使用集群中的资源了。
Hadoop2将Yarn从MapReduce中分离出来,成为一个独立的资源调度框架。
4.2 Yarn架构
Yarn 包括两个部分:一个是资源管理器(Resource Manager),一个是节点管理器(Node Manager)。
ResourceManager 进程负责整个集群的资源调度管理,通常部署在独立的服务器上;
NodeManager 进程负责具体服务器上的资源和任务管理,在集群的每一台计算服务器上都会启动,基本上跟 HDFS 的 DataNode 进程一起出现。
5. Hive
5.1 hive架构
Hive 能够直接处理输入的 SQL 语句,调用 MapReduce 计算框架完成数据分析操作。
操作符是Hive的最小处理单元
每个操作符代表处理HDFS操作或MR作业
编译器把HiveSQL转换成一组操作符
5.1 hive编译器
6 总结
通常说的大数据技术分为三类:大数据存储,大数据计算,资源调度框架;
根据数据是实时数据还是存量数据分为:大数据离线计算,大数据实时计算;
大数据计算跟普通的应用程序不同,它是移动计算(程序)而不是移动计算;
解决了大数据的储存(数据高可用、读写高性能、横向扩展),分布式计算,和资源调用 等问题,大数据可以用于 搜索引擎、数据仓库、数据挖掘、机器学习等场景。
评论