• 它将任务分为两个阶段:Map 阶段和 Reduce 阶段。
  • Map 阶段将输入数据拆分成键值对,然后应用用户定义的函数进行处理。
  • Reduce 阶段将 Map 阶段的输出进行合并和汇总。
  • MapReduce 适用于离线数据处理,但不适合实时数据处理。

3. Spark 技术特点和概述

  • Spark 是一个通用的大数据处理框架,具有以下特点:

4. MapReduce 和 Spark 的区别

  • 速度:Spark 的运行速度通常比 MapReduce 更快。在处理相同的数据和实验环境下,如果在内存中运行,Spark 要比 MapReduce 快 100 倍;在磁盘中运行时,Spark 要比 MapReduce 快 10 倍1。这主要是因为 Spark 优化了数据处理过程,尤其是在进行迭代计算时,Spark 可以将数据保存在内存中,从而避免了频繁的磁盘 I/O 操作
  • 数据处理范式:MapReduce 主要适用于批处理,而 Spark 不仅支持批处理,还支持实时数据处理和迭代分析4。Spark 的 DAG(有向无环图)计算模型使得它在处理迭代和低延迟问题时表现优秀
  • 易用性:Spark 提供了更友好的编程接口,支持多种语言,如 Java、Scala、Python 和 R3。而 MapReduce 主要是用 Java 编写的,编程难度相对较大
  • 容错性:Spark 的 RDD(弹性分布式数据集)具有高效的容错性。当某个环节出现问题时,只需按照数据的血缘关系追溯到相应的父 RDD 即可,而无需从头开始全流程计算。相比之下,MapReduce 的容错可能只能重新计算,成本较高
  • 生态系统集成:Spark 拥有一个庞大的生态系统,包括 Spark SQL、Spark Streaming、MLlib 等组件,这些组件提供了丰富的数据处理和分析功能。而 MapReduce 的生态系统相对较小,这可能会限制其应用范围

5. 结构化数据与非结构化数据

  • 结构化数据
    结构化数据是具有标准化格式的数据,可供软件和人类高效访问。它通常以表格形式呈现,其中行和列清楚地定义数据属性。

结构化数据对于所有数据值拥有相同的属性。例如,每个预订记录都可以拥有这些属性:预订名称、活动名称、活动日期和预订金额。

结构化数据表具有将不同数据集链接在一起的公共值。例如,可以使用 customer id 和 booking id 字段将客户数据与预订数据关联起来。

结构化数据有助于进行数学分析。例如,您可以计算和测量属性的频率,并对数值数据执行数学操作。 您可以在关系数据库中存储结构化数据,并使用结构化查询语言(SQL)对其进行管理。SQL 允许您定义一个称为 架构 的数据模型,并在该模型下为您的数据确定预设规则(如字段、格式和值)。

  • 非结构化数据: 非结构化数据指未按照所设计的模型或结构进行组织的数据。非结构化数据通常被分类为定性数据,可由人类或机器生成。

非结构化数据是可供使用的数据量最大的一类数据,对其进行分析后,它可用来引导业务决策并在很多其他用例中实现业务目标。

非结构化数据通常以其原生格式进行存储。这进一步加大了将该数据转换为行之有效的见解的挑战。 尽管与结构化数据相比,使用非结构化数据更具有挑战性,但它通常包含结构化数据所不提供的丰富、详尽的信息。

非结构化数据的示例包括:文本文件、视频文件、报告、电子邮件、图像等。企业正在以指数级的速度创建数据,而绝大多数数据(80%-90%)是非结构化的。由于是定性数据,需要不同的技术和策略来进行有效分析。例如,您将非结构化数据存储在 NoSQL 数据库和数据湖中。

6. Linux简单操作命令实训练习

pwd 命令

spark用来干什么的 spark能干什么_hadoop

ls命令

spark用来干什么的 spark能干什么_hadoop_02

ls -a /命令

spark用来干什么的 spark能干什么_spark_03

ls -l / 命令

spark用来干什么的 spark能干什么_nosql_04

cd /etc/sysconfig/network-scripts/命令到网洛配置文件夹下

spark用来干什么的 spark能干什么_spark用来干什么的_05

mkdir 命令创建文件夹

spark用来干什么的 spark能干什么_spark用来干什么的_06

rm -rf /xxxx/  删除某个文件夹需要绝对路径

spark用来干什么的 spark能干什么_hadoop_07

cp 命令复制某个文件到某处

spark用来干什么的 spark能干什么_spark_08

mv 命令移动文件或者更改文件名

更改文件名

spark用来干什么的 spark能干什么_nosql_09

移动文件

spark用来干什么的 spark能干什么_hadoop_10

cat 命令查看文件内容

spark用来干什么的 spark能干什么_数据_11

tar 命令

spark用来干什么的 spark能干什么_spark_12