本文从Hadoop是什么、能做什么、谁使用三个主要问题去讲解。对于重点知识如MapReduce、YARN、Hadoop生态系统内的其他组件(HBase、Pig、Hive、Zookeeper等)的介绍和使用这里不做详细说明,需要大家对这些内容扩展并深入学习。

1、Hadoop是什么及功能

1、2002年,Hadoop作为一个支持Web搜索引擎的单独软件项目被创立,如今已成为一个用来分析大量不同类型数据的工具和应用程序(如HBase,Hive等)的生态系统。

Hadoop数据处理的一些功能如下:

1.1、核心部分在Apache许可下开源。

1.2、分析数据通常涉及大量非结构化(非关系型)数据集,数据集有时在千兆兆字节(petabyte,PB,10的15次方字节)范围内。

1.3、传统上,数据可以使用可扩展的HDFS存储在多台服务器上。现在一些新的设计可以使用光纤存储或基于网络的存储子系统。

1.4、许多应用程序和工具都基于第1版Hadoop MapReduce编程模型。

1.5、Hadoop MapReduce作业可以从一台服务器扩展到数千台机器和数以万计的处理器核心。(大数据核心概念之一横向扩展)

1.6、配置YARN(另一种资源调度器)的Hadoop2支持其他编程模型(包括V1 MapReduce)。

1.7、Hadoop核心组件被设计为商品硬件和云上运行。

1.8、Hadoop提供了许多能够在大量的服务器上操作的容错功能。

1.9、许多项目和应用程序建立在Hadoop基础设施之上。

1.10、虽然核心组件使用Java编写,但Hadoop程序几乎可以使用任何编程语言编写。

Hadoop 2.x 安装的核心组件包括HDFS和YARN资源管理器(hadoop 1.x没有YARN)。HDFS文件系统能够提供对数据跨Hadoop集群的分布式访问,它被设计为满足大数据处理,但并非是一种高性能并行文件系统。YARN负责管理集群资源,有时可以视为配备数据局部性服务的集群操作系统。Hadoop应用程序,包括哪些使用MapReduce引擎的组件,都作为YARN之上的应用程序框架运行。

为了支持巨大的可扩展性,Hadoop的设计牺牲了一些效率。在较小的数据规模下,Hadoop 解决一些问题的方法的效率可能不高。随着问题或数据集规模的扩大,Hadoop开始显示其处理大型问题的能力。

Hadoop还有一个非常大的用处就是,作为数据湖,正如前一篇博客中讲解的那样,数据湖可存储任何未处理的数据。


2、使用Hadoop:管理员、用户或两种身份兼具

传统上,

系统管理员负责安装、监控/管理和调整Hadoop软件;

用户将开发Hadoop应用程序、处理数据,并使用各种Hadoop工具实现各种业务需求;

现在,管理员和用户之间的界限可能变模糊,称为了一个混合的新角色,即通常说的“开发运维人员”(devops).


Hadoop可以在一台笔记本电脑、大型集群,或介于这两者之间的任何场景下访问。

以下是管理员和用户两个角色的部分职责:

2.1管理员(运维):

     ★安装Hadoop和管理软件包。

     ★集群基本管理

     ★监控/管理Hadoop 服务

     ★调整Hadoop服务和已安装的工具软件包

2.2最终用户(开发)

      ★利用现有的Hadoop工具检查工作流和存储

     ★使用MapReduce工具

     ★创建Hadoop应用程序

     ★编写直接使用YARN工作的非MapReduce应用程序

     ★手工向/从HDFS导出/导入数据

     ★利用Hadoop工具自动将数据导入/导出HDFS


更多详细内容建议购买阅读《写给大忙人的Hadoop 2》正版书籍。