美文网首页
基于scala的spark开发环境搭建流程

基于scala的spark开发环境搭建流程

作者: 姜和然 | 来源:发表于2020-03-25 14:16 被阅读0次

开发工具

idea

项目管理工具

Maven

搭建步骤

参考链接:

https://blog.csdn.net/u013963380/article/details/72677212

1)环境配置

jdk1.8.0_231

scala2.11.12

2)安装工具

需要安装idea、scala、java、maven。具体安装步骤参考线上文档。

3)创建工程

File->new project

注意:如果是第一次利用maven构建scala开发spark环境的话,这里面的会有一个选择scala SDK和Module SDK的步骤,这里路径选择你安装scala时候的路径和jdk的路径就可以了。

填写相应名称

GroupId:一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

ArtifactId:为项目名称。

选择maven

首先是你的Intellij IDEA里有Maven,一般的新版本都会自带maven,而且maven的目录在IDEA安装路径下plugins下就能找到,然后再Maven home directory地址中填写maven相对应的路径,然后这里面的User settings file是你maven路径下conf里面的settings.xml文件,勾选上override,可以进行覆盖和修改。

本次将对xml进行修改,主要修改对应的maven库和增加国内仓库,具体如下:

以下截图为修改部分。

Local repository:制定本地仓库位置。可以前期下载需要的依赖文件,这样可以避免在线下载需要的时间。

点击finish后完成项目的创建。

4)目录结构配置

查看目录结构

将原始的App文件和对应test目录的文件删除

注意当idea出现以下提示时

需要点击setup scala sdk,然后选择对应的scala进行加载

将scala 目录标记为source 目录

修改pom.xml

注意将groupId 和groupId 改为自己项目对应的名字

对于各个字段的说明可以参考文档:https://www.runoob.com/maven/maven-pom.html

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.sportsdt</groupId> <artifactId>testProject</artifactId> <version>1.0-SNAPSHOT</version> <inceptionYear>2008</inceptionYear> <properties> <spark.version>2.4.0-cdh6.3.2</spark.version> <hadoop.version>3.0.0-cdh6.3.2</hadoop.version> <hbase.version>2.1.0-cdh6.3.2</hbase.version> </properties> <dependencies> <dependency> <groupId>org.scala-lang</groupId> <artifactId>scala-library</artifactId> <version>2.11.12</version> </dependency> <!-- Spark Dependencies --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.4.0-cdh6.3.2</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>${spark.version}</version> </dependency> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-hive_2.11</artifactId> <version>${spark.version}</version> </dependency> <!-- <dependency> <groupId>com.redislabs</groupId> <artifactId>spark-redis</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>${hadoop.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-client</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-common</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-server</artifactId> <version>${hbase.version}</version> </dependency> <dependency> <groupId>org.apache.hbase</groupId> <artifactId>hbase-spark</artifactId> <version>2.1.0-cdh6.3.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.47</version> </dependency>--> </dependencies> <repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> <build> <pluginManagement> <plugins> <!-- 编译scala的插件 --> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <version>3.2.2</version> </plugin> <!-- 编译java的插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>net.alchim31.maven</groupId> <artifactId>scala-maven-plugin</artifactId> <executions> <execution> <id>scala-compile-first</id> <phase>process-resources</phase> <goals> <goal>add-source</goal> <goal>compile</goal> </goals> </execution> <execution> <id>scala-test-compile</id> <phase>process-test-resources</phase> <goals> <goal>testCompile</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <executions> <execution> <phase>compile</phase> <goals> <goal>compile</goal> </goals> </execution> </executions> </plugin> <!-- 打jar插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> </configuration> </execution> </executions> </plugin> </plugins> </build></project>

5)创建scala object

在对应package点击鼠标右键,选择scala class

选择object

编写简单的语句

5)对项目进行打包

Maven->lifecycle->package

打包文件生成在以下位置:

6)到集群去试运行。

执行语句如下:

spark-submit--packages mysql:mysql-connector-java:5.1.47 --repositorieshttp://maven.aliyun.com/nexus/content/groups/public/ --driver-class-path~/jar/mysql-connector-java-5.1.47.jar --class sportsdt.middle_platform.odds.Odds   ~/jar/MyFirstScala-1.0-SNAPSHOT.jar

说明如下:

Packages:需要引用的包

Repositories:包对应的仓库

driver-class-path:驱动所在路径

class 程序入口

最后加上打包的文件位置

 

相关文章

网友评论

      本文标题:基于scala的spark开发环境搭建流程

      本文链接:https://www.haomeiwen.com/subject/mbetuhtx.html