Hadoop(一)---概述

作者: Coding小聪 | 来源:发表于2019-06-01 23:18 被阅读1次

Hadoop是什么

Hadoop是一个用于海量数据存储和分析计算分布式基础框架。不过从广义上来讲,Hadoop不单指某个具体的框架,而是指一个生态圈

hadoop技术生态体系
  • Sqoop是一款数据传输工具,它即可以将一个关系型数据库中的数据导入到Hadoop的HDFS中,又可以将HDFS中的数据导入到关系型数据库中。
  • Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
  • Kafka是一个消息中间件。
  • Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。不过在实时计算领域其逐渐被Spark所替代。
  • Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。
  • Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。
  • Hbase是一个分布式的、面向列的开源数据库,它适用于非结构化数据存储。
  • Hive:Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射成一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转化成MapReduce任务运行。其优点是可以通过类SQL语句块速实现简单的MapReduce统计,而不必开发专门的MapReduce应用。
  • R语言是一个用于统计计算和统计制图的优秀工具。
  • Mahout是个可扩展的机器学习和数据挖掘库。
  • Zookeeper是一个分布式配置中心。

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

Hadoop发行版本

目前而言,不收费的Hadoop发行版本主要有三个,分别是:

  • Apache Hadoop,最原始的版本,其他发行版本均基于此版本改进;
  • Cloudera Hadoop,简称为CDH,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。由Hadoop的创始人加盟Cloudera公司所创立。
  • Hortonworks Hadoop,由之前在雅虎研究Hadoop的多名工程师,成立Hortonworks公司并发布。

一般来说,Apache发行的版本多用于学习,而公司用得较多的是Cloudera Hadoop。

Apache Hadoop版本的官网:http://hadoop.apache.org/releases.html
Cloudera Hadoop版本的官网:https://www.cloudera.com/downloads/cdh/5-10-0.html
Hortonworks Hadoop版本的官网:https://hortonworks.com/products/data-center/hdp/

Hadoop的组件

Hadoop1.x和2.x所包含的组件基本一样,除了2.x新增的资源调度Yarn。不同版本之间具体所包含的组件如下图所示

Hadoop组件图

下面看看组件各自的细节

HDFS概述

HDFS(Hadoop Distributed File System)是分布式文件存储,主要为海量数据提供高效的存储方案。同时HDFS是Hadoop项目的核心子项目。


HDFS系统架构

我们可以看到在HDFS中有3种类型的组件,它们各自的作用如下:

  • NameNode:存储文件的元数据,如:文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DateNode等;其处理客户端的读写请求。
  • DataNode:存储实际的数据块,执行数据块的读/写操作。
  • Secondary NameNode:用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据的快照,Secondary NameNode并不是NameNode的热备。

YARN

YARN是资源管理和调度系统,它在Hadoop 2.x引入。YARN架构图如下所示:


yarn

从上面的图中可以看到,YARN架构中有4种组件:Resource Manager、Node Manager、App Mastr、Container,它们的主要功能如下

  • ResourceManager
    1). 资源的分配与调度;
    2). 处理客户端请求;
    3). 监控NodeManager;
    4). 启动或监控ApplicationMaster。
  • NodeManager
    1). 管理单个节点上的资源;
    2). 处理来自ResourceManager或ApplicationMaster的命令。
  • ApplicationMaster
    1). 负责数据的切分;
    2). 任务的监控与容错;
    3). 为应用程序申请资源并分配给内部的任务。
  • Container
    Container是YARN中的资源抽象,它封装了某个节点上的多维资源,如内存、CPU、硬盘、网络等。

MapReduce

MapReduce为开发者提供编程接口,是一个分布式计算框架。

MapReduce程序的工作分两个阶段进行:

  • Map阶段:并行处理输入数据;
  • Reduce 阶段:对Map结果进行汇总。

Hadoop Common

提供一些辅助的工具

参考(more reding)

  1. 尚硅谷大数据技术之Hadoop(入门)

相关文章

网友评论

    本文标题:Hadoop(一)---概述

    本文链接:https://www.haomeiwen.com/subject/smlitctx.html