目录

Hadoop--初学到漏洞(一)--相关概念

Hadoop–初学到漏洞(一)–相关概念

本系列将从Hadoop学习到其漏洞复现分析进行完整记录。

一、大数据

1. 概念

Big Data:主要是指无法在一定范围内用常规润健工具进行捕捉、管理和处理的数据集合,需要新处理模式才能具有更强的决策力、洞察发现力和流程化能力的海量、高增长率和多样化的信息资产。一言概括:数据多到传统方案无法处理

数据的体量并不是最重要,重要的是隐藏在数据中的信息的价值。(比如我们常见的大数据杀熟)

2. 单位

从小到大依次为:

1
`bit` `Byte` `KB` `MB` `GB` `TB` `PB` `EB` `ZB` `YB` `BB` `NB`  `DB`

3. 特点

  • 大量:体量大
  • 高速:处理数据的速度必须要快
  • 多样:不同场景会产生不同的数据源
  • 低价值密度:即使数据量很大,我们始终关注的应该只是特定的一部分,而并不是整体

二、Hadoop

1. 概念

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要用来解决大数据的存储和分析计算问题。现在已发展成为一个完整的生态技术,而不是单纯的Hadoop产品。

2. 版本

  • Apache版本:最原始(最基础)的版本,对于入门学习最好,毕竟是出生地,血统也是最正的。(本系列文章主要专注于该版本)
  • Cloudera :在大型互联网企业中用的较多。
  • Hortonworks:文档比较全。

3. 优势

  • 高可靠性:底层使用多个数据副本(分布式存储的生动体现)
  • 高扩展性:在集群间分配任务数据,可以方便的扩展数以千计的节点。
  • 高效性:在MapReduce思想下,Hadoop被设计为并行工作
  • 高容错性:能将失败的任务重新分配

4. 组成部分

Hadoop 2.0之后,主要由以下四个部分组成:

https://i.imgur.com/wDGhXDO.png

  • Common:其他Hadoop模块所需的Java库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动Hadoop所需的Java文件和脚本
  • Map-Reduce:计算
  • Yarn: 资源调度
  • HDFS: 数据存储

1. Map - Reduce编程模型

  1. 定义:分布式运算程序的编程框架,核心框架,主要功能是将用户编写的业务逻辑代码和自带默认组件整合成完整的分布式运算程序,并发运行在一个Hadoop集群上。
  2. 阶段:map阶段和reduce阶段,核心思想是将任务进行并行计算,分而治之,然后将结果汇总

2. Yarn

  1. 诞生于Hadoop 2.x阶段,主要负责资源调度(2.x之前,资源调度由map-reduce负责)
  2. 架构组成:
    • ResourceManger(RM):处理客户端请求、监控NodeManger、启动或监控ApplicationMaster、资源分配于调度
    • NodeManager(NM):管理带个节点上的资源、处理来自RM的命令、处理来自AM的命令
    • ApplicationMaster(AM):负责数据的切分、为应用程序申请资源并分配给内部的任务、任务的监控与容错
    • Container:Yarn中的资源抽吸那个,封装了某个节点上的多维度资源,如CPU、内存、磁盘、网络等

3. HDFS

  1. 概念:Hasdoop Distributed FIle System,Hadoop分布式文件系统,负责文件存储部分。

  2. 架构组成:

    • NameNode(nn):存储文件的元数据,如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等
    • DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
    • Secondary NameNode(2nn):监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照。

    对以上架构举例进行解释:在图书馆中,NameNode存储的是图书馆所有书籍的目录、作者、书的位置等信息,DataNode是存放书籍的书架,Secondary NameNode主要是存储每本书的副本,防止一本书损坏,没有其他的副本可用。