Hadoop 学习笔记一:介绍

Hadoop 学习笔记一:介绍

  • Hadoop 是什么
  • Hadoop 发展历史
  • Hadoop 三大发行版本
  • Hadoop 优势
  • Hadoop 的组成
    • HDFS 架构概述
    • YARN 架构
    • MapReduce 架构概述
  • 大数据技术生态体系

Hadoop 是什么

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

Hadoop 发展历史

  • Lucene 框架是 Doug Cutting 开创的开源软件,用 Java 书写代码,实现与 Google 类似的全文搜索功能,它提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎。
  • 2001 年年底 Lucene 成为 Apache 基金会的一个子项目
  • 对于海量数据的场景,Lucene 面对与 Google 同样的困难,存储数据困难,检索速度慢。
  • 学习和模仿 Google 解决这些问题的办法:微型版 Nutch。
  • 可以说 Google 是 Hadoop 的思想之源(Google 在大数据方面的三篇论文)
    GFS,Map-Reduce,BigTable
  • 2003 - 2004 年,Google 公开了部分 GFS 和 MapReduce 思想的细节,以此为基础 Doug Cutting 等人用了2年业余时间实现了 DFS 和 MapReduce 机制,使 Nutch 性能飙升。
  • 2005 年 Hadoop 作为 Lucene 的子项目 Nutch 的一部分正式引入 Apache 基金会。
  • 2006 年 3月份, Map-Reduce 和 Nutch Distributed File System (NDFS)分别被纳入称为 Hadoop 的项目中。
  • 名字来源于 Doug Cutting 儿子的玩具大象
  • Hadoop 就此诞生并迅速发展,标志着大数据时代来临。

Hadoop 三大发行版本

Hadoop 三大发行版本:Apache、Cloudera、Hortonworks。

  • Apache 版本最原始版本(最基础)的版本,对于入门学习最好。
  • Cloudera 在大型互联网企业中用的较多。
  • Hortonworks 文档较好

Hadoop 优势

  1. 高可用性:Hadoop 底层维护了多个数据副本,所以即使 Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
  2. 高扩展性:在集群键分配任务数据,可 方便的扩展数以千计的节点。
  3. 高效性:在 MapReduce 的思想下, Hadoop 是并行工作的,以加快任务处理速度。
  4. 高容错性:能够自动将失败的任务重新分配

Hadoop 的组成

  • Hadoop 1.x 组成 : Common(辅助工具) 、HDFS(数据存储)、MapReduce(计算 + 资源调度)
  • Hadoop 2.x 组成 : Common(辅助工具)、HDFS(数据存储)、MapReduce(计算)、YARN(资源调度)

HDFS 架构概述

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

YARN 架构

  • ResourceManager (RM)主要作用如下
  1. 处理客户端请求
  2. 监控 NodeManager
  3. 启动或监控 ApplicationMaster
  4. 资源的分配与调度
  • NodeManager(NM)主要作用如下
  1. 管理单个节点上的资源
  2. 处理来自 ResourceManager 的命令
  3. 处理来自 ApplicationMater 的命令
  • ApplicationMaster (AM) 作用如下
  1. 负责数据的切分
  2. 为应用程序申请资源并分配给内部的任务
  3. 任务的监控与容错
  • Container:是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和 Reduce

Map 阶段并行处理输入数据

Reduce 阶段对 Map 结果进行汇总

大数据技术生态体系

数据来源层:数据库(结构化数据)、文件日志(半结构化数据)、视频、ppt 等(非结构化数据)

数据传输层:sqoop 数据传递、Flume 数据收集、Kafka 消息队列

数据存储层:HDFS 文件存储 、HBase 非关系型数据库、Kafka 消息队列

资源管理层:YARN 资源管理

数据计算层:MapReduce 离线计算(Hive 数据查询、Mahout 数据挖掘)、Spark Core 内存计算(Spark Mlib 数据挖掘、Spark R 数据分析、Spark Sql 数据查询、Spark Streaming 实时计算)、Storm 实时计算、Flink

任务调度层:Oozie 任务调度、Azkaban 任务调度、crontab 任务调度

ZooKeeper 数据平台配置和调度

业务模型层:业务模型、数据可视化、业务应用

你可能感兴趣的:(Hadoop)