spark开发环境搭建(idea和maven)

来源:互联网 发布:中国联通软件开发待遇 编辑:程序博客网 时间:2024/06/05 23:58

spark idea maven开发环境的安装网上有很多教程,笔者在此就不过多阐述了,可以参考spark idea maven开发环境配置。


结合网友整理的资料,简单总结一下搭建这套开发环境的主要步骤,以及项目中用到的一些不一样的地方:

1.下载,安装idea,spark,scala,maven等;

2.在idea中安装scala插件;

3.新建一个maven工程,在project structure里面设置jdk(project选项里面)和scala sdk(global libraries里面),另外,右击工程名称添加scala框架支持(可以创建scala类等);

4.由于项目需求,需要在spark中部署实时处理和离线处理两个工程,故在工程下再创建两个maven module,命名为streaming和offline,一个用于实时计算,一个用于离线计算,在生产环境中,使用maven单独打两个包提交到spark执行任务;

5.随便挑选一个module,如offline,在src/main/下创建scala目录,并make directory as sources root。在pom文件中引入spark-core相关的依赖,然后新建一个scala的Main Object类 ,编写hello world demo,本地直接运行,成功。
object Main {  def main(args: Array[String]) {    val conf = new SparkConf().setAppName("mySpark")    //setMaster("local") 本机的spark就用local,远端的就写ip    //如果是打成jar包运行则需要去掉 setMaster("local")因为在参数中会指定。//    conf.setMaster("local")    val sc =new SparkContext(conf)    val rdd =sc.parallelize(List(1,2,3,4,5,6)).map(_*3)    val mappedRDD=rdd.filter(_>10).collect()    //对集合求和    println(rdd.reduce(_+_))    //输出大于10的元素    for(arg <- mappedRDD)      print(arg+" ")    println()    println("math is work")  }}
6.将offline模块单独使用maven打包jar。在新建的工程pom文件中,还需要额外引入maven和scala的打包相关插件,
<build>        <plugins>            <plugin>                <groupId>org.scala-tools</groupId>                <artifactId>maven-scala-plugin</artifactId>                <version>2.15.2</version>                <executions>                    <execution>                        <goals>                            <goal>compile</goal>                            <goal>testCompile</goal>                        </goals>                    </execution>                </executions>            </plugin>            <plugin>                <artifactId>maven-compiler-plugin</artifactId>                <version>3.6.0</version>                <configuration>                    <source>1.8</source>                    <target>1.8</target>                </configuration>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-surefire-plugin</artifactId>                <version>2.19</version>                <configuration>                    <skip>true</skip>                </configuration>            </plugin>        </plugins>    </build>
在offline模块下,mvn clean package,打包,上传到spark集群,执行spark-submit命令,如下
spark-submit --class com.xysy.boss.Main --master spark://master:7077 /opt/offline-1.0-SNAPSHOT.jar
运行成功。至此,基本开发环境搭建完毕。
注意:将工程或module打成jar包时,spark相关依赖jar包不需要包含在内,因为spark集群本身已经提供了jar包,打进去文件会变得很大,故在spark相关依赖中加入<scope>provided</scope>
原创粉丝点击