一、Hadoop 是一个可以对大量数据进行分布式处理的软件框架。具备可靠、高效、可伸缩的特色。Hadoop的核心是HDFS和Mapreduce,hadoop2.0还包括YARN。java
二、HDFS Hadoop的分布式文件系统。是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,经过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。git
三、MapReduce(分布式计算框架) MapReduce是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操做,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的全部“值”进行规约,以获得最终结果。MapReduce这样的功能划分,很是适合在大量计算机组成的分布式并行环境里进行数据处理。github
四、Hive(基于Hadoop的数据仓库)Hive定义了一种相似SQL的查询语言(HQL),将SQL转化为MapReduce任务在Hadoop上执行。一般用于离线分析。算法
五、Hbase(分布式列存数据库) HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。和传统关系数据库不一样,HBase采用了BigTable的数据模型:加强的稀疏排序映射表(Key/Value),其中,键由行关键字、列关键字和时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可使用MapReduce来处理,它将数据存储和并行计算完美地结合在一块儿。shell
六、Zookeeper(分布式协做服务) 解决分布式环境下的数据管理问题:统一命名,状态同步,集群管理,配置同步等。数据库
七、Sqoop(数据同步工具) Sqoop是SQL-to-Hadoop的缩写,主要用于传统数据库和Hadoop以前传输数据。数据的导入和导出本质上是Mapreduce程序,充分利用了MR的并行化和容错性。浏览器
八、Pig(基于Hadoop的数据流系统) 由yahoo!开源,设计动机是提供一种基于MapReduce的ad-hoc(计算在query时发生)数据分析工具。定义了一种数据流语言—Pig Latin,将脚本转换为MapReduce任务在Hadoop上执行。一般用于进行离线分析。服务器
九、Mahout(数据挖掘算法库) Mahout的主要目标是建立一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地建立智能应用程序。Mahout如今已经包含了聚类、分类、推荐引擎(协同过滤)和频繁集挖掘等普遍使用的数据挖掘方法。除了算法,Mahout还包含数据的输入/输出工具、与其余存储系统(如数据库、MongoDB 或Cassandra)集成等数据挖掘支持架构。网络
十、Flume(日志收集工具) Cloudera开源的日志收集系统,具备分布式、高可靠、高容错、易于定制和扩展的特色。
它将数据从产生、传输、处理并最终写入目标的路径的过程抽象为数据流,在具体的数据流中,数据源支持在Flume中定制数据发送方,从而支持收集各类不一样协议数据。同时,Flume数据流提供对日志数据进行简单处理的能力,如过滤、格式转换等。此外,Flume还具备可以将日志写往各类数据目标(可定制)的能力。总的来讲,Flume是一个可扩展、适合复杂环境的海量日志收集系统。架构
十一、Oozie做业流调度引擎 Oozie是一个基于工做流引擎的服务器,能够在上面运行Hadoop的Map Reduce和Pig任务。它其实就是一个运行在Java Servlet容器(好比Tomcat)中的Javas Web应用。
十二、Hue,Hadoop本身的监控管理工具。Hue是一个可快速开发和调试Hadoop生态系统各类应用的一个基于浏览器的图形化用户接口。
1三、Nutch,互联网数据及Nutch搜索引擎应用。Nutch 是一个开源Java实现的搜索引擎。它提供了咱们运行本身的搜索引擎所需的所有工具。包括全文搜索和Web爬虫。
1四、Avro 数据序列化工具。Avro是一个数据序列化系统,设计用于支持大批量数据交换的应用。它的主要特色有:支持二进制序列化方式,能够便捷,快速地处理大量数据;动态语言友好,Avro提供的机制使动态语言能够方便地处理Avro数据。
1五、Phoenix 能够把Phoenix只当作一种代替HBase的语法的一个工具。虽然能够用java能够用jdbc来链接phoenix,而后操做HBase,可是在生产环境中,不能够用在OLTP(在线事务处理)中。在线事务处理的环境中,须要低延迟,而Phoenix在查询HBase时,虽然作了一些优化,但延迟仍是不小。因此依然是用在OLAP(联机分析处理)中,再将结果返回存储下来。
1六、Storm 是Twitter开源的分布式实时大数据处理框架,最先开源于github,从0.9.1版本以后,归于Apache社区,被业界称为实时版Hadoop。随着愈来愈多的场景对Hadoop的MapReduce高延迟没法容忍,好比网站统计、推荐系统、预警系统、金融系统(高频交易、股票)等等,大数据实时处理解决方案(流计算)的应用日趋普遍,目前已经是分布式技术领域最新爆发点,而Storm更是流计算技术中的佼佼者和主流。
1七、Flink 是一个针对流数据和批数据的分布式处理引擎。其所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。再换句话说,Flink 会把全部任务当成流来处理,这也是其最大的特色。Flink 能够支持本地的快速迭代,以及一些环形的迭代任务。而且 Flink 能够定制化内存管理。在这点,若是要对比 Flink 和 Spark 的话,Flink 并无将内存彻底交给应用层。这也是为何 Spark 相对于 Flink,更容易出现 OOM 的缘由(out of memory)。
1八、Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 正如其名,最大的特色就是快(Lightning-fast),可比 Hadoop MapReduce 的处理速度快 100 倍。此外,Spark 提供了简单易用的 API,几行代码就能实现 WordCount。本教程主要参考官网快速入门教程,介绍了 Spark 的安装,Spark shell 、RDD、Spark SQL、Spark Streaming 等的基本使用。
1九、YARN (Yet Another Resource Negotiator,另外一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
20、Kafka是一种高吞吐量的分布式发布订阅消息系统,它能够处理消费者规模的网站中的全部动做流数据。 这种动做(网页浏览,搜索和其余用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据一般是因为吞吐量的要求而经过处理日志和日志聚合来解决。 对于像Hadoop的同样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是经过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了经过集群来提供实时的消费。
参考:
http://blog.csdn.net/woshiwanxin102213/article/details/19688393
http://blog.csdn.net/qq_35038153/article/details/77824919