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


    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方法

  • 相关阅读:
    C++调试帮助
    C++中的前置(后置)++与--
    C++11 使用using定义类型别名
    C++11 尾置返回类型
    [BUUCTF]PWN——pwnable_hacknote
    [BUUCTF]PWN——ciscn_2019_es_7[详解]
    [BUUCTF]PWN——mrctf2020_easyoverflow
    [BUUCTF]PWN——wustctf2020_closed
    [BUUCTF]PWN——0ctf_2017_babyheap
    [BUUCTF]PWN——ciscn_2019_s_4
  • 原文地址:https://www.cnblogs.com/tocode/p/10575577.html
Copyright © 2020-2023  润新知