Hadoop的产生

HADOOP最早起源于Nutch。
 Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,
 但随着抓取网页数量的增加,遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。

2003年谷歌发表了三篇论文:

GFS——Google FileSystem   描述数据存储的思想,解决了海量数据如何存储的问题。

MapReduce——描述分布式运算系统,解决了海量数据如何计算的问题。

bigtable——快速查询的google的分布式数据库,解决了海量数据如何快速查询的问题。

Doug Cutting将Google 的三篇文章用Java重新实现。

GFS——HDFS(Hadoop Distributed File  System)Hadoop的分布式文件存储系统,用于解决海量数据存储的问题。

MapReduce——MapReduce,解决海量数据分布式计算问题。

bigtable——Hbase,解决海量数据的快速查询问题。

Hadoop是什么?

 Apache™Hadoop®项目是一个提供高可靠,可扩展(横向)的分布式计算的开源软件平台。

Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。Hadoop本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。

Hadoop提供的功能:利用服务器集群,根据用户自定义业逻辑对海量数进行分布式处理。

Hadoop的核心组件:

        1)Hadoop Common:支持其他Hadoop模块的常用工具。包括Hadoop常用的工具类,由原来的Hadoopcore部分更名而来。主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。它们为,在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API。

  2)  Hadoop分布式文件系统(HDFS™):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。

  3)  Hadoop YARN:作业调度和集群资源管理的框架。

  4)  Hadoop MapReduce:基于YARN的大型数据集并行处理系统。是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行统计,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。

Hadoop的核心组件

Hadoop的产生背景

重点组件:

HDFS:Hadoop的分布式文件存储系统。

MapReduce:Hadoop的分布式程序运算框架,也可以叫做一种编程模型。

Hive:基于Hadoop的类SQL数据仓库工具

Hbase:基于Hadoop的列式分布式NoSQL数据库

ZooKeeper:分布式协调服务组件

Mahout:基于MapReduce/Flink/Spark等分布式运算框架的机器学习算法库

Oozie/Azkaban:工作流调度引擎

Sqoop:数据迁入迁出工具

Flume:日志采集工具

Hadoop的应用

Hadoop用于网站点击流日志数据挖掘

Hadoop用于用户画像

Hadoop应用于数据服务基础平台建设

总结:hadoop并不会跟某个具体的行业或者某个具体的业务挂钩,它只是一种用来做海量数据分析处理的工具。

相关文章: