idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行
2017-10-25 09:32
696 查看
1、 创建基于maven的scala项目步骤
(1)创建一个maven项目
File->new project -> maven
不需要选择archetype,直接点击Next
Next
Finish,完成创建。项目目录如下:
(2)将scala添加到项目中
Add framework support
选择scala,以及对应的scala-sdk,完成后点击ok!
(3)创建wordcount对象
Ok,在WordCount中编写main方法作为程序的入口,如下:
(4)在maven的pox.xml中添加jar依赖
特别提醒:注意scala和spark的版本要相符合,否则运行会报错,下图用的是scala-2.10.4和spark-1.6.3。
(5)编写wordcount代码
(6)运行(快捷键:crtl+shift+f10)
(7)打包jar
上图中删除多余的jar一定要做,否则在spark集群中运行时会报错。
Ok!
生成的jar如图。
(8)在spark on yarn集群上运行
使用spark-submit部署应用
1) spark-submit的一般形式
bin/spark-submit [options] <app jar | python file> [app options]
<app jar | python file>表示包含应用入口的JAR包或者Python脚本
[app options]是传给你的应用的选项
spark-submit的一些常见标记
标记 描述
--master 表示要连接的集群管理器
--deploy-mode 选择在本地启动驱动器程序,还是在集群中的一台工作节点机器上启动。在客户端模式下,spark-submit会将驱动器程序运行在spark-submit被调用的这台机器上。在集群模式下,驱动器程序会被传输并被执行于集群的一个工作节点上,默认是本地模式。
--class 运行Java或者Scala程序应用的主类
--name 应用的显示名,会显示在spark的网页用户界面中
--jars 需要上传并放在应用的CLASSPATH中的JAR包的雷彪。如果应用依赖于少量第三方的jar包,可以把它们放在这个参数中
--files 需要放在应用工作目录中的文件雷彪。这个参数一般用来放需要分发到各节点的数据文件
--py-files 需添加到PYTHONPATH中的文件的雷彪。其中可以包含.py /.egg以及.zip文件
--executor-memory 执行器进程使用的内存量,以字节为单位,可以使用后缀指定更大的单位,比如512M或者15g
--driver-memory 驱动器进程使用的内存量,以字节为单位。可以使用后缀指定更大的单位,比如512m或者15g
./bin/spark-submit
--master spark:// hostname:7077
--deploy-mode cluster
--class com.databricks.examples.SparkExample
--name "Example program"
--jars dep1.jar,dep2.jar,dep3.jar
--total-executor-core 300
--executor-memory 10g
2) WordCount运行示例
说明:java文件夹已经mark as sources root了,所以在打包成jar的包运行过程中写main方法所在的类时直接从java目录下开始写即可。
运行命令行:
最后两个为jar包所在位置和输入文件在HDFS上的路径。注意spark-submit所在的位置。运行结果如图:
(1)创建一个maven项目
File->new project -> maven
不需要选择archetype,直接点击Next
Next
Finish,完成创建。项目目录如下:
(2)将scala添加到项目中
Add framework support
选择scala,以及对应的scala-sdk,完成后点击ok!
(3)创建wordcount对象
Ok,在WordCount中编写main方法作为程序的入口,如下:
(4)在maven的pox.xml中添加jar依赖
特别提醒:注意scala和spark的版本要相符合,否则运行会报错,下图用的是scala-2.10.4和spark-1.6.3。
(5)编写wordcount代码
(6)运行(快捷键:crtl+shift+f10)
(7)打包jar
上图中删除多余的jar一定要做,否则在spark集群中运行时会报错。
Ok!
生成的jar如图。
(8)在spark on yarn集群上运行
使用spark-submit部署应用
1) spark-submit的一般形式
bin/spark-submit [options] <app jar | python file> [app options]
<app jar | python file>表示包含应用入口的JAR包或者Python脚本
[app options]是传给你的应用的选项
spark-submit的一些常见标记
标记 描述
--master 表示要连接的集群管理器
--deploy-mode 选择在本地启动驱动器程序,还是在集群中的一台工作节点机器上启动。在客户端模式下,spark-submit会将驱动器程序运行在spark-submit被调用的这台机器上。在集群模式下,驱动器程序会被传输并被执行于集群的一个工作节点上,默认是本地模式。
--class 运行Java或者Scala程序应用的主类
--name 应用的显示名,会显示在spark的网页用户界面中
--jars 需要上传并放在应用的CLASSPATH中的JAR包的雷彪。如果应用依赖于少量第三方的jar包,可以把它们放在这个参数中
--files 需要放在应用工作目录中的文件雷彪。这个参数一般用来放需要分发到各节点的数据文件
--py-files 需添加到PYTHONPATH中的文件的雷彪。其中可以包含.py /.egg以及.zip文件
--executor-memory 执行器进程使用的内存量,以字节为单位,可以使用后缀指定更大的单位,比如512M或者15g
--driver-memory 驱动器进程使用的内存量,以字节为单位。可以使用后缀指定更大的单位,比如512m或者15g
./bin/spark-submit
--master spark:// hostname:7077
--deploy-mode cluster
--class com.databricks.examples.SparkExample
--name "Example program"
--jars dep1.jar,dep2.jar,dep3.jar
--total-executor-core 300
--executor-memory 10g
2) WordCount运行示例
说明:java文件夹已经mark as sources root了,所以在打包成jar的包运行过程中写main方法所在的类时直接从java目录下开始写即可。
运行命令行:
最后两个为jar包所在位置和输入文件在HDFS上的路径。注意spark-submit所在的位置。运行结果如图:
相关文章推荐
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行(可以使用)
- Idea创建maven工程 上传提交Spark运行 WordCount 配置依赖插件文件 全步骤
- 启动Spark Shell,在Spark Shell中编写WordCount程序,在IDEA中编写WordCount的Maven程序,spark-submit使用spark的jar来做单词统计
- windows下使用idea maven配置spark运行环境、运行WordCount例子以及碰到的问题
- Eclipse+Maven+Scala Project+Spark | 编译并打包wordcount程序
- IDEA【基本配置1】配置SBT 和 scala 并在spark环境中进行wordcount测试(spark集群运行模式)
- Idea 使用Maven创建Spark WordCount 案例
- Intellij IDEA开发环境搭建,scala配置及打包,jar包在spark中的运行
- Spark源码编译并在YARN上运行WordCount实例
- Spark on Yarn上实现WordCount程序
- idea构建spark开发环境,并本地运行wordcount
- Spark+scala+Idea wordcount 示例
- Storm系列(三):创建Maven项目打包提交wordcount到Storm集群
- maven学习笔记:命令行模式创建scala_spark项目并运行程序
- 编写第一个用scala写的spark任务,用sbt打包成jar,并单机模式下运行
- Storm系列(三):创建Maven项目打包提交wordcount到Storm集群
- eclipse打包jar发布到linux下运行出错(java.lang.ClassNotFoundException: cmd.WordCount$MyMapper )
- Spark local/standalone/yarn/远程调试-运行WordCount
- Idea中编写并运行Spark集群(WordCount)