一.下载spark,hadoop,java,scala,idea
1.spark,本地调试代码需要运行你写的scala,其中引用的所有spark库都需要spark的jar包,使用集群机器上的spark文件夹里面的jars即可,将集群上的spark拷贝下来。
2.hadoop,同spark,但是需要下载winutils.exe在hadoop的bin目录下,否则会报Could not locate executable null\bin\winutils.exe in the Hadoop binaries错误。
地址:https://github.com/sdravida/hadoop2.6_Win_x64/blob/master/bin/winutils.exe 感谢zxzLife老哥!
致谢:https://blog.csdn.net/weixin_41122339/article/details/81141913
3.一定要安装你hadoop对应的scala版本,开发机上进spark里面会提示你使用的是什么版本的scala
4.安装你scala支持的jdk版本,最好直接对应上,否则会报exception,但是好像不影响运行,我还是调整了我的jdk变成了1.8.
5.下载idea,我用的是专业版,教育邮箱白嫖专业版。
6.配置环境变量:
path
二、使用sbt创建scala工程
注意:红框里面要选正确的版本号!
然后点击Finish,第一次创建会有一大堆的import,需要耗时比较久,趁机休息一会儿。
三、添加spark jars
project structure
里面的JARS or Directory
apply&ok
然后查看External Libraries里面有了spark的jar包
四、创建scala object
因为在创建的时候已经选择了scala版本,这块直接scala文件夹右键新建scala class 选择object即可
五、打包
左侧删除掉额外的jars 只保留这两项
查看output文件夹:
jar包有了
解压打开可以看到class名:
注意:test.class 我们一会写的脚本要提交这个class前面的名字也就是test
六、交到集群上执行
运行脚本:
./spark-submit --class test \
--master yarn \
--deploy-mode client \
../examples/jars/example_csdn.jar
注意:
1.你读取的文件要放在hdfs上
2.client模式提交
3.cluster提交不要指定master!
不要setMaster()!给我删掉!删掉!否则报code 13 的集群冲突!如下:
ERROR yarn.Client: Application diagnostics message: Application application_xxx failed 2 times due to AM Container for appattempt_xxx exited with exitCode: 13
致谢:http://bcxw.net/article/113.html