idea+maven+scala+spark 集成

1、安装jdk

 

2、安装idea

 

3、安装maven

 

4、安装scala 

windows下 下载msi安装文件,因为当前spark使用的scala版本为 2.10.4,因此也选择安装2.10.4版本的scala。

 

5、安装idea的scala扩展工具 

http://blog.csdn.net/stark_summer/article/details/42460527

 

6、编写hello world

 新建项目,idea选择maven创建。选择archetype(org.scala-tool.archetypes:scala-archetype-simple)

 

 修改pom,修改scala.version为 2.10.4

 添加spark引用,因为安装spark使用的1.5.2,因此包也选用1.5.2的

<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.5.2</version>
</dependency>

 添加打包maven plugin 

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<!--这里要替换成jar包main方法所在类-->
<mainClass>com.isenhome.WordCount</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<outputDirectory>out/assembly</outputDirectory>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- 指定在打包节点执行jar包合并操作 -->
<goals>
<goal>assembly</goal>
</goals>
</execution>
</executions>
</plugin>

编写代码
object WordCount {
def main(args: Array[String]) {
if (args.length < 1) {
System.err.println("Usage: com.isenhome.WordCount <master> <input>")
System.exit(1)
}

val conf = new SparkConf()
val sc = new SparkContext(conf)
val line = sc.textFile(args(0))

line.flatMap(_.split(" "))
.map((_, 1))
.reduceByKey(_ + _)
.collect()
.foreach(println)

sc.stop()
}
}


使用idea生成jar包后,放置到spark master机器上。

执行spark-submit

./spark-submit –master spark://30.85.178.161:7077 –name WordCountByscala –class com.isenhome.WordCount –executor-memory 1G /home/datauser/test/spark/scala-tool-1.0-SNAPSHOT-jar-with-dependencies.jar hdfs://hadoop-1:9000/data/test/test.dat

spark-submit命令解析

Usage: spark-submit [options] <app jar | python file> [app options]

参数名称 含义
–master MASTER_URL 可以是spark://host:port, mesos://host:port, yarn,  yarn-cluster,yarn-client, local
–deploy-mode DEPLOY_MODE Driver程序运行的地方,client或者cluster
–class CLASS_NAME 主类名称,含包名
–name NAME Application名称
–jars JARS Driver依赖的第三方jar包
–py-files PY_FILES 用逗号隔开的放置在Python应用程序PYTHONPATH上的.zip,  .egg, .py文件列表
–files FILES 用逗号隔开的要放置在每个executor工作目录的文件列表
–properties-file FILE 设置应用程序属性的文件路径,默认是conf/spark-defaults.conf
–driver-memory MEM Driver程序使用内存大小
–driver-java-options 
–driver-library-path Driver程序的库路径
–driver-class-path Driver程序的类路径
–executor-memory MEM executor内存大小,默认1G
–driver-cores NUM Driver程序的使用CPU个数,仅限于Spark Alone模式
–supervise 失败后是否重启Driver,仅限于Spark  Alone模式
–total-executor-cores NUM executor使用的总核数,仅限于Spark Alone、Spark on Mesos模式
–executor-cores NUM 每个executor使用的内核数,默认为1,仅限于Spark on Yarn模式
–queue QUEUE_NAME 提交应用程序给哪个YARN的队列,默认是default队列,仅限于Spark on Yarn模式
–num-executors NUM 启动的executor数量,默认是2个,仅限于Spark on Yarn模式
–archives ARCHIVES 仅限于Spark on Yarn模式

 

    原文作者:spark
    原文地址: https://www.cnblogs.com/isenhome/p/5083181.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞