在IDEA中利用Maven创建Spark项目

1、安装相应sdk及环境变量配置(跳转)

(1)安装java-jdk

(2)安装scala-sdk

(3)安装spark

(4)安装hadoop (修改etc下的几个配置文件)

注意:安装时候的版本对应,不对应会出错!!

2、安装IDEA

从官网下载安装包(社区版基本够用),常规安装,因为IDEA默认只支持Java的开发环境,所以我们根据需要,在Plugins中添加所需的插件,scala,python等

在IDEA中利用Maven创建Spark项目_第1张图片

3、maven配置

注意:新版的IDEA中都是自带maven的。

(1)给maven添加阿里云源,下载速度更快,默认容易出错

打开maven存放文件夹找到 ...\plugins\maven\lib\maven3\conf -> settings.xml

找到节点
把下面内容写入节点内 配置为阿里云的镜像

  
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central
       

或者选择其他可用镜像

    
      repo2
      central
      Human Readable Name for this Mirror.
      http://repo2.maven.org/maven2/
    

    
      ui
      central
      Human Readable Name for this Mirror.
      http://uk.maven.org/maven2/
    

(2)maven下载文件默认存放在c盘,可以配置放在别的磁盘

还是settings.xml文件 找到  复制出来并修改地址

在IDEA中利用Maven创建Spark项目_第2张图片

     上图中:1为默认存放路径     2为改后存放路径

(3)在创建项目时选择这个配置文件:

4、创建spark项目

(1)目录结构中,文件夹属性

在IDEA中利用Maven创建Spark项目_第3张图片

注意,文件夹属性错误时,常见错误:

在IDEA中利用Maven创建Spark项目_第4张图片

(2)导入spark中的jar包

点击 + 后,选择 1 JARs or directories,选取安装好的spark目录下的jar文件夹,

不导入的话,在使用spark时报错,提示找不到

在IDEA中利用Maven创建Spark项目_第5张图片

(3)导入scala-sdk

在IDEA中利用Maven创建Spark项目_第6张图片

(4)pom.xml中相关jiar包配置

         jar包配置搜索官方地址:http://mvnrepository.com/

(5)一般我们在开发时都是在本地运行spark,要将集群master节点属性设置为local或local[*]

在IDEA中利用Maven创建Spark项目_第7张图片

注意:local为本地单线程,local[*]为本地多线程,上线时可将其注释掉。

否则会报错:

在IDEA中利用Maven创建Spark项目_第8张图片

5、将spark项目打包为jar包

1、Artifacts --> + --> JAR --> From modules with dependencies...

在IDEA中利用Maven创建Spark项目_第9张图片

2、Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个;

关于 JAR files from libraries的两个选项:

选中第一个的话,打完包后是一个jar包,可以理解为是合并打包;

选中第二个的话,打完包后是一个jar包,及你项目所用的jar包;(推荐使用)

在IDEA中利用Maven创建Spark项目_第10张图片

3、输出路径默认即可(...\ScalaDemo001\out\artifacts\...)

在IDEA中利用Maven创建Spark项目_第11张图片

在IDEA中利用Maven创建Spark项目_第12张图片

选择对应的jar包名然后build即可,到我们的目标路径中即可看到生成的jar包文件。

6、本地测试运行jar包

1、进入我们生成jar包时的目录下

cd C:\Users\admin\Desktop\tmp_file\ScalaDemo001\out\artifacts\ScalaDemo001_jar

2、执行我们的目标jar包

命令行中执行:java -jar xxx.jar     如果成功说明jar包没有问题

想要在后台一直运行的命令是:java -jar xxx.jar >/dev/null &

到此,jar包已经成功导出并本地测试成功,上传到Lunix对应的目录即可;

7、在linux服务器中运行spark项目

使用spark-submit命令 在集群上提交 spark 任务:(jar包形式)
{
-- 相关参数设定:
	shelldir="/data/opt/gsdwshell"     

	jarName="t_minipc_img_qid_data_delcrawler-1.0"       --jar包名
	master="spark://dftthdmaster002.bj2:7077,dftthdmaster001.bj2:7077"   --此处为86机器
	className="com.sh.dc.ImgQidCrawler"    --类名称

	deployMode=client
	driverMemory=2G
	totalExecutorCores=10
	executorCores=2
	executorMemory=4G
	args0Vardt=${varcurdate}            --时间参数

	-- declare jarsUrl=""
	-- declare baseDir='/data/project/common/depJar/'
	-- declare a='spark-core_2.11-2.0.0.jar'
	-- declare b='spark-sql_2.11-2.0.0.jar'
	-- for i in {$a,$b}; do
	-- 	jarsUrl="${jarsUrl}${baseDir}${i},"
	-- done;
	-- jarsUrl=${jarsUrl%*,}   --去除末尾多余的逗号
	jarsUrl="/data/project/common/depJar/spark-core_2.11-2.0.0.jar,/data/project/common/depJar/spark-sql_2.11-2.0.0.jar"
}

-- 脚本中执行命令:
/opt/spark/bin/spark-submit \
--master ${master} --class ${className} --deploy-mode ${deployMode} --total-executor-cores ${totalExecutorCores} \
--executor-cores ${executorCores} --driver-memory ${driverMemory} --executor-memory ${executorMemory}  \
--jars $jarsUrl ${shelldir}/lql/${jarName}.jar ${args0Vardt}
-------------------------
-- 测试:
/opt/spark/bin/spark-submit \
--master spark://uhadoop-5nxpdx-master1:7077,uhadoop-5nxpdx-master2:7077 \
--class com.songheng.PCAbnormal \
--deploy-mode client \
--total-executor-cores 10 \
--executor-cores 2 \
--driver-memory 2G \
--executor-memory 4G  \
/data/opt/gsdwshell/lql/PC_Abnormal.jar 20200609

以上是本人学习中遇到的一些基础性错误,持续完善中。。。 

你可能感兴趣的:(Spark-SQL,Scala,Hadoop)