《尚硅谷大数据Hadoop》教程

尚硅谷大数据Hadoop教程

  • 概论
  • 入门
  • HDFS
  • MapReduce
  • YARN

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

概论

  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的组成
    《尚硅谷大数据Hadoop》教程_第1张图片

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

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

  6. HDFS写流程

  7. HDFS读数据流程
    《尚硅谷大数据Hadoop》教程_第2张图片

  8. NN和2NN的工作机制

  9. DN工作机制
    《尚硅谷大数据Hadoop》教程_第3张图片
    和NN之间的通讯有点像redis集群里面的主节点与从节点之间的关系。NN是主节点,DN是从节点。

MapReduce

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

  2. 核心编程思想

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

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

  2. 原理
    《尚硅谷大数据Hadoop》教程_第4张图片
    在shuffle阶段进行排序、压缩、分区、合并。
    InputFormat可以决定如何处理输入数据,比如说按行,指定KV。
    数据切片:逻辑上讲数据切片,但是物理上不会进行切片,一个数据切片对应一个MapTask


《尚硅谷大数据Hadoop》教程_第5张图片

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

你可能感兴趣的:(零散知识,书籍,课程笔记,hadoop,大数据,hdfs)