hadoop 各个组件介绍

HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其余一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但能够屡次读取用于分析。HDFS让Hadoop能够最大化利用磁盘。
HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其全部组件都正在运行。HBase使得Hadoop能够最大化利用内存。
MapReduce——MapReduce是Hadoop的主要执行框架,它是一个用于分布式并行数据处理的编程模型,将做业分为mapping阶段和reduce阶段。开发人员谓Hadoop编写MapReduce做业,并使用HDFS中存储的数据,而HDFS能够保证快速的数据访问。鉴于MapReduce做业的特性,Hadoop以并行的方式将处理过程移向数据。MapReduce使得Hadoop能够最大化利用CPU。
Zookeeper——Zookeeper是Hadoop的分布式协调服务。Zookeeper被设计成能够在机器集群上运行,是一个具备高度可用性的服务,用于Hadoop操做的管理,并且不少Hadoop组件都依赖它。

 Oozie—— Oozie是一个北极测很难过到Hadoop软件栈中的可扩展的Workflow系统。用于协调多个MapReduce做业的执行。它可以处理大量的复杂性,基于外部事件来管理执行。

 Pig——Pig是对MapReduce编程复杂性的抽象,Pig平台包含用于分析Hadoop数据集的执行环境和脚本语言(Pig Latin)。它的编译器将Pig Latin翻译为MapReduce程序序列。
Hive——相似于SQL的高级语言,用于执行对存储在Hadoop中数据的查询,Hive容许不熟悉MapReduce的开发人员编写数据查询语句,它会将翻译为Hadoop中的MapReduce做业。相似于Pig。Hive是一个抽象层,适合于较熟悉SQL而不是java编程的数据库分析师。
Hadoop生态系统中还包含一些用于与其余企业级应用进行集成的框架,例如上图所示的Sqoop和Flume:
 Sqoop是一个连通性工具,用于在关系型数据库和数据仓库Hadoop之间移动数据。Sqoop利用数据库来描述导入/导出数据的模式,并使用MapReduce实现并行操做和容错。
Fulme是一个分布式的、具备可靠性和高可用性的服务,用于从单独的机器上将大量数据高效的收集、聚合并移动到HDFS中。它给予一个简单灵活的架构,童工流式数据操所。它借助于简单可扩展的数据模型,容许未来自企业中多台机器上的数据移到Hadoop中。


hbase 是架构在hadoop之上的分布式数据库,hive即hive sql,用户能够经过写hive sql,hive负责将sql生成相关的mapreduce做业,并提交给hadoop集群来运行这样的做业。hive能够直接分析hdfs上的文件,也能够分析hbase表数据。通常hive是安装在namenode上运行。
简单来讲hive用来批量处理数据,HBase用来快速索引数据。
HBase是一个分布式的基于列存储的非关系型数据库。HBase的查询效率很高,主要因为查询和展现结果。
hive是分布式的关系型数据库。主要用来并行分布式 处理 大量数据。hive中的全部查询除了"select * from table;"都是须要经过Map\Reduce的方式来执行的。因为要走Map\Reduce,即便一个只有1行1列的表,若是不是经过select * from table;方式来查询的,可能也须要八、9秒。但hive比较擅长处理大量数据。当要处理的数据不少,而且Hadoop集群有足够的规模,这时就能体现出它的优点。
java

相关文章
相关标签/搜索