Hadoop 101

[TOC]

1. Hadoop概述

官网:https://hadoop.apache.org/

Hadoop包含以下模块:

  1. Hadoop Common: 支撑其他模块的通用工具
  2. Hadoop Distributed File System(HDFS): 分布式文件系统,提供高吞吐数据读取
  3. Hadoop YARN: 作业调度与资源管理框架
  4. Hadoop MapReduce: 基于YARN的大数据并行处理。

开源的分布式存储与分布式计算平台

1.1 Hadoop能做什么

  • 搜索引擎
  • 日志分析
  • 商业智能
  • 数据挖掘

2. Hadoop核心组件

2.1 分布式文件系统HDFS

源于Google的GFS论文,论文发表于2003年10月。

HDFS是GFS的开源实现。

HDFS特点:扩展性、容错性(多副本)、海量数据存储。

在HDFS中,可以将文件切分成指定大小的数据库并以多副本存储在多个机器上。数据库大小默认为128M,可以通过参数进行修改。

数据切分、多副本、容错等操作对用户是透明的。

hdfsdatanodes.png

2.2 资源调度系统YARN

YARN: Yet Another Resource Negotiator

YARN负责整个集群资源的管理和调度

YARN特点:扩展性&容错性&多框架资源统一调度

YARN.png

2.3 分布式计算框架MapReduce

源于Google的MapReduce论文,论文发表于2004年12月

MapReduce是Google MapReduce的开源版本。

MapReduce特点:扩展性&容错性&海量数据离线处理

mapreduce.png

3. Hadoop优势

  • 高可靠性
    • 数据存储:数据库多副本
    • 数据计算:重新调度作业计算
  • 高扩展性
    • 存储、计算资源不够时,可以横向的线性扩展机器
    • 一个集群可以包含数以千计的节点
  • 其它
    • 存储在廉价机器上,降低成本
    • 成熟的生态圈

4. Hadoop生态系统

2021-05-15-hadoop-ecosystem.jpg

  • HDFS:存储数据
  • MapReduce/YARN
  • Hive: 结构化数据,HQL
  • Mahout:机器学习,现在主要面向Spark更新
  • Pig: 脚本,离线分析
  • Oozie: 工作流引擎
  • Zookeeper: 分布式协作服务。解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。
  • Flume:日志收集
  • Sqoop: Sql to Hadoop。主要用于传统数据库和hadoop之间传输数据。数据的导入和导出本质上是mapreduce程序,充分利用了MR的并行化和容错性。
  • HBase:HBase是一个针对结构化数据的可伸缩,高可靠,高性能,分布式和面向列的动态模式数据库。和传统关系型数据库不同,hbase采用了bigtable的数据模型。

6. Hadoop发现版本选择

  • Apache Hadoop
  • CDH: Cloudera Distributed Hadoop
  • HDP: Hortonworks Data Platform