(1)安装java-jdk
(2)安装scala-sdk
(3)安装spark
(4)安装hadoop (修改etc下的几个配置文件)
注意:安装时候的版本对应,不对应会出错!!
从官网下载安装包(社区版基本够用),常规安装,因为IDEA默认只支持Java的开发环境,所以我们根据需要,在Plugins中添加所需的插件,scala,python等
注意:新版的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文件 找到
上图中:1为默认存放路径 2为改后存放路径
(3)在创建项目时选择这个配置文件:
(1)目录结构中,文件夹属性
注意,文件夹属性错误时,常见错误:
(2)导入spark中的jar包
点击 + 后,选择 1 JARs or directories,选取安装好的spark目录下的jar文件夹,
不导入的话,在使用spark时报错,提示找不到
(3)导入scala-sdk
(4)pom.xml中相关jiar包配置
jar包配置搜索官方地址:http://mvnrepository.com/
(5)一般我们在开发时都是在本地运行spark,要将集群master节点属性设置为local或local[*]
注意:local为本地单线程,local[*]为本地多线程,上线时可将其注释掉。
否则会报错:
1、Artifacts --> + --> JAR --> From modules with dependencies...
2、Main Class是你这个项目(脚本)的主方法,就是要运行的类,选一个;
关于 JAR files from libraries的两个选项:
选中第一个的话,打完包后是一个jar包,可以理解为是合并打包;
选中第二个的话,打完包后是一个jar包,及你项目所用的jar包;(推荐使用)
3、输出路径默认即可(...\ScalaDemo001\out\artifacts\...)
选择对应的jar包名然后build即可,到我们的目标路径中即可看到生成的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对应的目录即可;
使用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
以上是本人学习中遇到的一些基础性错误,持续完善中。。。