• 尚硅谷大数据Hadoop教程


    由于对这方面的知识只是做一个了解,所以详细的东西并不会做笔记。

    概论

    1. 大数据的特点
      海量、高速、多样、低价值密度

    入门

    1. 概念
      Apache基金会所开发的分布式系统基础架构。主要解决海量数据的存储和海量数据的分析计算问题。广义上说,Hadoop通常指一个更广泛的概念—Hadoop生态圈。

    2. Hadoop优势
      高可用性、高扩展性、高效性、高容错性

    3. Hadoop组成
      Hadoop1.x:Common(辅助工具)、HDFS(数据存储)、MapReduce(计算+资源调度)
      Hadoop2.x:Common(辅助工具)、HDFS(数据存储)、MapReduce(计算)、Yarn(资源调度)
      Hadoop3.x:组成没变

    4. HDFS:Hadoop Distribute File System。
      NameNode(nn):存储文件的元数据
      DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和
      Secondary Namenode(2nn):每隔一段时间对NameNode元数据备份

    5. YARN:Yet Another Resource Negotiator:另一种资源协调者
      管理CPU和内存。
      Resource Manager(RM):整个集群资源的老大
      Node Manager(NM):单个节点服务器资源的老大
      Application Master(AM):单个任务运行的老大
      Container:容器,相当于一台独立的服务器,里面封装了任务运行所需要的资源,如内存、CPU、磁盘、网络

    6. MapReduce
      Map:并行处理输入数据
      Reduce:对Map结果进行汇总

    7. 大数据技术生态体系
      数据层:数据库(结构化数据)、文件日志(半结构化数据)、视频等(非结构化数据)
      数据传输、存储层:Kafka、HDFS、HBase
      资源管理层:YARN
      数据计算层:Hive、Spark、Flink、Storm
      任务调度层:Oozie、Azkaban
      ZooKeeper:数据平台配置和调度
      业务层

    8. 集群配置
      NameNode和SecondaryNameNpde不要安装在同一台服务器
      ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上

    9. 常用端口号
      HDFS NameNode 内部通讯端口:8020/9000/9820
      HDFS NameNode 对用户的查询端口:9870
      Yarn查看任务运行情况:8088
      历史服务器:19888

    10. 其他有用的操作
      集群时间同步、集群同步脚本sync,scp

    HDFS

    1. 产生背景:解决海量数据存储的问题。通过目录树的方式来定位文件;其次,他是分布式的。HDFS适合一次写入,多次读出的场景

    2. 优缺点:
      优点:高容错性,适合处理大数据、可构建在廉价机器上
      缺点:不适合低延时数据访问、无法高效的对大量小文件进行存储、不支持并发写入、文件随机修改

    3. HDFS的组成
      在这里插入图片描述

    4. HDFS文件块大小
      可以配置,通常为128M。寻址时间为传输时间的1%时为最佳状态。
      为什么块不能设置为太大,也不能设置太小?太小,增加寻址时间。太大,传输时间太久。

    5. HDFS相关命令
      主要是上传下载文件等文件操作,具体命令略。
      HDFS相关Java API,这个查文档就能查到。

    6. HDFS写流程
      在这里插入图片描述

    7. HDFS读数据流程
      在这里插入图片描述

    8. NN和2NN的工作机制
      在这里插入图片描述

    9. DN工作机制
      在这里插入图片描述
      和NN之间的通讯有点像redis集群里面的主节点与从节点之间的关系。NN是主节点,DN是从节点。

    MapReduce

    1. 定义
      MapReduce是一个分布式运算程序框架,使用户”基于Hadoop的数据分析应用“的核心框架
      优点:易于编程(因为他是一个框架)、良好扩展性、高容错性、适合海量数据计算(TB/PB级)
      缺点:不擅长实时计算、不擅长流式计算、不擅长有向无环图计算

    2. 核心编程思想
      在这里插入图片描述

    主要是分成两个阶段,即Map和Reduce。

    1. 序列化
      将一个服务器内存中的数据传输到另一台服务器的内存,这个过程会用到序列化反序列化。

    2. 原理
      在这里插入图片描述
      在shuffle阶段进行排序、压缩、分区、合并。
      InputFormat可以决定如何处理输入数据,比如说按行,指定KV。
      数据切片:逻辑上讲数据切片,但是物理上不会进行切片,一个数据切片对应一个MapTask

    在这里插入图片描述
    在这里插入图片描述

    MapTask阶段:Read、Map、Collect、溢写、Merge
    Reduce阶段:Copy、Sort、Reduce

    1. ETL
      Extract-Transform-Load:数据清洗的三个阶段

    YARN

    如何管理集群资源?如何给任务合理分配资源?

    1. 概念
      YARN是一个资源调度平台,负责为运行程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的程序。

    2. 基础架构 在这里插入图片描述

    3. 工作机制
      在这里插入图片描述

    4. YARN常用命令
      查看任务:yarn application -list
      查看日志:yarn logs -applicationId
      查看容器:yarn container -list
      查看节点:yarn node -list

  • 相关阅读:
    电子统计台账:设置能自动合并数据的垂直过滤模板
    自动补全、
    R语言高级数据管理
    web网页大作业:基于html设计与实现的茶文化网站12页(带psd)
    【JVM内存区域及创建对象的过程】
    vue2中,vue-easytable组件的使用(三)——实现表格的虚拟滚动功能
    贪心算法part2 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II
    辉芒微IO单片机FT60F210-URT
    模块及模块管理(原理篇)
    对xgboost进行可视化,解决中文乱码问题
  • 原文地址:https://blog.csdn.net/weixin_42065178/article/details/127560476