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
③将解压后的包名改为scala cd /opt/module mv scala-2.12.8 scala
④在/etc/profile文件中配置环境变量 vim /etc/profile
export SCALA_HOME=/opt/module/scala export PATH=$PATH:$SCALA_HOME/bin⑤测试: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
②将下载好的包上传之后解压到相应目录: tar -zxvf ~/spark-2.4.2-bin-hadoop2.7.tgz -C /opt/module
③将解压后的包名改为spark cd /opt/module mv spark-2.4.2-bin-hadoop2.7 spark
④在/etc/profile文件中配置环境变量 vim /etc/profile
export SPARK_HOME=/opt/module/spark export PATH=$PATH:$SPARK_HOME/bin⑤启动spark Ⅰ、启动spark之前要先启动hadoop 环境 start-all.sh Ⅱ、启动spark环境 进入到SPARK_HOME/sbin下运行start-all.sh /opt/module/spark/sbin/start-all.sh [注] 如果使用start-all.sh时候会重复启动hadoop配置,需要./在当前工作目录下执行命令 cd /opt/module/spark/sbin ./start-all.sh Ⅲ、jps 观察进程 多出 worker 和 mater 两个进程。 查看spark的web控制页面:http://bigdata128:8080/ 显示spark的端口是7070
此模式用于interactive programming,先进入bin文件夹后运行:spark-shell 配置环境变量后直接根目录运行:spark-shell ①加载本地文件: scala>val textFile = sc.textFile(“file://./word.txt”) (//后面为你的要计算词频的文件的路径)
②加载hdfs文件:(先把文件上传到hdfs: hadoop fs -put ./word.txt / ) 下面三条命令是等价的 scala>val textFile = sc.textFile(“hdfs://bigdata128:9000/user/hadoop/word.txt”) scala>val textFile = sc.textFile("/user/hadoop/word.txt") scala>val textFile = sc.textFile(“word.txt”)
③打印文件第一行: scala>textFile.first()
④词频统计; scala>val wordCount = textFile.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey((a, b) => a + b)
⑤scala>wordCount.collect()
⑥Sbt打成jar包执行wordcount,(打包需要额外安装sbt)这里附上已打好的包 链接:https://pan.baidu.com/s/1rJpXjUz_wuVrIcJip3nayA 提取码:kf9q 复制这段内容后打开百度网盘手机App,操作更方便哦
把jar包放在执行命令的目录 需要在执行命令的目录新建一个待统计的文件、名为word.txt 下面的命令在linux bash上执行: spark-submit --class “WordCount” Spark2.12.8wdct.jar 执行结果: Spark学习之路 (五)Spark伪分布式安装 https://www.cnblogs.com/qingyunzong/p/8903714.html#_label4_0
spark1.2.0版本搭建伪分布式环境 https://blog.csdn.net/stark_summer/article/details/43495623
Spark2.1.0入门:第一个Spark应用程序:WordCount http://dblab.xmu.edu.cn/blog/1311-2/
子雨大数据之Spark入门教程(Scala版) http://dblab.xmu.edu.cn/blog/spark/#more-924
Spark入门:Spark运行架构 http://dblab.xmu.edu.cn/blog/972-2/
Spark入门:RDD的设计与运行原理 http://dblab.xmu.edu.cn/blog/985-2/
分布式计算归根到底还是一个Map和Reduce操作,Map操作对每个数据块进行计算,Reduce操作对结果进行汇总,现在一些NoSQL分布式数据库其实也是这么一套计算框架,只是map和reduce太基础,太简陋,实现相关的业务时开发比较复杂,不符合生产力发展的需求,这样Spark对map和reduce进行了抽象和封装提出了RDD的概念
RDD的提出是Spark的最大的进步,它让我们不再关注计算本身,以前我们老想着map,reduce啥的,RDD对数据集进行抽象,我们的关注点变成了数据集本身,又借鉴了函数式编程的一些思想,我们可以对数据集做各种各样的操作(spark的transformation和action),Spark框架底层转换了map和reduce的操作,大大的提高了生成力。当然还加入了一些优化,比如map的输出不需要落地,其实要做大数据的计算怎么可能不落地。做大数据的聚集操作时磁盘和网络IO依旧是制约速度的主要原因 https://www.cnblogs.com/gaoxing/p/4916785.html
《深入理解SPARK:核心思想与源码分析》一书对Spark1.2.0版本的源代码进行了全面而深入的分析,旨在为Spark的优化、定制和扩展提供原理性的指导。阿里巴巴集团专家鼎力推荐、阿里巴巴资深Java开发和大数据专家撰写。 本书分为三篇: 准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。 核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及部署模式的原理和源码分析。通过这部分的内容,读者可以通过源码剖析更加深入理解Spark的核心设计与实现,以便在实际使用中能够快速解决线上问题并对性能进行调优。 扩展篇(第8~11章),主要讲解基于Spark核心的各种扩展及应用,包括SQL处理引擎、Hive处理、流式计算框架Spark Streaming、图计算框架GraphX、机器学习库MLlib等内容。通过阅读这部分内容,读者可以扩展实际项目中对Spark的应用场景,让Spark焕发活力。
与 Hadoop 对比,如何看待 Spark 技术? https://www.zhihu.com/question/26568496/answer/41608400
Spark RDD API(scala) https://www.cnblogs.com/jinggangshan/p/8116948.html
一文读懂大数据计算框架与平台 http://gngj.gog.cn/system/2017/05/02/015659295.shtml
