Hadoop生态圈概述

一、 Hadoop 概述

项目起源

Hadoop 由 Apache Software Foundation 公司于 2005 年秋天作为 Lucene 的子项目 Nutch 的一部分正式引入。它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发。

目前 Hadoop 版本以 Hadoop2.7.x 为主,我们的课程选择 Hadoop2.7.3。                                                                    

名字由来

Hadoop 这个名字不是一个缩写,而是一个虚构的名字。

该项目的创建者,Doug  Cutting 解释 Hadoop 的得名 :“这个名字是我孩子给一个棕黄色的大象玩具命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子恰恰是这方面的高手。”

二、 Hadoop 核心组件与应用

1、核心组件

核心组件包括 Hadoop 的基础组件 HDFS、MapReduce 和 Yarn,以及其他常用组件如:HBase、Hive、

Hadoop Streaming、Zookeeper 等。

Hadoop生态圈概述

2、组件介绍:

  • HDFS:分布式海量数据存储功能
  • Yarn:提供资源调度与任务管理功能
    1. 资源调度:根据申请的计算任务,合理分配集群中的计算节点(计算机)。
    2. 任务管理:任务在执行过程中,负责过程监控、状态反馈、任务再调度等工作。
  • MapReduce:分布式并行编程模型和计算框架。解决分布式编程门槛高的问题,基于其框架对分布式计算的抽象 map 和 reduce,可以轻松实现分布式计算程序。
  • Hive:提供数据摘要和查询的数据仓库。解决数据仓库构建问题,基于 Hadoop 平台的存储与计算,与传统 SQL 相结合,让熟悉 SQL 的编程人员轻松向 Hadoop 平台迁移。
  • Streaming:解决非 Java 开发人员使用 Hadoop 平台的语言问题,使各种语言如 C++、python、 shell 等均可以无障碍使用 Hadoop 平台。
  • HBase:基于列式存储模型的分布式数据库。解决某些场景下,需要 Hadoop 平台数据及时响应的问题。
  • Zookeeper:分布式协同服务。主要解决分布式下数据管理问题:统一命名、状态同步、集群管理、配置同步等。

三、 Hadoop 生态圈

Hadoop生态圈概述

   

Ambari  平台环境介绍

  • Apache Ambari 是一种基于 Web 的工具,支持 Apache Hadoop 集群的供应、管理和监控。 Ambari 已支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、 Sqoop 和 Hcatalog 等。
  • 同类产品为 Cloudera Manager 的 CDH。
  • 优点:
    1. Web 安装图形界面操作便捷
    2. Hadoop 家族个组件支持全面
    3. 社区资源比较丰富
  • 缺点:
    1. Bug 较多:安装过程中,莫名其妙的出现错误。系统运维过程中偶尔出错。以上两种情况重启就正常。
    2. 安装速度与网络质量关系较大,往往时间较长。
    3. 在合理避免大坑的情况下,3 小时内可以搭建一个基本版的集群。