文章更新于:2020-04-03
按照惯例,文件附上链接放在文首。
文件名:apache-maven-3.6.3-bin.tar.gz
文件大小:9.1 MB
下载链接:https://www.lanzous.com/iaykx6d
SHA256: 26AD91D751B3A9A53087AEFA743F4E16A17741D3915B219CF74112BF87A438C5
一、安装 maven
1、下载 maven
- 你可以去官网 https://maven.apache.org/download.cgi#Files 下载。
- 也可以使用文首提供的蓝奏链(注意校验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、运行示例程序
- 现在用户家目录创建一个目录树
~/sparkapp2/src/main/java
cd ~
mkdir -p sparkapp2/src/main/java
- 然后在这个目录树中创建程序文件
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);
}
}
- 接着创建声明文件(声明该独立应用程序的信息以及与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>
- 最后你可以使用
find
命令查看一下文件结构,如果没有问题你就可以使用maven
打包了。
find ~/sparkapp2/
# 执行打包命令
cd sparkapp2/
/usr/local/maven/bin/mvn package
运行截图如下:
- 当看到绿色的
SUCCESS
就代表打包成功了,如下图:
注:上面标的是 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的安装和使用