hadoop基础(from慕课网)

Hadoop基础

1HDFS分布式文件系统:存储是大数据技术的基础。

数据块:

数据块是抽象而非整个文件作为存储单元。

默认大小为64mb,一般设置为128m,备份*3

NameNode()

管理文件系统的命名空间,存放文件元数据。

维护文件系统的所有文件和目录,文件与数据块的映射。

记录每个文件中各个块所在数据节点的信息。

DataNode()

存储并检索数据块。

NameNode更新所存储块的列表。

HDFS优点:

适合大文件存储,支持TBPB级的数据存储,并有副本策略。

可以构建在廉价的及机器上,并有一定的容错和恢复机制。

支持流式数据访问,一次写入,多次读取最高效。

HDFS缺点:

不适合大量小文件存储。

不适合并发写入,不支持文件随机修改。

不支持随机读等低延时的访问方式。

HDFS写流程

ClientNameNode请求存储,NameNodeClient返回DataNode空闲信息,Client将数据分块,之后将数据和DataNode的某些信息一起存到DataNode-1上,由于数据块要备份,DataNode-1将数据块传送给DataNode-2DataNode-3,之后告诉NameNode已经存储完数据块。

客户端向NameNode发起写数据请求

分块写入DataNode节点,DataNode自动完成副本备份

DataNodeNameNode汇报存储完成,NameNode通知客户端

HDFS读流程:

客户端向NameNode发起读数据请求

NameNode找出距离最近的DataNode节点信息发送给客服端

客户端从DataNode分块下载文件

常用HDFS Shell命令

copyFromLocal:从本地拷贝到HDFS

copyToLocal:从HDFS拷贝到本地

get:下载文件

put:上传文件

实操:

./hdfs dfs -help 查看hdfs操作帮助

2MapReduce编程模型:

分布式计算是大数据应用的解决方案。

MapReduce是一种编程模型,是一种编程方法,是抽象的理论。

YARN:调度MapReduce操作。

ResourceManager

分配和调度资源

启动并监控ApplicationMaster

监控NodeManager

ApplicationMaster

MR类型的程序申请资源,并分配给内部任务

负责数据的切分

监控的任务的执行和容错

NodeManager

管理单个结点的资源

处理来自ResourceManager的命令

处理来自ApplicationMaster的命令

MapReduce编程模型

输入一个大文件,通过Split之后,将其分为多个分片

每个文件分片由单独的机器去处理,这就是map方法

将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法

使用mapreduce计算:

/address/../hadoop   jar  / ... / xxx.jar  -files “xx,xx”  -input  file  -output  file  -mapper  “/address file”  -reducer  “/address file”

原文地址:https://www.cnblogs.com/fxw-learning/p/12345568.html