当前位置:   article > 正文

Spark的安装和使用_spark安装

spark安装
  • 安装Hadoop

Hadoop的安装与使用:https://blog.csdn.net/weixin_67281754/article/details/130544582

Hadoop伪分布式的安装:https://blog.csdn.net/weixin_67281754/article/details/130544874

  • 安装spark

1.解压spark-3.5.1,然后改名赋予权限:

sudo tar -zxf ~/Downloads/spark-3.5.1-bin-without-hadoop.tgz -C /usr/local

cd /usr/local

sudo mv ./spark-3.5.1-bin-without-hadoop/ ./spark

sudo chown -R hadoop:hadoop ./spark           //此处的Hadoop为你的用户名

  1. 修改Spark的配置文件spark-env.sh

Cd /usr/local/spark

cp ./conf/spark-env.sh.template ./conf/spark-env.sh

  1. 编辑spark-env.sh文件

vim ./conf/spark-env.sh

在第一行加入:export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

  1. 通过运行Spark自带的示例,验证Spark是否安装成功

Cd /usr/local/spark

bin/run-example SparkPi

  • 在Spark shell中运行代码
  1. 使用命令进入spark-shell环境

bin/spark-shell

使用命令“:quit”退出Spark Shell

注意:此处的spark和scala版本号后面要用)

  • Spark独立应用程序编程
  • 编写scala独立应用程序
  1. 安装sbt

sudo mkdir /usr/local/sbt       //创建安装目录

cd ~/Downloads/

sudo tar -zxvf ./sbt-1.9.9.tgz -C /usr/local

cd /usr/local/sbt

sudo chown -R hadoop /usr/local/sbt          //此处的Hadoop为当前用户名

cp ./bin/sbt-launch.jar ./             //把bin目录下的sbt-launch.jar复制到sbt的安装目录下

vim /usr/local/sbt/sbt

在脚本文件加入的代码如下:

#!/bin/bash

SBT_OPTS="-Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M"

java $SBT_OPTS -jar `dirname $0`/sbt-launch.jar "$@"

                                                      

为该Shell脚本文件增加可执行权限:

chmod u+x /usr/local/sbt/sbt

可以使用如下命令查看sbt版本信息(可能需要几分钟):

Cd /usr/local/sbt

sudo ./sbt sbtVersion       //如果有权限可以不用加sudo

  1. 编写Scala应用程序

在终端中执行如下命令创建一个文件夹 sparkapp 作为应用程序根目录:

Cd ~

mkdir ./sparkapp

mkdir -p ./sparkapp/src/main/scala

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

vim ./sparkapp/src/main/scala/SimpleApp.scala

添加代码如下(目前不需要理解代码的具体含义,只需要理解如何编译运行代码就可以):

    /* SimpleApp.scala */

    import org.apache.spark.SparkContext

    import org.apache.spark.SparkContext._

    import org.apache.spark.SparkConf

    object SimpleApp {

        def main(args: Array[String]) {

            val logFile = "file:///usr/local/spark/README.md" // Should be some file on your system

            val conf = new SparkConf().setAppName("Simple Application")

            val sc = new SparkContext(conf)

            val logData = sc.textFile(logFile, 2).cache()

            val numAs = logData.filter(line => line.contains("a")).count()

            val numBs = logData.filter(line => line.contains("b")).count()

            println("Lines with a: %s, Lines with b: %s".format(numAs, numBs))

        }

    }

(该程序计算 /usr/local/spark/README 文件中包含 "a" 的行数 和包含 "b" 的行数。代码第8行的 /usr/local/spark 为 Spark 的安装目录,如果不是该目录请自行修改。不同于 Spark shell,独立应用程序需要通过 `val sc = new SparkContext(conf)` 初始化 SparkContext,SparkContext 的参数 SparkConf 包含了应用程序的信息。)

  1. 使用sbt打包Scala程序

在./sparkapp 中新建文件 simple.sbt

vim ./sparkapp/simple.sbt

添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系注意:此时的版本号需要改成上面提到过的版本号

name := "Simple Project"

version := "1.0"

scalaVersion := "2.12.18"

libraryDependencies += "org.apache.spark" %% "spark-core" % "3.5.1"

为保证 sbt 能正常运行,先执行如下命令检查整个应用程序的文件结构:

cd ~/sparkapp

Find .

文件结构应如下图所示:

接着,就可以通过如下代码将整个应用程序打包成 JAR(首次运行同样需要下载依赖包需要几分钟 ):

/usr/local/sbt/sbt package             //如果没有权限需要加sudo

打包成功的话,会输出如下内容:

生成的 jar 包的位置为 ~/sparkapp/target/scala-2.12/simple-project_2.12-1.0.jar

  1. 通过 spark-submit 运行程序

最后,就可以将生成的 jar 包通过 spark-submit 提交到 Spark 中运行了,命令如下:

/usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp/target/scala-2.12/simple-project_2.12-1.0.jar

最终得到的结果如下:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/798001
推荐阅读
相关标签
  

闽ICP备14008679号