Spark学习1 初识Hadoop

Hadoop是什么

Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现的开源软件框架,在大量计算机组成的集群中对海量数据实现分布式计算。

Hadoop生态圈

Spark学习1 初识Hadoop

Hadoop框架的最核心设计:HDFS和MapReduce

HDFS—Hadoop分布式文件系统,提供海量数据的存储。是一种数据分布式保存机制,数据被保存在计算机集群上。

HDFS的关键元素:

1)Block:将一个文件分块存储;

2)NameNode:保存整个文件系统的目录信息、文件信息及分块信息;

3)DataNode:分布在廉价的计算机上,用于存储Block块文件。

HDFS为HBase等系统提供了基础。

MapReduce—Hadoop的主要执行框架,是一个分布式、并行处理的编程模型。
Spark学习1 初识Hadoop
MapReduce把任务分为map(映射)阶段和reduce(化简)阶段。开发人员基于存储在HDFS中数据,编写Hadoop的MapReduce任务。由于MapReduce工作原理的特性, Hadoop能以并行的方式访问数据,从而实现快速访问数据。

YARN—资源管理系统。YARN是Hadoop 2.0新增系统,负责集群的资源管理和调度,使得多种计算框架可以运行在一个集群中。YARN具有良好的扩展性、高可用性,对多种类型的应用程序进行统一管理和调度,并自带了多种多用户调度器,适合共享集群环境。

Hbase—分布式数据库。HBase是一个建立在HDFS之上,面向列的NoSQL数据库,用于快速读/写大量数据。HBase使用Zookeeper进行管理,确保所有组件都正常运行。

Zookeeper—分布式协作服务。Hadoop的许多组件依赖于Zookeeper,它运行在计算机集群上面,用于管理Hadoop操作。

Oozie—可扩展的工作体系,集成于Hadoop的堆栈,用于协调多个MapReduce作业的执行。它能够管理一个复杂的系统,基于外部事件来执行,外部事件包括数据的定时和数据的产出。

Pig—数据分析工具。它是MapReduce编程的复杂性的抽象。Pig平台包括运行环境和用于分析Hadoop数据集的脚本语言(Pig Latin)。其编译器将PigLatin翻译成MapReduce程序序列。

Hive—基于MR的数据仓库。Hive类似于SQL高级语言,用于运行基于Hadoop的查询语句,Hive让不熟悉MapReduce开发人员也能编写数据查询语句,然后这些语句被翻译为Hadoop上面的MapReduce任务。像Pig一样,Hive作为一个抽象层工具,吸引了很多熟悉SQL而不是Java编程的数据分析师。

Sqoop—数据同步工具

Flume—日志收集工具