使用Scala和Java编写Spark程序。
Spark编程
Scala实现
sbt
首先安装sbt
unzip sbt-1.2.6.zip -d /usr/local/
赋予权限
sudo chown –R hadoop /usr/local/
添加进环境变量PATH中vim ~/.bashrc。
执行sbt version看是否安装成功,此时会下载一些依赖,确保联网。

编程
在/home/hadoop目录下创建sparkapp文件夹,作为程序根目录
mkdir ./sparkapp
mkdir –p ./sparkapp/src/main/scala
接着在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"
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))
}
使用sbt打包scala程序,在sparkapp目录下新建simple.sbt:
name := "Simple Project"
version := "1.0"
scalaVersion := "2.11.8"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.3.2"
打包成JAR包:
sbt package

运行
将生成的jar包通过spark-submit提交到Spark中运行:
/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:"

Java实现
maven
安装maven,解压安装到/usr/local/maven目录下,并给予hadoop用户该目录的权限:
sudo unzip apache-maven-3.3.9-bin.zip -d /usr/local
mv apache-maven-3.3.9 maven
将usr/local/maven/bin加入PATH:./bashrc并source。
mkdir -p ./sparkapp2/src/main/java
编程
在/home/hadoop目录下创建sparkapp2文件夹,作为应用程序的根目录,并创建子目录mkdir –p ./sparkapp2/src/main/java
vim ./sparkapp2/src/main/java/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

这篇博客详细介绍了如何使用Scala和Java进行Spark编程。首先讲解了Scala环境下sbt的安装与配置,然后展示了如何编写和打包Scala程序。接着转向Java实现,介绍了maven的安装,以及Java项目的构建和打包过程。最后,文章提到了如何在集群上运行这些程序,无论是Java还是Scala,只需更改IP地址即可提交到Spark集群执行。
最低0.47元/天 解锁文章
975

被折叠的 条评论
为什么被折叠?



