我们已经在上一篇文章中向您介绍了Hadoop和集群。此时,您可能想知道为什么我们需要一个多节点群集。由于大多数服务将在主主机上运行,我们为什么不只创建一个单节点群集呢?

使用多节点群集有两个主要原因。首先,要存储和处理的数据量可能太大,单个节点无法处理。其次,单节点群集的计算能力可能会受到限制。

您可能还喜欢:业务见解的数据探索和数据准备

数据准备

如前几篇文章中所述,我们收集了数据是有原因的,但保留它,没有任何分析。对于企业来说,获取数据并保持数据保持其存在的意义。数据准备是指将原始数据准备或转换为精细信息,这些信息可以有效地用于各种业务目的和分析。

我们的最终目标是将数据转化为信息和信息,从而深入了解,从而在决策和业务改进的各个方面为您提供帮助。数据处理或准备不是一个新术语,因为它从手动完成处理的开始就存在了。现在,数据已经变得很大,是时候通过自动方式执行处理,以节省时间和达到更好的准确性。

如果您浏览前五大数据处理框架,您会发现弹出以下单词列表:

  • Hadoop。
  • 火花。
  • 风暴。
  • Flink.
  • 萨姆扎

五个框架中的前两个是众所周知的,在各种项目中实施得最多。它们也主要是批处理框架。看起来它们很相似,但两者有很大的区别。让我们快速了解一下比较分析。

标准 火花 哈多普地图减少
处理 内存中 映射后在磁盘上保留并减少功能
易用性 由于支持Scala和python,很容易 强硬,因为仅支持 Java
速度 运行应用程序的速度提高 100 倍
延迟 降低
任务计划 自行安排任务 需要外部计划程序

根据表,各种因素使我们从地图减少跳到火花com/文章/什么是火花-sql”rel=”不跟随”目标=”_blank”=Spark SQL。Spark SQL 类似于 SQL 92,因此即使对于初学者也很容易。使 Spark 成为强大大数据处理引擎的一些关键功能包括:

  • 配备MLlib。
  • 支持多种语言,如Scala、Python和Java。
  • 单个库能够执行 SQL、图形分析和流式处理。
  • 将数据存储在服务器的 RAM 中,使访问更轻松,分析速度更快。
  • 实时处理。
  • 与 Hadoop 兼容(独立工作,在 Hadoop 之上工作)。

火花过风暴

我们比较了前两个,并达成了一个解决方案。有时,人们可能更喜欢第三堆,这是风暴。两者都是用于实时处理和分析的常见堆栈。风暴是一个纯粹的流框架,但许多功能,如MLlib在风暴中不可用,因为它是一个较小的框架。

对于扩展和缩小服务的详细信息,Spark 优先于 Storm。最好了解根据需求在各种工具之间切换的差异。在本文中,我们将重点讨论Spark,一个广泛使用的加工工具。

火花组件

阿帕奇火花生态系统。
Spark SQL

  • Spark Core – 它是由用于调度和调度的一般执行引擎组成的基础。
  • Spark SQL – 它是 Spark Core 之上的一个组件,它引入了一组称为架构 RDD 的新数据抽象。这既支持结构化数据,也支持半结构化数据。
  • Spark 流– 此组件支持实时数据流的容错实时处理,从而提供 API 来操作数据流。
  • MLlib(机器学习库) – Apache Spark 配备了 MLlib,其中包含各种机器学习算法、协作筛选器等。

应用

Apache Spark 的一些应用是

  • 机器学习– 众所周知,Apache Spark 配备了名为 MLlib 的机器学习库,可以执行高级分析,如群集、分类等。
  • 事件检测– Spark 流允许组织跟踪保护系统的罕见和异常行为。

火花兼容性

  • 文件格式– Spark 支持 Hadoop 支持的所有文件格式,从非结构化(如文本)到结构化格式(如序列文件)。但是,如前所述,使用适当的文件格式可以带来更好的性能
  • 数据库– 支持许多像卡桑德拉,Hbase,弹性搜索与Hadoop连接器和自定义火花连接器的帮助。
  • 使用

    Spark 是一个强大的工具,它提供了交互式外壳以交互方式分析数据。以下各点将突出显示打开、使用和关闭火花壳。

    打开火花外壳

    通常,Spark 是使用 Scala 构建的。键入以下命令以启动火花壳。

    $ spark-shell

    hadoop spark-shell

    如果”火花”外壳成功打开,您将找到以下屏幕。输出”Spark 上下文作为 sc 提供”的最后一行表示 Spark 已自动创建名称 sc 的火花上下文对象。如果不存在此,则在开始之前,创建 SparkContext 对象。

    hadoop SparkContext

    现在,您都准备继续使用 Scala 程序。

    如果需要,按”Ctrl_z”从火花壳中出来。

    火花上下文

    SparkContext 可以连接到几种类型的群集管理器,这些群集管理器可以跨应用程序分配资源。让我用两种不同的语言来显示两种不同的场景。

    让我们从引入的数据中找出博物馆计数,使用Scala并将输出作为 CSV 文件写回 Hadoop。

    Scala

    xxxxxxxxx
    1
    1
    df1 = 火花.sql ("选择博物馆名称,Families_Count从家庭顺序的长度 (Families_Count) desc, Families_Count desc"
    2
    
    

    length(Families_Count)

    完成后,将 Spark DataFrame 编写为 CSV 文件。默认行为是将输出保存在多个部件*中。提供的路径中的 CSV 文件。让我们查询我们回信的文件夹。您可以看到”top_museums.csv”,它不是 CSV 文件,而是将输出保存在多个部分的目录。这种文件夹引用结构在分布式存储和处理中起着重要作用。

    hadoop@emr-header-1 root

    假设,我必须保存数据帧:

    • 映射到确切文件名而不是文件夹的路径。
    • 作为单个文件而不是多个文件写入。

    然后,合并 DF,然后保存文件。

    Spark 在阿里云上的优势

    自适应执行

    阿里云的 Spark SQL 支持自适应执行。它用于自动设置减少任务的数量并自行求解数据偏斜。通过设置随机分区数的范围,Spark SQL 的自适应执行框架可以动态调整不同作业不同阶段的缩减任务数。

    数据倾斜

    数据偏斜是指某些任务在处理中涉及过多数据的情况这可以自动检测偏斜数据并执行运行时优化。

    最佳实践

    • 如果可能,不要收集大型 RDD,而更喜欢默认数据集 API 而不是 RDD。
    • 避免使用 UDF 并将其替换为 Spark SQL 函数。
    • 执行 HDFS 读/写作业时,将每个执行器的并发作业数设置为小于或等于 5 用于读取和写入。
    • 一般提示是查找执行时间并相应地提升作业。

    希望你喜欢学习火花。我们的下一步是探索使用阿里云 UI 创建和提交各种作业,以及执行查询和分析。在下一篇文章中,我们将引导您介绍 Hive 的基础知识,包括大数据应用程序的表创建和其他基本概念。

    “目标是将数据转化为信息,将信息转化为洞察力,”卡莉·菲奥里纳

    进一步阅读

    如何为 OCR 学习准备数据

    业务洞察的数据探索和数据准备

    2019 年 Gartner 数据准备市场指南中的 3 个要点

    Comments are closed.