zoukankan      html  css  js  c++  java
  • 学习笔记三——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:"

      结果:

      

  • 相关阅读:
    C#Mvc批量删除
    axure中使用HighCharts模板制作统计图表
    中继器的使用——搜索/分页/排序
    中继器的使用 —— 关联/增加/删除/修改数据
    axure母版使用实例之百度门户
    jdbc参数传递
    软件测试的原则
    linux中使用top获取进程的资源占用信息
    性能测试关键指标介绍
    怎样成为一个合格的测试工程师
  • 原文地址:https://www.cnblogs.com/liyuchao/p/12252158.html
Copyright © 2011-2022 走看看