13、Sqoop
Apache Sqoop是一款用于hadoop和关系型数据库之间数据导入导出的工具。你可以通过Sqoop把数据从数据库(比如mysql,oracle)导入到HDFS中;也可以把数据从HDFS中导出到关系型数据库中。Sqoop通过Hadoop的MapReduce导入导出,因此提供了很高的并行性能以及良好的容错性。
14、Flume
Apache Flume是一个分布式的、可靠的、可用的,从多种不同的源收集、聚集、移动大量日志数据到集中数据存储的系统。Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力 。Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统),支持TCP和UDP等2种模式,exec(命令执行)等数据源上收集数据的能力。它使用一个简单的可扩展数据模型,该模型可用于在线分析应用程序。
15、Ambari
Apache Ambari的功能就是创建、管理、监视Hadoop的集群,这里的Hadoop是广义,指的是 Hadoop 整个生态圈(例如 Hive、Hbase、Sqoop、Zookeeper等)。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。随着Ambari为操作控制提供一致,安全的平台,Hadoop管理变得更加简单。
16、Oozie
Apache Oozie是用于管理Hadoop作业的工作流调度程序系统。 Oozie将多个作业依次组合为一个逻辑工作单元。 Oozie框架与作为架构中心的Apache Yarn完全集成,并支持Apache MapReduce、Hive、Sqoop等Hadoop技术中需要调度的作业。
以上是Hadoop技术生态圈的讲解,但这里还没有完,因为在目前业界使用最广泛的大数据技术中,还有几个技术不得不提一下。
17、Spark
Apache Spark是一个基于Scala语言编写的分布式计算框架,最初是由加州大学伯克利分销AMPLab实验室开发,相对于MapReduce计算框架,它减少了内存与磁盘的IO操作,从而提高了计算时间。Spark采用了基于内存的运算,将中间数据结果存储在内存中,方便下次计算调用。该框架的计算速度根据官网的介绍,基于内存的计算中比MapReduce快100倍,基于磁盘的计算中比MapReduce快10倍。Spark内部有五个重要组成部分,分别是Spark Core、Spark SQL、Spark Streaming、MLlib和GraphX。在存在递归迭代运算的场景下,Spark非常适合。
18、Elastic Search
Elastic Search是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。它的核心算法是倒排索引算法。
19、Kafka
Apache Kafka是一种分布式的,基于发布 / 订阅的消息系统,采用Java和Scala编写。该平台为处理即时数据提供了统一、高吞吐、低延迟的服务。目前越来越多的开源分布式处理系统如Cloudera、Apache Storm、Spark都支持与Kafka集成。Kafka是一个消息系统,原本开发自LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司 作为多种类型的数据管道和消息系统使用。它能够以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。它拥有高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。它支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Partition 内的消息顺序传输。它同时支持离线数据处理和实时数据处理。最后它还支持在线水平扩展。