
Opensource.com
大数据:每个人似乎都在谈论它,但大数据究竟是什么?它如何改变公司、非营利组织、政府、机构和其他组织的研究人员了解周围世界的方式?这些数据从何而来,如何处理,结果如何使用?以及为什么开源对于回答这些问题如此重要?
在这篇简短的入门文章中,了解有关大数据的全部信息,以及它对我们所处变化的世界意味着什么。
什么是大数据?
对于数据库需要达到多大才能将其中的数据视为“大”数据,并没有硬性规定。相反,通常定义大数据的是需要新的技术和工具来处理它。为了使用大数据,您需要跨多个物理和/或虚拟机协同工作的程序,以便在合理的时间跨度内处理所有数据。
让多个机器上的程序以高效的方式协同工作,以便每个程序都知道要处理哪些数据组件,然后能够将所有机器的结果整合在一起,以理解大量数据,这需要特殊的编程技术。由于程序访问本地存储的数据通常比通过网络访问数据快得多,因此在考虑大数据问题时,数据在集群中的分布以及这些机器如何联网也是重要的考虑因素。
哪些类型的数据集被认为是大数据?
大数据的用途几乎与其规模一样多样。您可能已经熟悉的突出示例包括:社交媒体网络分析其成员的数据,以更多地了解他们,并将他们与与其兴趣相关的内容和广告联系起来;或者搜索引擎查看查询和结果之间的关系,以便为用户的问题提供更好的答案。
但是潜在的用途远不止于此!大量数据最大的两个来源是事务数据,包括从股票价格到银行数据再到个体商户的购买历史记录的一切;以及传感器数据,其中大部分来自通常被称为物联网 (IoT) 的事物。这些传感器数据可能是从汽车制造商生产线上的机器人采集的测量数据,到蜂窝网络上的位置数据,到家庭和企业中的瞬时用电量数据,再到公交系统上采集的乘客登机信息。
通过分析这些数据,组织可以了解他们正在测量的数据以及生成这些数据的人的趋势。这种大数据分析的希望是在收集数据的任何行业中提供更定制化的服务和更高的效率。
如何分析大数据?
将原始数据转化为有用信息的最著名方法之一是所谓的 MapReduce。MapReduce 是一种在多个计算机上并行处理大型数据集的方法。它可以作为如何编程的模型,并且通常用于指代此模型的实际实现。
本质上,MapReduce 由两部分组成。“Map”函数执行排序和过滤,获取数据并将其放入类别中,以便可以对其进行分析。“Reduce”函数通过将所有数据组合在一起,提供数据的摘要。虽然 MapReduce 主要归功于 Google 的研究,但它现在是一个通用术语,指的是许多技术使用的通用模型。
使用哪些工具来分析大数据?
也许用于分析大数据的最具影响力和最成熟的工具是 Apache Hadoop。Apache Hadoop 是一个用于大规模存储和处理数据的框架,并且它是完全开源的。Hadoop 可以在商用硬件上运行,使其易于与现有数据中心一起使用,甚至可以在云中进行分析。Hadoop 分为四个主要部分
- Hadoop 分布式文件系统 (HDFS),它是一个为非常高的聚合带宽而设计的分布式文件系统;
- YARN,一个用于管理 Hadoop 资源和调度将在 Hadoop 基础设施上运行的程序的平台;
- MapReduce,如上所述,一种用于进行大数据处理的模型;
- 以及供其他模块使用的通用库集。
要了解有关 Hadoop 的更多信息,请参阅我们的 Apache Hadoop 大数据入门。
还有其他工具。其中一个备受关注的是 Apache Spark。Spark 的主要卖点是它将大部分用于处理的数据存储在内存中,而不是磁盘上,这对于某些类型的分析来说可能会快得多。根据操作的不同,分析师可能会看到快一百倍或更多的结果。Spark 可以使用 HDFS,但它也能够与其他数据存储一起工作,例如 Apache Cassandra 或 OpenStack Swift。在单个本地机器上运行 Spark 也相当容易,从而使测试和开发更加容易。
要了解有关 Apache Spark 的更多信息,请参阅我们关于该主题的文章集。
其他大数据工具
当然,这些并不是唯一的大数据工具。有无数的开源解决方案可用于处理大数据,其中许多解决方案专门用于为特定领域或特定硬件配置提供最佳功能和性能。
Apache 软件基金会 (ASF) 支持许多这些大数据项目。以下是一些您可能会觉得有用的项目。
- Apache Beam 是“一个用于定义批处理和流式数据并行处理管道的统一模型”。它允许开发人员编写可在多个处理引擎上工作的代码。
- Apache Hive 是一个构建在 Hadoop 上的数据仓库。作为一个顶级的 Apache 项目,它“使用 SQL 方便了大型数据集的读取、写入和管理……”。
- Apache Impala 是一个在 Hadoop 上运行的 SQL 查询引擎。它正在 Apache 内部孵化,并因在提供熟悉界面的同时提高 SQL 查询性能而受到称赞。
- Apache Kafka 允许用户发布和订阅实时数据馈送。它的目标是将其他消息传递系统的可靠性带到流式数据。
- Apache Lucene 是一个全文索引和搜索软件库,可用于推荐引擎。它也是许多其他搜索项目的基础,包括 Solr 和 Elasticsearch。
- Apache Pig 是一个用于分析在 Hadoop 上运行的大型数据集的平台。雅虎开发它以对大型数据集执行 MapReduce 作业,并在 2007 年将其贡献给了 ASF。
- Apache Solr 是一个构建在 Lucene 之上的企业搜索平台。
- Apache Zeppelin 是一个孵化项目,它支持使用 SQL 和其他编程语言进行交互式数据分析。
您可能想要研究的其他开源大数据工具包括
- Elasticsearch 是另一个基于 Lucene 的企业搜索引擎。它是 Elastic Stack 的一部分(以前称为 ELK Stack,因其组件:Elasticsearch、Kibana 和 Logstash 而得名),可从结构化和非结构化数据中生成见解。
- Cruise Control 由 LinkedIn 开发,用于大规模运行 Apache Kafka 集群。
- TensorFlow 是一个用于机器学习的软件库,自 Google 在 2015 年末开源以来,它发展迅速。它因其易用性而被赞誉为“普及”机器学习。
随着大数据在规模和重要性方面持续增长,用于处理它的开源工具列表也肯定会继续增长。