vlambda博客
学习文章列表

从零开始的Hadoop(一):起于Hadoop的大数据

回顾一下过去自己学习的知识点,同时也希望能对你的学习之路有所借鉴。

1. Hadoop 概述

1.1 关于大数据

大数据主要解决的是海量数据的存储与计算问题,具有如下特征:

  • 容量大(Volume):数据量大

  • 种类多(Variety):数据类型多样,结构化、半结构化、非结构化

  • 速度快(Velocity):数据产生速度快

  • 价值密度低(Value):单条数据价值低,综合价值大

在当前社会,大数据广泛应用于如下场景:

  • 物流行业:物流跟踪

  • 零售行业:用户画像、推荐系统

  • 旅游行业

  • 新基建

  • ...

在工作中,大数据的业务流程如下图所示:

1.2 Hadoop简介

  • Hadoop 是一个分布式系统基础架构

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

  • 广义上的 Hadoop 则指 Hadoop 生态圈

    1.3 三大发行版本

    • Apache 版本,最基础最原始的版本

    • CDH

    • CDP

      1.4 优点

      • 高可靠性:底层维护多个数据副本,即使某个计算元素或存储出现故障,不会对整体造成影响

      • 高扩展性:在集群间分配任务数据,可以方便扩展数千个节点(横向扩展)

      • 高效性:在 MR 的思想下,Hadoop 是并行工作的,可以加快任务处理效率

      • 高容错性:能够自动的将失败的任务重新分配

        1.5 组成

        • Hadoop 1.x

          • HDFS:存储数据

          • MR:计算+资源调度

        • Hadoop 2.x

          • HDFS:存储数据

          • MR:计算

          • YARN:资源调度

        • Hadoop 3.x:在组成上与2.x没有大的变化

        1.5.1 HDFS

        Hadoop Distributed File System,分布式文件系统

        • NameNode:nn

          • 存储文件的元数据,(文件名、文件目录结构、文件属性(生成时间、副本数、文件权限)、每个文件的块列表、块所在的 DataNode)

        • DataNode:dn

          • 在本地文件系统存储文件块数据,以及块数据的校验和

        • Secondary NameNode:2nn

          • 每隔一段时间对 NameNode 元数据备份

        1.5.2 YARN

        Yet Another Resource Negotiator,Hadoop 资源管理器

        • ResourceManager:RM

          • 整个集群资源(内存、CPU等)的老大

        • NodeManager:NM

          • 单个节点资源的老大

        • ApplicationMaster:AM

          • 单个任务运行的老大

        • Container:容器,等价于一台独立的服务器

          • 封装了任务运行所需的资源,内存、硬盘、CPU、网络

        1.5.3 MR

        MR,分布式计算编程框架,将计算过程分为两个阶段:Map 和 Reduce

        • Map 阶段并行处理输入数据

        • Reduce 阶段对 Map 结果进行汇总

        1.5.4 Common

        基础功能组件

        1.6 大数据技术生态

        从零开始的Hadoop(一):起于Hadoop的大数据

        • Sqoop:主要用于在 Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库中的数据导入到 HDFS 中,也可以将 HDFS 的数据导入到关系型数据库中;

        • Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,支持在日志系统中定制数据发送方,用于收集日志数据;

        • Kafka:一个开源的分布式事件流平台,用于高性能数据管道、流分析、数据集成和关键任务应用;

        • Spark:开源大数据内存计算框架,可以对 HDFS 存储的海量数据进行计算;

        • Flink:开源大数据内存计算框架,多用于实时计算的场景;

        • Oozie:管理 Hadoop 作业(job)的工作流程调度管理系统;

        • Hbase:一个分布式的、面向列的开源数据库,适合于非结构化数据存储;

        • Hive:基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行;

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

          2. 大数据开源环境搭建

          关于开源环境的搭建给大家整理了一个文档《大数据开源环境搭建》,希望能帮到大家。

          从零开始的Hadoop(一):起于Hadoop的大数据从零开始的Hadoop(一):起于Hadoop的大数据