3.2.4 大数据工具
对大数据的应用中,有很多工具可以大大提高工作效率,下面介绍几种常用的大数据工具。
1.Hadoop
Hadoop是一个能够对大量数据进行分布式处理的软件框架,Hadoop是以一种可靠、高效、可伸缩的方式进行工作的。Hadoop是可靠的,因为它假设计算元素和存储会失败,因此它需要维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop还是可伸缩的,能够处理PB级数据。此外,Hadoop不依赖于高端的服务器,因此它的成本比较低,任何人都可以使用。
Hadoop是一个能够让用户轻松架设和使用的分布式计算平台,用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:
·高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。
·高扩展性。Hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可以方便地扩展到数以千计的节点中。
·高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
·高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,如C++。(https://www.daowen.com)
2.Storm
Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠地处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常容易上手。Storm由Twitter开源而来,其他知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、Admaster等。
Storm有许多应用领域,如实时分析、在线机器学习、分布式RPC(远程过程调用协议,一种通过网络从远程计算机程序上请求服务)、ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等。Storm的处理速度惊人:经测试,每个节点每秒钟可以处理100万个数据组。Storm是可扩展、容错,很容易设置和操作的。
3.RapidMiner
RapidMiner是世界领先的数据挖掘解决方案,它完成的数据挖掘任务涉及范围广泛,包括各种数据处理,能简化数据挖掘过程的设计和评价。其提供数据挖掘技术的库,主要使用Java代码。数据挖掘过程简单且功能强大和直观,内部XML保证了采用标准化的格式来表示数据挖掘过程,可以用简单脚本语言自动进行大规模进程并发,多层次的数据视图,确保有效和透明,可以用图形用户界面或命令行(批处理模式)自动处理大规模应用。具有简单的插件和推广机制,强大的可视化引擎,许多尖端的高维数据的可视化建模,400多个数据挖掘运营商支持。RapidMiner已成功地应用在许多不同的应用领域,包括文本挖掘、多媒体挖掘、功能设计、数据流挖掘、集成开发的方法和分布式数据挖掘。
4.spark
Spark是一种“one stack to rule them all”的大数据计算框架,期望使用一个技术堆栈就能完美地解决大数据领域的各种计算任务。Spark是2009年由Matei Zaharia在加州大学伯克利分校AMPLab开创,2014年成为Apache顶级项目,2016年发布了Spark 2.0,2019年10月发布Spark 3.0预览版,2020年6月18日Spark 3.0正式版发布。Apache官方对Spark的定义是:通用的大数据快速处理引擎。Spark使用Spark RDD、Spark SQL、Spark Streaming、MLlib、GraphX成功解决了大数据领域中离线批处理、交互式查询、实时流计算、机器学习与图计算等最重要的任务和问题。Spark除了具有一站式的特点之外,另外一个最重要的特点就是基于内存进行计算,从而让它的速度可以达到MapReduce、Hive的数倍甚至数十倍。因此,Spark具有运行速度快、易用性好、通用性强和随处运行的特点。
5.Flink
Flink是一个针对流数据和批数据的分布式处理引擎。它主要是由Java代码实现。目前,Flink主要还是依靠开源社区来发展的。Flink所要处理的主要场景就是流数据,批数据只是流数据的一个极限特例而已。Flink会把所有任务当成流数据来处理,这也是其最大的特点。Flink可以支持本地的快速迭代,以及一些环形的迭代任务。Flink还可以定制化内存管理,并没有将内存完全交给应用层。Flink处理大数据速度快,满足大数据背景下应用实时计算平台的需求。