spark 独立应用编程之 Java 编程

文章更新于:2020-04-03
按照惯例,文件附上链接放在文首。

文件名:apache-maven-3.6.3-bin.tar.gz
文件大小:9.1 MB
下载链接:https://www.lanzous.com/iaykx6d
SHA256: 26AD91D751B3A9A53087AEFA743F4E16A17741D3915B219CF74112BF87A438C5

一、安装 maven

1、下载 maven

  1. 你可以去官网 https://maven.apache.org/download.cgi#Files 下载。
  2. 也可以使用文首提供的蓝奏链(注意校验Hash)。

2、解压安装

# 解压到 /usr/local
sudo tar -zxvf apache-maven-3.6.3-bin.tar.gz -C /usr/local | tail -n 10

# 改名和修改权限
cd /usr/local/
sudo mv apache-maven-3.6.3/ maven
sudo chown -R bigdata:bigdata maven

解压安装

3、运行示例程序

  1. 现在用户家目录创建一个目录树 ~/sparkapp2/src/main/java
cd ~
mkdir -p sparkapp2/src/main/java
  1. 然后在这个目录树中创建程序文件 SimpleApp.java
vim ~/sparkapp2/src/main/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);
            }
        }
  1. 接着创建声明文件(声明该独立应用程序的信息以及与Spark的依赖关系)
vim ~/sparkapp2/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>
  1. 最后你可以使用 find 命令查看一下文件结构,如果没有问题你就可以使用 maven 打包了。
find ~/sparkapp2/

# 执行打包命令
cd sparkapp2/
/usr/local/maven/bin/mvn package

运行截图如下:
写文件

  1. 当看到绿色的 SUCCESS 就代表打包成功了,如下图:

打包成功
注:上面标的是 1 个小时,但我感觉打包了不止一个小时,等待总是漫长的~

  1. 提交程序运行
/usr/local/spark/bin/spark-submit --class "SimpleApp" ~/sparkapp2/target/simple-project-1.0.jar
#上面命令执行后会输出太多信息,可以不使用上面命令,而使用下面命令查看想要的结果

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


# 参数解读如下:
./bin/spark-submit 
  --class <main-class>  //需要运行的程序的主类,应用程序的入口点
  --master <master-url>  //Master URL,下面会有具体解释
  --deploy-mode <deploy-mode>   //部署模式
  ... # other options  //其他参数
  <application-jar>  //应用程序JAR包
  [application-arguments] //传递给主类的主方法的参数

这里放下运行第一条命令的截图:

运行结果
注:具体可参见林子雨教授博客:Spark2.1.0入门:Spark的安装和使用

二、Enjoy!

发布了75 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_21516633/article/details/105298006