您的位置:首页 > 大数据

大数据开发基础上笔记

2016-07-31 23:02 190 查看
一、HDFS简介
1.Hadoop2介绍
2.HDFS概述
3.HDFS读写流程
 
1.Hadoop2的介绍
(1)Hadoop2框架的核心设计:HDFS、MapReduce、YARN(使得Hadoop2可以运行更多的框架)、other
(2)Hadoop1:MapReduce、HDFS



(3)Hadoop2主要改进:
            YARN:使Hadoop2可以运行更多种类的框架
            NameNodeHA:master-slave架构中的master,存储于源数据?可以实现HA:activeNameNode挂掉以后,standbyNameNode可以立即搭起并提供服务
            HDFSFederation:Hadoop源数据放于NameNode内存当中,内存限制了整个集群的规模,federation是让多个NameNode组成一个联邦,共同管理NameNode,这样就可以扩大Hadoop1的集群规模
            HadoopRPC序列化扩展性:Hadoop1中RPC序列化扩展性差,很难添加新的数据,把数据类型独立出来作为一个可插拔的模块。
2.HDFS概述
分布式文件系统



(1)主要特性:
            支持超大文件;
            检测和快速应对硬件故障;
            流式数据访问;
            简化一致性模型;
(2)不适合的场景:
            低延迟数据访问;
            大量的小文件;
            多用户写入文件,修改文件
(3)HDFS数据块:Hadoop1中默认HDFS数据块大小是64M,Hadoop2中默认HDFS数据块是128M,以Linux上普通文件 的形式保存在数据节点的文件系统中,数据块是HDFS的文件存储处理的单元。
(4)数据块的好处:
            HDFS可以保存比存储节点单一磁盘大的文件;
            简化了存储子系统,简化了存储管理,也消除了分布式管理文件元数据的复杂性;
            方便容错,有利于数据复制;
3.HDFS的读写流程
            读流程



            写流程



            创建子路径的流程



            删除流程



三.YARN原理
Hadoop2新增的资源管理器
1.   YARN产生背景
2.   YARN基本架构及原理
 
1.   YARN产生背景
(1)   Hadoop1中的MapReduce弊端
扩展性差;
可靠性差;(单点故障)
资源利用率低;(基于槽位的资源划分,mapslot,reduceslot不可共享,浪费资源)
无法支持多种计算框架并存;(基于磁盘的离线计算,但不包括内存计算,流式计算,迭代式计算)
多个计算框架可以:资源利用率高,运维成本低,数据共享



2.   YARN基本框架及原理
(1)   YARN的定义
是一种Hadoop资源管理器,是一种通用资源管理系统,可为上一层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
 


(2)  应用场景

通用的统一的资源管理系统:

长应用程序;长期运行的

短应用程序

(3)  主要组件

ResourceManager:YARN的master

ApplicationMaster:每个作业的重启失败的任务

NodeManager:整个YARN的slave

Container:动态的资源抽象



三.MapReduce的原理介绍

1.MapReduce介绍

2.MapReduce2运行原理

3.shuffle及排序

 

1.    MapReduce介绍

MapReduce是面向大数据并行处理的计算模型、框架和平台。

五个步骤,shuffle是map和Reduce的核心

2.    MapReduce2运行原理






 

3.shuffle及排序

Map,Reduce之间,合并排序等

MapReduce的map端输出作为输入传递给reduce端,并按键排序的过程称为shuffle。

Prtition分区



 

mapreduce的编程

mapclass;

reduceclass;

main:

创建configuration的实例

创建Map Reduce的job实例

设置输入路径:FileInputFormat.addInputPath()

设置一个HDFS上没有的子路径:FileOutputFormat.setOutputPath()

设置mapclass

设置reduceclass

设置reduce的个数:setNumReduceTasks();

设置map的key/value的类型

设置输出的key/value的类型

设置job的jar包:setJarByClass()

设置提交:setForCompletion(true)

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Hadoop HDFS 大数据