zoukankan      html  css  js  c++  java
  • 20211101 文档知识点总结(持续更新)

    先理一下已经学了哪些,不需要重新看视频,直接看文档就好。很多东西了解即可,面试不会问的,我不知道hadoop的优势我就不能工作了吗。

    第一章 hadoop入门

    1.hdfs架构:是一个文件系统,包括

      namenode:用来存文件的名字、权限等元数据的节点

       datanode:存储块数据的节点

            secondaryNamenode:隔一段时间存一下元数据作为备份

    2.Yarn架构:负责管理系统资源 如cpu等,比如一个任务需要分配多少资源。

      ResourceManager:其实我感觉就是项目总监。 首先RM响应客户的请求,然后监控NodeManager的资源情况,根据任务的需要分配一个App Master,你可以理解为派一个小弟去协调(做这个NodeManager的项目经理),你就管这一个NM上面的协调工作。

        NodeManager:跟总监汇报资源情况,接受项目总监和项目经理的命令,说白了你的资源就是为项目服务的。

              AppMaster:项目经理小弟,就负责那一个NM上面的任务协调,需要什么资源拿什么资源。

               Container:你要锤子要斧子,要鸡蛋还是要胡萝卜,要的东西太多,不好描述。直接给你标记个1号麻袋,你要什么都拿麻袋装,到时候把1号麻袋还我就行。

    3.MapReduce架构:是一个分而治之的计算框架,框架说白了就是已经做好了骨架,你来填核心内容。分为:

      Map:说白了就是把很多任务,切分成很多份发给很多机器去执行,来增加速度。

      Reduce:接受很多机器的统计结果,进行一个汇总。比如把每个区的结果汇总在一起才是北京市的统计结果。

    4.大数据生态

     Sqoop:hadoop和hive《---------》关系型数据库,两者间数据的互相导入。

    Flume:日志收集

    kafka:分布式订阅消息系统

    storm:连续计算,以流的形式输出给用户

    spark:基于内存的计算框架

    Flink:也是内存计算框架,用于实时计算

    Oozie:管理hadoop作业的工作流程调度系统

    HBase:分布式、面向列的数据库,适合存储非结构化数据!

    Hive:数据仓库工具,可以将结构化的数据文件映射为数据库表,并提供简单的sql查询功能,本质是将sql转化为mapreduce任务进行运行。优点是学习成本低。

    Zookeeper:针对分布式系统的可靠协调系统,提供功能包括配置维护、名字服务、分布式同步、组服务等。

    5.hadoop搭建:

    这个完全按照文档搭建的分布式,我已经搭建好了,就三台。

    运行下Jps就知道怎么部署的了,hdfs+yarn+mapreduce,不过我没部署zookeeper好像。

     第二章 hdfs

    hdfs适合什么?不适合低延时数据访问;不适合存大量小文件;一次写入,多次读出;不支持文件修改,只支持追加;

    1.hdfs文件块大小(面试重点)

    默认大小hadoop2.x版本是128M,合理的数值设置取决于磁盘传输速率:寻址时间为传输时间的1%。

    2.熟练使用hdfs shell命令

    3.hdfs客户端开发

    (1)hadoop依赖包、设置好hadoop_home和path环境变量----》这里之所以没用Maven是因为还需要加一些winutils。--》这里得以视频为准,不能以文档。

    (2)配置maven:junit、hadoop-client、log4j,强调下是导入hadoop-client,模拟hadoop客户端。

     (3)写hdfs程序,调用hdfs api。 

    套路化的东西。

    4.熟悉hdfs API

    5.hdfs数据流:上传数据其实很简单,客户端发起上传请求,namenode响应同意,然后客户端分片之后上传第一个块,namenode反馈在dn1-3这三个节点上存第一个块,然后客户端向dn1-3建立一条管道,客户端传给dn1,dn1传给dn2,dn2传给dn3。

    读数据更简单,从namenode获取一个文件所有块的存储位置,然后依次从位置获取数据块。

    6.Namenode和SecondaryNameNode

    namenode更新元数据是在内存中,但内存数据断电即失,因此需要备份到磁盘上,但是如果边更新 边备份到FsImage效率就很低。namenode只需要记录客户端最新的一段修改,也就是edits log,这种记录的速度特别快。

    秘书SNN负责把最新的一段修改Editslog,合并到FsImage备份上,就专门做这个事儿因为恨耗时。会定期询问namenode是否合并。

     7.datanode工作机制(567都是面试重点,不过我想先略过,因为我觉得死记没啥用)

    第三章 Mapreduce

    有三种提交job来测试的方式:1.win本地测试  2.打好jar包上传给集群测试  3.本地运行程序,程序中设置好jar包地址自动提交集群

    【今天最大收获是把第三种给跑通了】

    1.主类里面 job.setJar 要设置好jar包位置

    2.run-Edit configurations里面要写对参数

    3.其次metainf要和jar包在同一个目录下

    4.hdfs里面的用户要授权

       

  • 相关阅读:
    list for循环中删除元素
    XMLFeedSpider例子
    myeclipse一直卡在loading workbench解决方法
    代码
    在Github上面搭建Hexo博客(一):部署到Github
    RegEX正则表达式截取字符串
    将后台值传单前台js接收
    C# List<T>泛型用法
    基于jQuery——TreeGrid
    在线编程学习网站
  • 原文地址:https://www.cnblogs.com/gen2122/p/15494907.html
Copyright © 2011-2022 走看看