硬件和软件是良好处理数据的基本和重要组件,就第一个而言,有一些技术,如大规模并行处理(MPP)架构,可以帮助快速处理。
但是,对于非结构化或半结构化数据的管理,有必要采用其他技术,如MapReduce或Hadoop,它们负责管理结构化,非结构化或半结构化信息。用于大数据分析的工具须能够在合理的计算时间内以及在足够精确的范围内处理大型数据集及海量数据。
Hadoop
它是一个通过使用简单编程模型的计算机组分布式处理大型数据集的框架。大数据工具Hadoop支持不同的操作系统,通常用于云中的任何平台。
它还有两个主要组件:用于文件存储的每个群集节点(HDFS)上的分布式文件系统和MapReduce编程基础结构。HDFS文件系统提供容错和高可用性的数据库,而MapReduce可以创建通过结果研究从分析的数据中提取值的算法。
MapReduce
MapReduce由Google于2003年设计,被认为是处理海量数据的先锋平台,也是通过分割数据文件进行数据处理的范例,它用于可以并行处理大量信息的解决方案中相同的硬件,即PB级,同时为用户提供对底层集群资源的轻松透明管理。MapReduce将处理分为两个功能:Map和Reduce。
地图功能:在执行输入数据的摄取和变换并且可以并行处理输入寄存器的情况下。系统处理键值对,直接从分布式文件系统读取,并使用用户定义的函数将这些对转换为其他中间体。每个节点负责读取和转换一个或多个分区的对。
减少功能:主节点按键对组进行分组,并将组合结果分发到每个节点中的Reduce进程。缩减功能应用于与每个键关联的值列表,并生成输出值。
Apache Storm
它是一个分布式开源和开源系统,与Hadoop相比,具有实时处理数据处理的优势,Hadoop专为批处理而设计。Apache Storm允许实时构建分布式处理系统,可以快速处理无限数据流(每个节点每秒处理超过一百万个元组)。它具有高度可扩展性,易于使用并保证低延迟(处理数据消息量极大,延迟最小),它还提供了一个非常简单的架构,用于创建称为拓扑的应用程序。
Storm大数据工具基于由完整的峰值,螺栓和流量网络组成的拓扑。峰值是电流源,螺栓用于处理流入物以产生流出物。Storm可用于许多情况,例如实时分析,在线机器管理,连续计算和分布式RPC、ETL等。
Apache Spark
它诞生了作为解决MapReduce / Hadoop限制的替代方案。它可以在内存中快速加载和查询数据,对迭代过程非常有用,并且还提供支持各种应用程序的简单编程模型。
Apache Spark兼容图形数据库,传输分析,常规批处理,即席查询和机器学习,并允许使用SQL语言查询结构化和半结构化数据。
Spark提供了比Hadoop / MapReduce执行更多操作的能力,这有助于以更少的预算和更复杂的解决方案执行大数据项目。它的主要优点之一是易于使用,因为它可以用R,Python,Scala甚至Java编程。Spark有自己的计算集群管理系统,因此它仅将Hadoop HDFS用于存储。
Apache Flink
Flink是Apache Software Foundation的一个项目,由一个由180多个开源合作者组成的社区开发和支持,并在几家公司的生产中使用。它被认为是一种开源流程处理框架,允许使用单一技术对大量数据进行实时传输分析。
Flink为程序员提供了极大的灵活性,可以通过使用不同的时间概念(事件时间,摄取时间,处理时间)来关联事件; 它还提供低延迟,高吞吐量,多语言API,无序事件,容错和一致性。
Flume
它是一种常用于Hadoop的摄取或数据收集工具。Flume是一个分布式,可靠且可用的系统,它收集聚合并将来自许多不同来源的数据传输到集中式数据仓库,例如Hadoop分布式文件系统(HDFS)。它具有灵活且简单的架构,其他架构可处理数据流的传输。容错,可调可靠性机制和故障恢复服务是它的一些功能。Flume依靠简单的可扩展数据模型来处理大量分布式数据源。
尽管Flume很好地补充了Hadoop,但它是一个可以在其他平台上运行的独立组件。他以在一台机器上执行多个进程的能力而闻名。通过使用Flume,用户可以将来自多个高容量源(例如Avro RPC源和syslog)的数据传输到接收器(例如HDFS和HBase)以进行实时分析。此外,Flume提供了一个查询处理引擎,可以在将每批新数据传送到指定的接收器之前对其进行转换。
【凡本网注明来源非中国IDC圈的作品,均转载自其它媒体,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。】