天天看点

hadoop组件hadoop 组件介绍

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

hadoop组件hadoop 组件介绍

hadoop 组件介绍

  1. HDFS hadoop做出了一个虚拟文件系统,在这个系统上你以为你创建了一个文件,其实这个文件有可能被同时存放在很多台机子上,这样就让你的系统表面上看起来是一个空间,实际上是很多服务器的磁盘构成的,这就是分布式操作系统
  2. YARN 并行计算模型Map/Reduce(MapReduce2.0) 这是一个面向 Hadoop 的编程模型。有两个阶段,它们分别被称为 Map 和 Reduce。在分布式系统上进行计算操作基本都是由这两个概念步骤组成的,因为分布式系统,并不像一般的数据库或者文件系统,不能从上至下,或者从第一条开始进行求和等操作,就需要一种由分散的节点不断向一个点聚拢的计算过程。
  3. HBase HBase是一个分布式的、面向列的开源数据库
  4. ZooKeeper ooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
  5. Hive 你可以在Hive里面建立表,通过表映射实际存储的hadoop文件,然后写sql去查询数据。Hive会把你输入的sql语句转化为mapreduce 任务去查询hadoop。但是速度非常慢,每次查询大概需要几分钟,所以hive主要是用于统计分析用的,并且支持的sql语法非常有限。但是毕竟写sql比些mapreduce任务简单多了。
  6. Sqoop Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递。
  7. Impala Impala比原来基于MapReduce的Hive SQL查询速度提升3~90倍。
  8. pig Pig用来写一些即时脚本。
  9. Spark Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Apache Spark现在名声大噪。为支持Spark项目成立的 Databricks公司 从Andereessen Horowittz那里募集了1400万美元,Cloudera也已决定全力支持Spark。
  10. HttpFs HttpFs 其实也是HDFS的组件之一只是默认是没有安装的,有了HttpFs可以方便的在网页上操作hdfs的文件系统,并且HttpFs提供了一套REST风格的API可以用程序对hdfs的文件进行操作
  11. Hue HUE是一个很漂亮的web客户端,你可以在hue上调用和管理hadoop的各个组件,比如查看/编辑Hbase表的数据,查看/编辑Hive数据表,执行sql等作业。
  12. Oozie Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat
  13. Phoenix Phoenix是Apache的顶级项目。Phoenix在Hbase上构建了一层关系型数据库。可以用SQL来查询Hbase数据库,并且速度比Impala更快。还支持很多丰富的特性,最有名的便是它的二级索引。Phoenix借鉴了很多关系型数据库优化查询的方法,将这些方法用在Hbase上,让Hbase更方便使用。
  14. Flume 日志收集组件,通过在服务器上安装agent来收集服务器的日志,而且可以把多个flume串联起来,实现日志的转换,处理和集中。其实这个组件并不完全算是hadoop生态圈里面的东西,但是由于hadoop集群机器众多,日志数量巨大,可以说hadoop自己生成的日志就是海量数据,所以怎样合理的收集日志和对日志进行查询就成为了一个hadoop领域的一个必须解决的问题。所以flume也被列为hadoop生态圈的一份子
  15. Sentry 提供细粒度基于角色的安全控制

hive是什么?

hive可以认为是map-reduce的一个包装。

hive的意义就是把好写的hive的sql(也叫hql)转换为复杂难写的map-reduce程序,从而降低使用Hadoop中使用map-reduce的难度。

Hive本身不存储和计算数据,它完全依赖于HDFS和MapReduce,Hive中的表纯逻辑(只是个逻辑表)

hbase是什么?

hbase可以认为是hdfs的一个包装。他的本质是数据存储,是个NoSql数据库;hbase部署于hdfs之上,并且克服了hdfs在随机读写方面的缺点。

hbase可以理解为为hdfs建立了索引,查询不走map-reduce,直接走自己的表

hbase是物理表,不是逻辑表,提供一个超大的内存hash表,搜索引擎通过它来存储索引,方便查询操作。

继续阅读