Hadoop自学笔记

互联网项目的不断实施扩展壮大,数据资源肯定是越来越丰富的。

大数据技术 ,我觉得在3-5年后会是一个常态技能。

要实施大数据技术,数据源是一个基石。

下面是自学Hadoop的一个总结:

Hadoop是一个开源的大数据框架

Hadoop是一个分布式计算的解决方案
Hadoop=HDFS分布式文件系统+MapReduce分布式计算解决方案
HDFS 分布式文件系统:存储是大数据技术的基础
MapReduce编程模型:分布式大数据应用的解决方案

HDFS 
数据块 数据块是抽象块而非整个文件作为存储单元
默认大小为64MB,一般设置为128M,备份X3
一个NameNode:主节点、备节点
管理文件系统的命名空间,存放文件元数据
维护着文件系统的所有文件和目录,文件与数据块的映射,
记录每个文件中各个块所在的数据节点的信息
多个DataNode:
存储并检索数据库,向NameNode更新所存储块的列表
写流程:
客户端向NameNode发起写请求,
数据分块写入DataNode节点,DataNode自动完成副本备份
DataNode向NameNode汇报存储完成,NameNode通知客户端
读流程:
客户端向NameNode发起读数据请求
NameNode找出距离最近的DataNode节点信息
客户端从DataNode分块下载文件

MapReduce
是一种编程模型,是一种编程方法的抽象理论
YARN概念 Hadoop2.0资源管理器
ResourceManager
分配和调度资源,启动并监控ApplicationMaster,监控NodeManager
ApplicationMaster
为MR类型的程序申请资源,并分配给内部任务,负责数据的切分,监控任务的执行及容错。
NodeManager
管理单个节点的资源,处理来自ResourceManager的命令,处理来自ApplicationMaster的命令。
MapReduce编程模型 - 分而治之
输入一个大文件,通过Split之后,将其分成多个分片
每个文件分片由单独的机器去处理,这就是Map的方法
将各个机器的计算的结果进行汇总并得到最终的结果,这就是Reduce方法。

HBase
分布式数据库
利用HDFS作为其文件存储系统 ,支持MapReduce程序读取数据
存储非结构化和半结构化的数据 当然也支持结构化数据
RowKey:数据唯一标识,主键,按字典排序
Cloumn Family:列族,多个列的集合,最多不用超过3个
TimeStamp时间戳:支持多版本数据同时存在

你可能感兴趣的:(大数据,Hadoop)