大数据分析工具
(1)Apache Hadoop
Hadoop 是一个能够对大量数据进行分布式处理的软件框架。并且Hadoop 是以一种可靠、高效、可伸缩的方式进行数据处理的。Hadoop的可靠体现在:假设计算元素和存储会失败,由于它维护多个工作数据副本,能够确保针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop是可伸缩的,能够处理PB级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。如图1-6所示。
image.pngimage.png
图1-6 Hadoop开源项目
Hadoop是一个能够让用户轻松构建和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
1 高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。
2 高扩展性:Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可以方便地扩展到数以千计的节点中。
3 高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
4 高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
5 平台与语言的选择灵活:Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。
(2)Apache Spark
Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是由加州大学伯克利分校的AMP实验室所开源的类Hadoop MapReduce的通用并行框架。如图1-7所示。
image.pngimage.png
图1-7 Apache Spark 开源项目
Spark是在Scala语言中实现的,它将Scala用作其应用程序框架。Spark与 Hadoop不同,Spark和Scala能够紧密集成,其中的Scala可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。性能特点如下:
1 高性能:内存计算下,Spark 比 MapReduce 快100倍。
2 易用性:Spark 提供了80多个高级运算符。
3 通用性:Spark 提供了大量的库,包括SQL、DataFrames、MLlib、GraphX、Spark Streaming。 开发者可以在同一个应用程序中无缝组合使用这些库。
Spark组成如下:
1 Spark Core:包含Spark的基本功能,尤其是定义弹性数据集(RDD)的应用程序编程接口(API)、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的。
2 Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。
3 Spark Streaming:对实时数据流进行处理和控制。Spark Streaming允许程序能够像普通RDD一样处理实时数据。
4 MLlib:它是一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。
5 GraphX:它是控制图、并行图操作、计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作。
(3)Apache Storm
Storm由Twitter开源而来,是自由的开源软件,是一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。如图1-8所示。
image.pngimage.png
图1-8 Apache Storm开源项目
Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式远过程调用(RPC,一种通过网络从远程计算机程序上请求服务的协议)、数据抽取、转换和加载(即ETL)等等。Storm的处理速度惊人,经测试,每个节点每秒钟可以处理100万个数据元组。
(4)Apache Drill
为了帮助企业用户寻找更有效、更快的Hadoop数据查询的方法,Apache软件基金会发起了名为Drill的开源项目。Apache Drill实现了谷歌的交互式数据分析系统Dremel。如图1-9所示。
image.pngimage.png
图1-9 Apache Drill 开源项目
据Hadoop厂商MapR Technologies公司产品经理Tomer Shiran介绍,Drill已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。
该项目将会创建出开源版本的谷歌Dremel Hadoop工具(谷歌使用该工具来为Hadoop数据分析工具的互联网应用提速)。而Drill将有助于Hadoop用户实现更快查询海量数据集的目的。
Drill项目其实也是从谷歌的Dremel项目中获得灵感。该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在Google Play(一个由Google为Android设备开发的在线应用程序商店)上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。
通过开发Drill开源项目,组织机构将有望建立Drill所属的API接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。
(5)RapidMiner
RapidMiner是一种数据挖掘解决方案,具有丰富数据挖掘分析和算法功能,常用于解决各种的商业关键问题,如营销响应率、客户细分、客户忠诚度及终身价值、资产维护、资源规划、预测性维修、质量管理、社交媒体监测和情感分析等典型商业案例。RapidMiner解决方案覆盖了各个领域,包括汽车、银行、保险、生命科学、制造业、石油和天然气、零售业及快消行业、通讯业、以及公用事业等各个行业。RapidMiner数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价过程。它的特点是图形用户界面的互动原型。其功能和特点在于:
1 免费提供数据挖掘技术和库, 100%用Java代码(可运行在操作系统)、Java API(应用编程接口) ,数据挖掘过程简单,强大和直观。
2 内部XML保证了标准化的格式来表示交换数据的挖掘过程。
3 可以用简单脚本语言自动进行大规模进程,命令行(批处理模式)自动大规模应用。
4 多层次的数据视图,确保有效和透明的数据。
5 图形用户界面的互动原型,强大的可视化引擎,许多尖端的高维数据的可视化建模。
6 简单的插件和推广机制。
7 400多个数据挖掘运营商的支持。
耶鲁大学已成功地将其应用在许多不同的应用领域,包括文本挖掘、多媒体挖掘、功能设计、数据流挖掘、集成开发的方法和分布式数据挖掘。
(6)Pentaho BI
Pentaho BI 商务智能平台不同于传统的商务智能产品(简称BI),它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。如图1-10所示。
image.png
图1-10 Pentaho BI功能图
Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等。这些组件通过 J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技术集成到Pentaho平台中来。 Pentaho的发行,主要以Pentaho SDK的形式进行。
Pentaho SDK共包含五个部分,Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的 Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体;Pentaho数据库为 Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行;Pentaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。