大数据 技术与应用(五)Scala与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) 开发,可用来构建大型的、低延迟的数据分析应用程序。
在这里插入图片描述
仔细比对就能明白,其实spark只是一个计算框架,它的能力是在现有数据的基础上提供一个高性能的计算引擎,然后提供一些上层的处理工具比如做数据查询的Spark SQL、做机器学习的MLlib等;而hadoop的功能则更加全面,它是包括了数据存储(HDFS)、任务计划和集群资源管理(YARN)以及离线并行计算(MapReduce)的一整套技术栈。因此可以看出,spark其实是依赖于第三方的数据源的,但这也是spark灵活的地方,它能够配合HBase、Hive,以及关系型数据库Oracle、Mysql等多种类型的数据工作。

一、Spark与Scala版本兼容问题:

Spark运行在Java 8 +,Python 2.7 + / 3.4 +和R 3.1+上。对于Scala API,Spark 2.4.2使用Scala 2.12。您需要使用兼容的Scala版本(2.12.x)。
请注意,自Spark 2.2.0起,对2.6.5之前的Java 7,Python 2.6和旧Hadoop版本的支持已被删除。自2.3.0起,对Scala 2.10的支持被删除。自Spark 2.4.1起,对Scala 2.11的支持已被弃用,将在Spark 3.0中删除。
https://spark.apache.org/docs/latest/index.html

二、官网下载安装Scala:scala-2.12.8.tgz

https://www.scala-lang.org/download/
tar -zxvf scala-2.12.8.tgz -C /opt/module
mv scala-2.12.8 scala

测试:scala -version
启动:scala

三、官网下载安装Spark:spark-2.4.2-bin-hadoop2.7.tgz

https://www.apache.org/dyn/closer.lua/spark/spark-2.4.2/spark-2.4.2-bin-hadoop2.7.tgz
解压、重命名
启动spark
①先启动hadoop 环境

start-all.sh

②启动spark环境
进入到SPARK_HOME/sbin下运行start-all.sh

/opt/module/spark/sbin/start-all.sh

[注] 如果使用start-all.sh时候会重复启动hadoop配置,需要./在当前工作目录下执行命令
jps 观察进程 多出 worker 和 mater 两个进程。
查看spark的web控制页面:http://bigdata128:8080/
显示spark的端口是7070
③启动Spark Shell
此模式用于interactive programming,先进入bin文件夹后运行:spark-shell
SecureCRT 下 spark-shell 下scala> 命令行无法删除,解决办法:
https://blog.csdn.net/nicolewjt/article/details/87368749
④退出Spark Shell

scala> :quit

四、使用Spark Shell编写代码

读取本地文件

scala>val textFile = sc.textFile("file:///bigdata/spark/code/wordcount/word.txt")

显示第一行内容

textFile.first()

用spark shell进词频统计

scala>val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)

查看结果

wordCount.collect()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值