spark学习记录(day01)

815 阅读2分钟

一:spark概述

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。(摘自百度文库)

二:下载安装

2.1:下载地址

spark.apache.org/downloads.h… 点击下载,我们下载默认下载最新版本的2.4.0

2.2:安装spark

安装环境:macOS Mojave jdk1.8 下载后解压文件

tar -x spark-2.4.0-bin-hadoop2.7.tar

2.3:启动

spark 交互shell有python和scala两种类型,此处默认使用scal-shell模式启动

sh /bin/spark-shell

启动成功页面

三:第一个测试用例

3.1:现在我们要统计一下spark内的readme.md 文档的字数和第一行的文字

执行命令:

    val lines = sc.textFile("README.md")  //创建一个RDD
    lines.count()  //统计RDD元素的个数
    lines.first() //这个RDD第一个元素

此时出现报错信息:

通过查看可以知道是文件的路径不对,改为正确的文件路径

此时可以发现命令正确执行了,这个文档有105个元素,第一行的文字是 # Apache Spark
至此我们的spark初体验就完成了