大数据科普系列(三)什么是Hadoop?
2019-10-30阅读 1327

通过前面两篇文章,我们已经了解了大数据的相关概念,而提到大数据,必然涉及到Hadoop。那么,这个Hadoop到底是个什么鬼呢?

对于我们来说,百度、谷歌这样的搜索引擎好像是无所不能的,只有你想不到,没有度娘不知道的!但它底层的数据哪里来的呢?当然是通过网络爬虫爬取的,就是通过程序不断地访问互联网上的网页并提取、记录相关信息。但随着爬取的深入,就遇到了一个严重的问题,怎么解决数十亿网页的存储和索引问题。

2003年到2004年,谷歌先后发表了三篇论文《Google File System》、《MapReduce》、《BigTable》。这三篇论文依次解决了海量网页的存储问题、计算问题以及快速查询问题。与此同时,Doug Cutting正在研究开源的网页搜索引擎Nutch。他看到谷歌发表的论文后,分别作了开源的实现,作为了Nutch的子项目,后来独立为Hadoop项目。Hadoop的名字由来是因为Doug Cutting的女儿有个黄色的玩具小象叫做Hadoop。2008年,Hadoop成为Apache顶级项目。因此,本质上,Hadoop就是Google大数据处理系统的开源实现。

Hadoop官方网站:https://hadoop.apache.org/

3-1 (2).png

Hadoop是Apache旗下的一套开源分布式软件平台,用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。你可以把Hadoop 理解为一个分布式的操作系统。

下面介绍一下Hadoop系统的四大核心模块:

  1. Hadoop Common,里面包含一些工具包,用以支撑其他模块的

  2. Hadoop Distributed File System(HDFS),分布式文件系统,对应着GFS

  3. Hadoop MapReduce,分布式计算系统,对应着Google 的MapReduce

  4. Hadoop YARN,分布式资源管理系统,用来管理分布式任务

    当然,以上说的是狭义的Hadoop。广义的Hadoop是指整个依托于Hadoop形成的一个生态系统,下图列出了一些常用组件:

3-2.png

  • Ambari:一种基于Web的工具,用于配置,管理和监视Apache Hadoop集群,其中包括对Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。 Ambari还提供了一个仪表板,用于查看集群健康状况(例如热图)以及以可视方式查看MapReduce,Pig和Hive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能

  • Sqoop:一种用于传统数据库与hadoop系统之间的数据迁移工具

  • Flume:一种日志收集工具

  • HBase:可扩展的分布式数据库,支持大型表的结构化数据存储

  • Hive:一种数据仓库基础结构,可提供数据汇总和即席查询

  • Mahout:可扩展的机器学习和数据挖掘库

  • Pig:用于并行计算的高级数据流语言和执行框架

  • Spark:用于Hadoop数据的快速通用计算引擎。 Spark提供了一个简单而富有表现力的编程模型,该模型支持广泛的应用程序,包括ETL,机器学习,流处理和图形计算

  • Tez:基于Hadoop YARN的通用数据流编程框架,它提供了强大而灵活的引擎来执行任意DAG任务,以处理批处理和交互用例的数据。 Hadoop生态系统中的Hive,Pig和其他框架以及其他商业软件(例如ETL工具)都采用了Tez,以取代MapReduce作为基础执行引擎

  • ZooKeeper:针对分布式应用程序的高性能协调服务

    最后,我们再来说说Hadoop与云计算的关系。

    云计算是分布式计算、并行计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术和互联网技术融合发展的产物,把强大的存储、计算能力提供给终端用户,它包括:

  • 基础设施即服务(Infrastructure as a Service,IaaS)

  • 软件即服务(Software as a Service,SaaS)

  • 平台即服务 (Platform  as a Service,PaaS)

     现阶段,云计算的两大底层支撑技术为“虚拟化”和“大数据技术”,而Hadoop 则是云计算的 PaaS 层的解决方案之一。