1.下载spark并安装,本教程安装spark-2.4.0版本,首先将群里面的spark-2.4.0-bin-without-hadoop.tgz压缩包通过finalshell上传至linux中,通过以下方式上传
在这里插入图片描述
上传成功结果如下:
在这里插入图片描述
2.能够成功安装spark 2.4.0的前提是我们已经成功安装hadoop3.1.3和Java JDK1.8(这一步之前安装hadoop的时候已经完成)
3.安装spark(local模式)

cd ~
sudo tar -zxvf 
./spark-2.4.0-bin-without-hadoop.tgz -C /usr/local
cd /usr/local
ls

在这里插入图片描述

sudo mv ./s
park-2.4.0-bin-without-hadoop/ ./spark
sudo chown -R hadoop ./spark
cd ./spark/conf
ls

在这里插入图片描述

cp spark-env.sh.template spark-env.sh
vim spark-env.sh

在spark-env.sh的首部加入这行内容

export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)

配置完成后就可以直接使用,通过运行Spark自带的示例,验证Spark是否安装成功。

cd /usr/local/spark
bin/run-example SparkPi

执行时会输出非常多的运行信息,输出结果不容易找到,可以通过 grep 命令进行过滤(命令中的 2>&1 可以将所有的信息都输出到 stdout 中,否则由于输出日志的性质,还是会输出到屏幕中):
bin/run-example SparkPi 2>&1 | grep “Pi is”
在这里插入图片描述
说明运行已经成功了!说明spark安装成功!
4.在 Spark Shell 中运行代码

./bin/spark-shell

进入spark shell界面如下:
在这里插入图片描述
现在就可以在这个界面写scala代码进行调试了

scala> val textFile=sc.textFile("file:///usr/local/spark/README.md")
scala> textFile.first()
scala> textFile.count()
scala> val lineWithSpark=textFile.filter(line=>line.contains("Spark"))
scala> lineWithSpark.count()
scala> :quit

5.spark主要操作对象是RDD,RDD可以通过多种方式灵活创建,可通过导入外部数据源建立,或者从其他的RDD转化而来
在这里插入图片描述
通过下面的语句可以将一个文件内容加载进一个RDD
在这里插入图片描述
Spark分为两种操作类型
在这里插入图片描述
常用的Action API介绍
在这里插入图片描述
常用的Transformation API介绍
在这里插入图片描述
6.Java独立应用编程
6.1首先安装maven
ubuntu中和centos中都没有自带安装maven,需要手动安装maven。首先下载群里面的apache-maven-3.6.3-bin.zip,并将其压缩包通过finalshell上传至linux中
在这里插入图片描述
安装maven

sudo unzip ./ap
ache-maven-3.6.3-bin.zip -d /usr/local
cd /usr/local
sudo mv apache-maven-3.6.3 maven
sudo chown -R hadoop ./maven

6.2Java应用程序代码
在终端执行如下命令创建一个文件夹sparkapp2作为应用程序根目录

cd ~
mkdir sparkapp2
cd sparkapp2
mkdir -p src/main/java
cd src/main/java
vim SimpleApp.java

在SimpleApp.java中加入这些内容:

/*** SimpleApp.java ***/
    import org.apache.spark.api.java.*;
    import org.apache.spark.api.java.function.Function;
    public class SimpleApp {
        public static void main(String[] args) {
            String logFile = "file:///usr/local/spark/README.md"; // Should be some file on your system
            JavaSparkContext sc = new JavaSparkContext("local", "Simple App",
                "file:///usr/local/spark/", new String[]{"target/simple-project-1.0.jar"});
            JavaRDD<String> logData = sc.textFile(logFile).cache();
 
            long numAs = logData.filter(new Function<String, Boolean>() {
                public Boolean call(String s) { return s.contains("a"); }
            }).count();
 
            long numBs = logData.filter(new Function<String, Boolean>() {
                public Boolean call(String s) { return s.contains("b"); }
            }).count();
 
            System.out.println("Lines with a: " + numAs + ", lines with b: " + numBs);
        }
    }

然后在命令行执行如下:

cd ~/sparkapp2
ls
vim pom.xml

在pom.xml中加入如下内容

 <project>
        <groupId>edu.berkeley</groupId>
        <artifactId>simple-project</artifactId>
        <modelVersion>4.0.0</modelVersion>
        <name>Simple Project</name>
        <packaging>jar</packaging>
        <version>1.0</version>
        <repositories>
            <repository>
                <id>Akka repository</id>
                <url>http://repo.akka.io/releases</url>
            </repository>
        </repositories>
        <dependencies>
            <dependency> <!-- Spark dependency -->
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_2.11</artifactId>
                <version>2.1.0</version>
            </dependency>
        </dependencies>
    </project>

查看以下内容:

find .

在这里插入图片描述
接着,我们可以通过如下代码将这整个应用程序打包成Jar(注意:电脑需要保持连接网络的状态,而且首次运行mvn package命令时,系统会自动从网络下载相关的依赖包,同样消耗可能几个小时的时间,反正我第一次打包花了五个小时,后面再次运行mvn package命令,速度就会快很多):

/usr/local/maven/bin/mvn package

下面是打包成功的截图:
在这里插入图片描述

ls
cd target
ls

在这里插入图片描述

cd /usr/local/spark
./bin/spark-submit --class "SimpleApp" ~/sparkapp2/target/simple-project-1.0.jar
./bin/spark-submit --class "SimpleApp" ~/sparkapp2/target/simple-project-1.0.jar 2>&1 | grep "Lines with a"

在这里插入图片描述

更多推荐