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) - 博客园

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文主要总结了Linux基础及Spark和Hadoop的安装和配置实验的经验和感悟。 1. Linux基础 在Linux基础实验中,我们学习了Linux的基本命令、文件系统、文件权限和用户管理等知识。这是Linux系统管理员的基本技能,也是大数据工程师必备的基础知识。 在实验过程中,我深刻体会到了Linux系统的强大和灵活性。Linux系统提供了丰富的命令和工具,可以轻松地进行系统管理、文件操作和网络通信等操作。同时,Linux系统的文件系统和文件权限非常严格,可以有效地保护系统安全和数据安全。因此,在日常工作中,我们要熟练掌握Linux系统,正确使用Linux命令,保证系统安全和稳定运行。 2. Spark和Hadoop的安装和配置 在Spark和Hadoop的安装和配置实验中,我们学习了大数据平台的基本组件和架构,并实践了Spark和Hadoop的安装和配置过程。这是大数据工程师必备的技能,也是大数据应用开发的基础。 在实验过程中,我遇到了许多问题和挑战,例如环境配置、组件版本兼容性、集群设置和调试等。经过不断地尝试和调试,我逐步掌握了Spark和Hadoop的架构和工作原理,熟悉了它们的配置和使用方法。同时,我意识到了大数据平台的复杂性和多样性,需要不断学习和实践,才能掌握大数据技术的核心。 总结一下,Linux基础和Spark、Hadoop的安装和配置是大数据工程师必备的基础知识,需要我们不断学习和实践。在实验过程中,我们要注意细节、坚持不懈,不断提升自己的能力和技能,才能成为一名优秀的大数据工程师。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值