一.spark介绍
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是–Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
二.spark三个特点
1.首先,高级 API 剥离了对集群本身的关注,Spark 应用开发者可以专注于应用所要做的计算本身。
2.其次,Spark 很快,支持交互式计算和复杂算法。
3.最后,Spark 是一个通用引擎,可用它来完成各种各样的运算,包括 SQL 查询、文本处理、机器学习等,而在 Spark 出现之前,我们一般需要学习各种各样的引擎来分别处理这些需求。
一、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中删除。
二、官网下载安装Scala:scala-2.12.8.tgz
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
解压、重命名
启动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编写代码
读取本地文件
显示第一行内容
读取HDFS文件
对上述hdfs根目录下f1.txt文件进行词频统计