如果你想月薪超过3万英镑,那么这项技能是必要的

让我们分享火花是什么。如何使用Spark进行数据分析,让对大数据感兴趣的小伙伴和小伙伴一起了解它。

大数据在线学习

What is Apache Spark?

Apache Spark是一个为速度和共同目标而设计的集群计算平台。

从速度的角度来看,Spark继承了流行的MapReduce模型,可以更有效地支持各种类型的计算,如交互式查询和流处理。在处理大型数据集时,速度非常重要。它可以决定用户是否可以交互处理数据,或者等待几分钟甚至几小时。Spark为速度提供的一个重要特性是它可以在内存中运行计算,即使对于复杂的基于磁盘的应用程序,Spark仍然比MapReduce更高效。

就多功能性而言,Spark可以处理以前需要多个独立分布式系统来处理的任务,包括批处理应用程序、交互式算法、交互式查询和数据流。通过用相同的引擎支持这些任务,Spark使不同的处理类型易于合并,而合并操作经常用于生产数据分析。此外,Spark减少了维护不同工具的管理负担。

spark被设计为高度可访问的,提供Python、Java、Scala和SQL中的简单API,以及丰富的内部数据库。spark还与其他大数据工具集成。特别是,Spark可以在Hadoop集群上运行,并且可以访问任何Hadoop数据源,包括Cassandra。

火花芯部件

Spark的核心组件包括Spark的基本功能,包括任务调度组件、内存管理组件、容错和恢复组件以及与存储系统交互的组件。Spark核心组件提供了定义弹性分布式数据集( RDDS )的API,这是Spark的主要编程抽象。RDDS表示一组数据,这些数据可以并行处理并分布在多个不同的机器节点上。Spark core组件提供了许多API来创建和操作这些集合。

Spark SQL Spark SQL是Spark用来处理结构化数据的软件包。它使得通过像HIVE查询语言( HQL )这样的SQL语句查询数据成为可能,并支持各种数据源,包括HIVE表、Parquet和JSON。除了为Spark提供SQL接口之外,Spark SQL还允许开发人员通过Python、Java和Scala将SQL查询和RDDS支持的数据编程操作混合到一个应用程序中,从而将SQL与复杂分析相结合。与计算密集型环境的紧密集成使得Spark SQL不同于任何其他开源数据仓库工具。Spark SQL在Spark 1.0中引入了火花。

shark是加州大学伯克利分校开发的一个关于Spark的老SQL项目,它通过修改Hive来运行Spark。现在,它已经被Spark SQL取代,以便更好地与Spark引擎和API集成。

作为Spark的一个组成部分,Spark流可以处理实时流数据。流数据的一个示例是由web服务器在生产环境中生成的日志文件,其中用户从web服务请求包含状态更新的消息。SPARK stream为操作数据流提供了一个与SPARK core RDD API非常匹配的API,使程序员更容易理解项目,并在操作内存数据、磁盘数据和实时数据的应用程序之间快速切换。Spark streams旨在提供与Spark核心组件相同级别的容错、吞吐量和可扩展性。

MLLibSpark包含一个名为ML Lib的关于机器学习的库。ML LIB提供各种类型的机器学习算法,包括分类、回归、聚类和协作过滤,并支持模型评估和数据导入。ML LIB还提供了一个低级机器学习原语,包括一个通用的梯度下降优化算法。所有这些方法都可以应用于集群。

GraphxGraphx是一个操作图(如社交网络朋友图)和一个执行基于图的并行计算的库。像火花流和火花SQL一样,graph x扩展了火花RDD API,允许我们创建一个带有绑定到每个节点和边的任何属性的有向图。graph x还提供各种操作图的运算符和通用图算法库。

群集管理器群集管理器在底部,Spark可以有效地从一个计算节点扩展到数十万个节点。为了实现这一目标,同时最大限度地提高灵活性,Spark可以在多个集群管理器上运行,包括Hadoop纱线、Apache MESOS和一个简单的集群管理器,称为Spark中包含的独立调度器。如果你在一个空的机器集群上安装Spark,独立的调度程序提供了一个简单的方法;如果您已经有Hadoop纱线或mess集群,Spark支持您的应用程序允许在这些集群管理器上运行。第7章给出了不同的选择以及如何选择合适的集群管理器。

谁使用火花?你用火花做什么?

由于Spark是集群计算的通用框架,它可以用于许多不同的应用。主要有两种用户:数据科学家和数据工程师。我们仔细分析了这两种人以及他们使用Spark的方式。显然,典型的用例是不同的,但是我们可以将它们大致分为两类,数据科学和数据应用。

数据科学数据科学是近几年出现的一门学科,其任务主要是分析数据。虽然没有标准的定义,但我们认为数据科学家的主要工作是分析和建模数据。数据科学家可能能够用Python、MATLAB或r编写SQL、统计、预测模型(机器学习)程序。数据科学家可以格式化数据以供进一步分析。

为了回答问题或进行深入研究,数据科学家将使用相关技术来分析数据。通常,他们的工作包括特殊的分析,所以他们使用交互式shell,这样他们可以在最短的时间内看到查询结果和代码片段。spark的速度和简单的API接口很好地满足了这个目标,它的内置数据库意味着许多算法可以随时使用。

spark通过几个组件支持不同的数据科学任务。spark Shell使Python或Scala中的交互式数据分析变得容易。Spark SQL还有一个单独的SQL外壳,可以用于SQL或Spark程序或Spark外壳中的数据分析。ML lib库支持机器学习和数据分析。此外,支持用外部MATLAB或R语言编写的程序。spark允许数据科学家使用R或熊猫等工具来处理涉及大量数据的问题。

有时,在最初的数据处理阶段之后,数据科学家的工作将被商业化、扩展和整合(容错),成为生产数据处理应用程序,作为商业应用程序的一部分。例如,数据科学家的研究结果可能会产生一个产品推荐系统,该系统集成到web应用程序中,用于向用户生成产品推荐。数据科学家的工作通常被另一个人商业化,比如工程师。

数据处理应用Spark的另一个主要用途可以从工程师的角度来描述。这里,工程师指的是大量使用Spark构建生产数据处理应用程序的软件开发人员。这些开发人员理解软件工程的概念和原理,例如封装、接口设计和面向对象编程。他们通常拥有计算机科学学位。他们利用他们的软件工程技能来设计和构建实现业务使用场景的软件系统。

对于工程师来说,Spark提供了一种简单的方法来在集群之间并行化这些应用,隐藏了分布式系统、网络通信和容错处理的复杂性。该系统使工程师能够在执行任务时以足够的权限监控、检查和调整应用程序。API的模块化特性使得重用现有工作和本地测试变得容易。

Spark用户使用Spark作为他们的数据处理应用,因为它提供丰富的功能,易于学习和使用,并且成熟可靠。如果你准备好了,那么马上开始行动。

每个人都更加关注。你的关注是我最大的动机。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181018A0QBZE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券