大数据开发入门笔记(一)- 初识大数据

 

 

 

 

 

 

 

 

 

HDFS由一个NameNode和多个DataNode组成。

NameNode作用:

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

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

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

DataNode是文件系统的工作节点,作用:

1、存储并检索数据块。

2、向NameNode更新所存储块的列表

 

所有文件的访问都要通过Name Node来进行,所以Name Node至关重要

Name Node容错机制:

1、第一种方法是把文件元数据写入NFS,备份在另一台机器上。备份操作是同步的原子的

2、第二种方法是运行辅助的Name Node,不过这个Name Node不提供服务,它只是把操作日志Merge到Metadata中,但是如果主Name Node失效,总有一部分数据来不及Merge,会造成数据丢失。所以一般的做法是把NFS中备份的数据拷贝到这个Name Node,并作为主Name Node运行。

 

 

HDFS概念

数据块:数据块是抽象块而非整个文件作为存储单元,一般设置为128M,备份*3

NameNode:主。管理文件系统的命名空间,存放文件元数据 维护着文件系统的所有文件和目录,文件与数据块的映射,记录每个文件中各个块所在数据节点的信息

DataNode:工作节点。存储并检索数据块,向NameNode更新所存储块的列表

 

HDFS的优点和缺点

 

HDFS的优点

 

 

HDFS的缺点

 

 

HDFS的读写流程

 

HDFS的写流程

 

HDFS写流程

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

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

  3. DataNode向NameNode汇报存储完成,NameNode通知客户端。

 

 

 

 

 

HDFS的读流程

 

 

 

 

 

 

 

 

 

HDFS读流程

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

    2.NameNode找出距离最近的DataNode节点信息。

    3.客户端从DataNode分块下载文件。

 

大数据hadoop hdfs面试简单思考题 :

    1. hadoop数据块的大小设置为多少合适为什么?‘

       hadoop数据块的大小一般设置为128M,如果数据块设置的太小,一般的文件也会被分割为多个数据块,在访问的时候需要查找多个数据块的地址,这样的效率很低,而且如果数据块设置太小的话,会消耗更多的NameNode的内存;而如果数据块设置过大的话,对于并行的支持不是太好,而且会涉及系统的其他问题,比如系统重启时,需要从新加载数据,数据块越大,耗费的时间越长。   

    2. hadoop NameNode有哪些容错机制,如果NameNode挂掉了怎么办?

       NameNode容错机制,目前的hadoop2可以为之为HA(高可用)集群,集群里面有两个NameNode的节点,一台为主节点,一台为从节点,两者的数据时刻保持一致,当主节点出现问题时,从节点可以自动切换,用户基本感知不到,这样就避免了NameNode的单点问题。

 

 

Hadoop  MapReduce简介

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

 

MapReduce和YARN的关系

是Hadoop2.0以后的资源管理器,负责整个集群资源的管理和调度,所有的MapReduce程序都要通过YARN来进行调度

(1)ResourceManager

分配和调度资源;启动并监控ApplicaMaster;监控NodeManager

(2)ApplicationMaster

为MapReduce类型的程序申请资源,并分配给内部任务;负责数据的切分;监控任务的执行及容错

(3)NodeManager

管理单个节点的资源;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令

 

NodeManager 管理单个节点的资源;处理来自ResourceManager的命令;处理来自ApplicationMaster的命令

 

 

ApplicationMaster 为MapReduce类型的程序申请资源,并分配给内部任务;负责数据的切分;监控任务的执行及容错

 

 

Node Manager:管理单个节点的资源 处理来自Resource Manager的命令处理来自Application Master的命令

 

 

Map Reduce编程模型:
    输入一个大文件,通过Split之后,将其分为多个分片
    每个文件分片由单独的机器去处理,这就是Map方法
    将各个机器计算的结果进行汇总并得到最终的结果,这就是Reduce方法

 

posted @ 2019-03-21 23:29  萧哥  阅读(765)  评论(0编辑  收藏  举报