Hadoop是Apache开源组织的一个分布式基础框架,提供了一个分布式文件系统 (HDFS)、分布式计算(MapReduce)及统一资源管理框架(YARN)的软件架构。
简介
Hadoop是用Java语言开发的一个开源分布式计算平台,适合大数据的分布式存储和计算平台。
Hadoop框架核心的设计是:HDFS、MapReduce、YARN。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算,YARN为计算程序提供资源调度服务。
主要组件
1)HDFS(Hadoop Distribute File System):
分布式文件系统,提供对应用程序数据的高吞吐量,高伸缩性,高容错性的访问。Hadoop体系中数据存储管理的基础。
2)MapReduce:
分布式计算模型,由Map和Reduce组成,用以进行大数据量的计算。MapReduce分为两个阶段:Map阶段,Reduce阶段,其中Map阶段为映射,Reduce阶段是规约。适合在大量计算机组成的分布式并行环境里进行数据处理。
3)YARN(Yet Another Resource Negotiator):
分布式资源管理器,职能是将资源调度和任务调度分开。最大的特点是执行调度与Hadoop上运行的任务类型无关。Yarn可在Hadoop上执行除MapReduce以外的工作,其核心是分布式调度程序。
其他模块(部分)
4)HBase:是一个基于HDFS之上的高可靠、高性能、面向列、可伸缩的分布式NoSQL数据库。
5)Hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。
6)Zookeeper:一个分布式的,开放源码的分布式应用程序协调服务。提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
7)FlumeNG:是一个分布式、高可靠的数据采集系统,能够将不同数据源的海量日志数据进行高效收集、聚合、移动,最后存储到一个中心化数据存储系统中。
8)Sqoop:是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技术道路上走多远。