学习笔记三——spark下载安装

  今天下载安装了spark,下面是下载过程:

  (1)根据林子雨老师的下载教程,选择spark3.0.0进行下载,点击Download后面的下载链接进行下载。网址(http://spark.apache.org/downloads.html)

  (2)解压

  (3)修改Spark的配置文件spark-env.sh,第一行添加“export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

  (4)检验是否安装成功

  以下是我的检验结果:

  接下来使用命令:bin/spark-shell就可以开始使用scala代码进行调试了。

  一些RDD基础操作试验:

  计算配置文件ReADME.md中包含“Spark”字符串的行数,两种方法 :

1     var count1 = textFile.filter(line=>line.contains("Spark"))
2     count1.count()

1     textFile.filter(line=>line.contains("Spark")).count();

  运行结果:

  通过如下代码可以找到包含单词最多的那一行内容共有几个单词:

1     //①不导入库
2     textFile.map(line => line.split(" ").size).reduce((a, b) => if (a > b) a else b)
3     //②导入Math库
4     import java.lang.Math
5     textFile.map(line => line.split(" ").size).reduce((a, b) => Math.max(a, b))

  使用“Ctrl+D”组合键,退出Spark Shell。

  编写Scala独立应用程序

  ① 因为使用 Scala 编写的程序需要使用 sbt 进行编译打包,Java 程序使用 Maven 编译打包,而 Python 程序通过 spark-submit 直接提交。所以我们想要使用scala代码进行编写,那么就需要下载sbt。

  第一次下载后运行命令“./sbt sbt-version”发现如下报错:

  

  网上搜索了一下,发现有人说再来一次,我尝试了一下发现果真可以了。

  

  ② 编写Scala应用程序

  在 ./sparkapp/src/main/scala 下建立一个名为 SimpleApp.scala 的文件,代码如下:

 1 /* SimpleApp.scala */
 2 import org.apache.spark.SparkContext
 3 import org.apache.spark.SparkContext._
 4 import org.apache.spark.SparkConf
 5  
 6 object SimpleApp {
 7     def main(args: Array[String]) {
 8         val logFile = "file:///usr/local/spark/README.md" // Should be some file on your system
 9         val conf = new SparkConf().setAppName("Simple Application")
10         val sc = new SparkContext(conf)
11         val logData = sc.textFile(logFile, 2).cache()
12         val numAs = logData.filter(line => line.contains("a")).count()
13         val numBs = logData.filter(line => line.contains("b")).count()
14         println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))
15     }
16 }
应用程序

   ③ 使用sbt打包Scala程序

  通过 sbt 进行编译打包。 在./sparkapp 中新建文件 simple.sbt(vim ./sparkapp/simple.sbt),添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系:

1 name := "Simple Project"
2 version := "1.0"
3 scalaVersion := "2.11.8"
4 libraryDependencies += "org.apache.spark" %% "spark-core" % "2.1.0"

  执行如下命令检查整个应用程序的文件结构:

1     cd ~/sparkapp
2     find . 

  

  通过如下代码将整个应用程序打包成 JAR(首次运行同样需要下载依赖包 ):

1     /usr/local/sbt/sbt package

  结果:

  

  ④通过 spark-submit 运行程序

  将生成的 jar 包通过 spark-submit 提交到 Spark 中运行。

1 /usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar
2 #上面命令执行后会输出太多信息,可以不使用上面命令,而使用下面命令查看想要的结果
3 /usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp/target/scala-2.11/simple-project_2.11-1.0.jar 2>&1 | grep "Lines with a:"

  结果:

  

 

posted @ 2020-02-02 17:13  星*月  阅读(1296)  评论(0编辑  收藏  举报