• Hadoop基础学习总计


    申明:

    仅用于学习记录,参考资料在文末,若侵权,请联系我。

    接下来我将从以下几个方面对Hadoop进行学习记录:

    • 是什么?
    • 如何使用?
    • 与其他的区别?

    • 是什么?

    Hadoop就是存储海量数据和分析海量数据的工具。

    Hadoop具有以下特点:

    • Hadoop由java语言编写
    • Hadoop通过在分布式集群上存储海量数据,并运行分布式应用的开源框架
    • Hadoop主要由HDFSMapReduce作为核心组件组成。其中HDFS用于存储数据,MapReduce用户计算数据

    注意:

         HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。其中:

    NameNode通过心跳机制来检测DataNode是否还存在;

          MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。

    • 解决了什么问题?

    大数据存储:分布式存储

    日志处理:擅长日志分析

    机器学习: 比如Apache Mahout项目

    搜索引擎:Hadoop + lucene实现

    数据挖掘:目前比较流行的广告推荐,个性化广告推荐

     简而言之,涉及到大数据的存储与分析可以考虑使用Hadoop。

    ---------------------------------------------------------------------------------------------------------------------------------

    • 了解核心组件
      • HDFS
        • 是什么?
          • NameNode[2]-管理者
            • 管理HDFS的名称空间【命名空间(NameSpace):例如打开文件系统,关闭文件系统,重名名文件或者目录等】

    • 负责确定指定的文件块到具体的DataNode节点的映射关系。这个是显示生活中的管理者分配工作流程一样,来活了了,首先给到管理者(NomeNode),NameNode根据一些列算法规则将新的任务分配给干活的,活很多啊,肯定得记录一下。
    • 管理DataNode节点的状态报告,如DataNode的健康状况报告合其所在节点上数据块状态报告,以便能够及时处理失效数据节点

    • SecondaryNode[3]-副手
      • 主要用于帮助NameNode合并edits日志和fimage,当然也可以做数据备份。
    • DataNode-实际的干活仔
      • 存储数据

    • HDFS读写?

         文件按照数据块的方式存储在DataNode上,数据块是存储和传输单元,是抽象的,是属于文件的部分。文件块的大小不定。文件块大小的划分规则是什么?一般情况下,划分多大?

    • HDFS读

    问题:

        3步骤中,DataNode开始发送数据(从磁盘里面读取数据放入流,以packet为单位来做校验),这里的放入流是什么流?

    • HDFS写

    问题:

    在步骤5中,这里说的第一个第二个DataNode,是需要存储某一个block的节点?——是的,是针对于某一个block而言

    • MapReduce
      • 什么是MapReduce?

          是一种编程模式,采用分而治之的思想。MapReduce主要由Map和Reduce两部分组成。

         Map:就是每个文件分片由单独的机器去处理。——分

         Reduce:将各个机器计算的结果汇总并得到最终的结果。——合

    • MapReduce的工作流程是什么?

    小结:

    HDFS遵循主从结构

    • NameNode的作用是主节点?

          可以看做是主节点,主要接收客户端的读写服务,为了完成这一服务,延伸出许多其他的功能,比如:可以管理命名空间,负责指定文件块到DataNode之间的映射关系,DataNode的健康状态等等

    • NameNode是HDFS运行的管理者,管理什么呢?

          主要接收HDFS的客户端的读写服务,其他都是为了能满足这一主要的功能所能具备的能力。

    •  如果NameNode挂了,会导致什么问题?怎么办?

            如果NameNode挂了,会导致存储停止服务,无法为客户端提供数据读写服务,基于NameNode的计算等也无法完成。

          Hadoop可以配置成高可用集群(HA[4]: High Availability),集群中有两个NameNode节点,一台Active主节点,另一台standby备用节点,两者数据保持一致。当主节点不可用时,备用节点马上自动切换,用户感知不到,避免了NameNode的单点问题。<若是在切换的过程中正好有数据,是不是可能出现数据丢失的情况出现???>

    •  SecondaryNameNode的作用是什么?

    副手,辅助NameNode,分担NameNode的工作,可辅助回复NameNode。

    • DataNode的作用?

          干活人,DataNode是实际存放数据的节点,执行数据块的读写并汇报存储信息给NameNode。NameNode通过心跳机制检测DataNode是否存在。

    • 数据的备份机制是什么样的?备份的个数与DataNode的个数有关吗?

    后续问题:

    • 如何使用?
    • 同类型的工具有哪些?各自的优缺点是什么?
    • 适合什么场景?

    参考:

    Hadoop到底是干什么用的? - 知乎

    图解: HDFS-NameNode作用_大数据面试宝典的博客-CSDN博客_hdfs namenode的作用

    HDFS的NameNode功能_里约大冒险的博客-CSDN博客_namenode的主要功能

    Namenode HA原理详解 - 南国故人(Wall) - 博客园

  • 相关阅读:
    解释器模式 行为型模式之五
    监督学习和无监督学习概念
    计算机毕业论文java毕业设计选题基于springboot幼儿园管理系统
    飞天使-pt-online-schema-change 添加索引方法,不锁表
    串口通信遇到的一个问题。
    MySQL数值函数
    数据库系列:MySQL不同操作分别用什么锁?
    【Spark】计算LSH引入新jar包-LinkedInAttic ScANNS
    贪心算法(基础题)
    【uni】 编辑后返回原来页面,数据也改变,还跳到原来的位置
  • 原文地址:https://blog.csdn.net/qq_39059714/article/details/126960979