当前位置 博文首页 > qq262593421的博客:IDEA 编写 第一个spark项目
scala 2.11.12 下载:https://www.scala-lang.org/download/
scala 2.11.12(Linux):scala-2.11.12.tgz
scala 2.11.12(windows):scala-2.11.12.zip
IDEA 新建一个 Maven项目
Maven项目创建成功提示
[INFO] BUILD SUCCESS
pom.xml 参考:
https://blog.csdn.net/qq262593421/article/details/105769886
创建Object对象
package com.xtd.spark
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
class Example {
def sparkSQL(path:String): Unit = {
// D:/Hadoop/Spark/spark-2.4.0-bin-without-hadoop/examples/src/main/resources/employees.json
val sparkConf = new SparkConf()
sparkConf.setAppName("SparkExample").setMaster("local[2]")
val context = new SparkContext(sparkConf)
val sqlContext = new SQLContext(context)
val people = sqlContext.read.format("json").load(path)
people.printSchema()
people.show()
context.stop()
}
}
object Example{
def main(args: Array[String]): Unit = {
val path = args(0)
val example = new Example
example.sparkSQL(path)
println("path: "+path)
}
}
点击右上角的对象名称,编辑项目配置,添加传递参数(本地文件添加前缀file:///)
file:///D:/Hadoop/Spark/spark-2.4.0-bin-without-hadoop/examples/src/main/resources/employees.json
?employees.json 文件 ,这个文件在spark安装文件根目录下的examples下可找到
{"name":"Michael"}
{"name":"Andy", "age":30}
{"name":"Justin", "age":19}
运行会出现以下成功提示
如何打包到集群?
右击项目,选择 Open in Terminal,进入CMD控制台
输入Maven编译命令
mvn clean package -DskipTest
接下来把 jar 包上传至 Linux 服务器上,通过?spark-submit 提交 jar 到集群?
客户端模式
spark-submit \
--class com.xtd.spark.Example \
--deploy-mode client \
/home/spark/jar/spark2-1.0.jar \
file:///home/spark/examples/employees.json
?spark?on?yarn?
spark-submit \
--class com.xtd.spark.ExampleHDFS \
--master yarn \
--deploy-mode cluster \
--driver-memory 2g \
--executor-cores 1 \
--executor-memory 1g \
/home/spark/jar/spark-1.0.jar \
/user/spark/examples/resources/employees.json
注意事项
/home/spark/jar/spark-1.0.jar?是jar包在Linux上的路径,jar包上传在哪就写哪
file:///home/spark/examples/employees.json 这行是传递的参数,file://表示employees.json文件在Linux上
更多参数设置可以输入命令?spark-submit --help
运行结果
如果Maven项目已经创建,可右键点击项目添加Scala框架的支持,然后选择Scala,在源码目录便可创建Scala代码
如果Scala SDK没有配置需要先配置 Scala SDK
如果需要项目需要分模块,可直接删除父目录的src文件,然后再创建子模块(创建方式和创建普通Maven项目一样)
在 Maven build plugins 标签中使用?maven-assembly-plugin 可将程序包和依赖jar包一起打出来
<!-- maven-assembly-plugin 打依赖包 -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.marinfo.demo.RunTaskVersion2</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
?
cs