Hadoop框架中,有不少优秀的工具,帮助咱们解决工做中的问题。mysql
从上图能够看出,越往右,实时性越高,越往上,涉及到算法等越多。算法
越往上,越往右就越火……sql
HDFS,(Hadoop Distributed File System) hadoop分布式文件系统。在Google开源有关DFS的论文后,由一位大牛开发而成。HDFS的创建在集群之上,适合PB级大量数据的存储,扩展性强,容错性高。它也是Hadoop集群的基础,大部份内容都存在了HDFS上。数据库
MapReduce,是Hadoop中的计算框架,由两部分构成。Map操做以及Reduce操做。MapReduce,会生成计算的任务,分配到各个节点上,执行计算。这样就避免了移动集群上面的数据。并且其内部,也有容错的功能。在计算过程当中,某个节点宕掉以后,会有策略进行应对。Hadoop集群,上层的一些工具,好比Hive或者Pig等,都会转换为基本的MapReduce任务来执行。apache
HBase源自谷歌的BigTable。HBase是面向列存储的数据库,性能高,扩展性强,可靠性高。HBase的内容,存储在HDFS上,固然它也可使用其余的文件系统,如S3等。HBase做为一个顶级项目,使用频率很高。如:咱们能够用来存储,爬虫爬来的网页的信息等。具体的HBase的概念请见后续详细说明。延迟较低。服务器
Hive,是一个查询的工具,在HBase中,对于SQL的支持不太好。而Hive解决了这一类的问题。以sql形式操做hbase,更爽一些。Hive编写的一些sql语句,其实最后也仍是会变成MapReduce程序。固然这种查询,不能与关系型数据库mysql等比较,hive查询时,是秒级或分钟级的,时间比较长。框架
Sqoop,也是一个很神奇的数据同步工具。在关系型数据库中,咱们会遇到一种情景,将Oracle数据导入到Mysql,或者将Mysql数据,导入到Oracle。那其实Sqoop也是相似的功能。sqoop能够将Oracle,Mysql等关系型数据库中的数据,导入到HBase,HDFS上,固然也能够从HDFS或HBase导入到Mysql或Oracle上。分布式
Flume,是日志收集工具,是分布式的,可靠的,容错的,能够定制的。应用场景如:100台服务器,须要监测各个服务器的运行状况,这时能够用flume将各个服务器的日志,收集过来。Flume也有两个版本。Flume OG 和Flume NG。如今基本都用NG了。工具
Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Hadoop的HDFS和HBase中的PB级大数据。已有的Hive系统虽然也提供了SQL语义,但因为Hive底层执行使用的是MapReduce引擎,仍然是一个批处理过程,难以知足查询的交互性。相比之下,Impala的最大特色也是最大卖点就是它的快速。Imapa能够和Phoenix,Spark Sql联系起来了解一下。oop
Spark是一个内存计算的框架。目前一个大的趋势。MapReduce会有很大的IO操做,而Spark是在内存中计算。速度是Hadoop的10倍(官网上这样说的)。Spark是目前一个趋势,是须要了解的。
Zookeeper,动物管理员。Zookeeper叫分布式协做服务。做用主要是,统一命名,状态同步,集群管理,配置同步。Zookeeper在HBase,以及Hadoop2.x中,都有用到。
数据挖掘算法库,里面内置了大量的算法。能够用来作预测、分类、聚类等。工具很强大,可是技术要求能力较高。
和Hive相似。具体区别本身搜搜。Pig能够构建数据仓库。可用来对数据仓库中数据,进行查询分析。Pig也有本身的查询语法,很不幸,不是sql形式,Pig Latin。
Ambari是一个管理平台。能够对集群进行统一的部署。也是很方便的。