Hadoop学习笔记:一、认识大数据生态体系

2,233 阅读4分钟

目标

  • 认识大数据
  • 从Hadoop框架来看大数据生态

1 大数据认知

略过概念性的大数据特点、前(钱)景、优势等,直接看点工作实际相关的

1.1 部门业务流程

image-20210306112026164

1.2 部门组织架构

image-20210306112206565

2 Hadoop-->大数据生态

2.1 Hadoop是什么

Hadoop可以说是大数据生态的基石,理解了MapReduce分而治之的思想,对于Hive、Spark、Flink等一系列大数据处理工具的使用会更熟练。就目前来说,广义上的Hadoop通常指一个更广泛的概念--Hadoop生态圈。

  • Hadoop主要解决:海量数据的存储和海量数据的分析计算问题。

2.2 Hadoop的发展

  • 发展历程

    • 2006年--Hadoop1.0
    image-20201015105530287
    • 2012年--Hadoop2.0
    image-20201015105558670
    • 2018年--Hadoop3.0
    image-20201015105645410
  • Hadoop1.x和Hadoop2.x的区别

    image-20210306114728083

2.3 Hadoop优势

  • 高可靠性

    Hadoop底层维护了多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据丢失

  • 高扩展性

    在集群间分配任务数据,可方便的扩展数以千计的节点

  • 高效性

    在MapReduce的思想下,Hadoop是并行工作的,加快任务处理速度

  • 高容错性

    能够自动将失败的任务重新分配

2.4 Hadoop组成

注:暂时初步介绍,后续单独阐述

  • HDFS
    • NameNode:存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
    • DataNode:在本地文件系统存储文件块数据,以及块数据的校验和
    • Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照
  • MapReduce
    • Map阶段:并行处理输入数据
    • Reduce阶段:对Map结果进行汇总
  • Yarn
    • ResourceManager(RM)
      • 处理客户端请求
      • 监控NM
      • 启动或监控AM
      • 资源的分配和调度
    • NodeManager(NM)
      • 管理单个节点上的资源
      • 处理来自RM的命令
      • 处理来自AM的命令
    • ApplicationMaster(AM)
      • 负责数据的切分
      • 为应用程序申请资源并分配内部的任务
      • 任务的监控与容错
    • Container
      • Yarn中的资源抽象,封装了节点上的维度资源:内存、CPU、磁盘、网络等

3 大数据技术生态体系

3.1 生态体系示意图

image-20210306134325110

3.2 相关技术解释

  • Sqoop:主要用在Hadoop、Hive与传统数据库(MySQL)间进行数据的传递,可以将一个关系型数据库的数据导入到Hadoop的HDFS中,也可以将HDFS中的数据导入到关系型数据库中。
  • Flume:是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据,同时Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。
  • Kakfa:是一种高吞吐量的分布式发布订阅消息系统,特点如下:
    • 通过O(1)的磁盘数据结构保证了消息的持久化,这种结构对于数以TB级的消息存储也能够保持长时间的稳定性能。
    • 高吞吐量:即使是非常普通的硬件,Kafka也可以支持每秒数以百万的消息。
    • 支持通过Kafka服务器和消费机集群来区分消息。
    • 支持Hadoop并行数据加载。
  • Flink:是目前使用最多的流处理框架,用于对无界和有界数据流进行有状态计算。
  • Spark:是目前使用最多的大数据内存计算框架,可以基于Hadoop上存储的数据进行计算。
  • Hbase:是一个分布式的、面向列的数据库,适合于非结构化数据存储。
  • Hive:基于Hadoop的一个数仓工具,可以将结构化的数据映射为一张数据库表,提供简单的SQL查询。可以将SQL转换为MapReduce任务来运行,十分适合数仓的统计分析。
  • ZooKeeper:是一个针对大型分布式系统的可靠协调系统,功能有:配置维护、名字服务、分布式同步、组服务等。目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

OK,关于大数据生态体系的相关知识,先有个初步的了解,后续阶段,我会从理论到实践,进行一个全面的总结。

好了,今天就到这里,拜了个拜~