当前位置:网站首页>Spark提交参数--files的使用
Spark提交参数--files的使用
2022-06-24 09:47:00 【南风知我意丿】
项目场景:
我们有两个集群(ps:计算集群/存储集群),现在有个需求就是,计算集群运行Spark任务,从kafka取数据写到存储集群的hive
问题描述
跨集群读写数据,我们测试了写hbase是可以从计算集群向存储集群写的,而且能写进去。
但是一旦写hive 他就是写不存储集群的hive中,每次都只写到了计算集群的hive中。
这让我很费解,而且我在本地IDEA上测试的时候,就能写到存储集群的hive中,一旦上小海豚放集群上跑 他就写跑偏了,就给写到计算集群的hive里面了。我在resource文件夹下也放了存储集群的core-site.xml hdfs-site.xml hive-site.xml文件了, 代码里我也写了changeNameNode方法了。但是程序运行时好像还是无法切换到存储集群的NN上去
/*** * @Author: lzx * @Description: * @Date: 2022/5/27 * @Param session: bulid好的Sparkssion * @Param nameSpace: 集群的命名空间 * @Param nn1: nn1_ID * @Param nn1Addr: nn1对应的IP:host * @Param nn2: nn2_ID * @Param nn2Addr: nn2对应的IP:host * @return: void **/
def changeHDFSConf(session:SparkSession,nameSpace:String,nn1:String,nn1Addr:String,nn2:String,nn2Addr:String): Unit ={
val sc: SparkContext = session.sparkContext
sc.hadoopConfiguration.set("fs.defaultFS", s"hdfs://$nameSpace")
sc.hadoopConfiguration.set("dfs.nameservices", nameSpace)
sc.hadoopConfiguration.set(s"dfs.ha.namenodes.$nameSpace", s"$nn1,$nn2")
sc.hadoopConfiguration.set(s"dfs.namenode.rpc-address.$nameSpace.$nn1", nn1Addr)
sc.hadoopConfiguration.set(s"dfs.namenode.rpc-address.$nameSpace.$nn2", nn2Addr)
sc.hadoopConfiguration.set(s"dfs.client.failover.proxy.provider.$nameSpace", s"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider")
}
原因分析:
1.我先去Spark的运行界面上查看了Environment下的hadoop的参数,我搜了nn1去看了一下,看看我的changenamenode方法到底有没有给我生效
2,结果dfs.namenode.http-address.hr-hadoop.nn1的值还是node03(计算集群的)不是node118(存储集群)说明方法还是没有生效
为什么不生效???
Configuration conf=new Configuration();
创建一个Configuration对象时,其构造方法会默认加载hadoop中的两个配置文件,分别是hdfs-site.xml以及core-site.xml,这两个文件中会有访问hdfs所需的参数值
我代码里有这个啊,怎么没有加载进去啊??
3,经过分析我发现,代码提交到集群上执行,它去加载了集群上的core/hdfs-site.xml文件,直接把代码里的配置文件给抛弃了
解决方案:
1.在代码里这样,使用自己的配置文件去替换集群的配置文件,这样就能找到存储集群的信息了
val hadoopConf: Configuration = new Configuration()
hadoopConf.addResource("hdfs-site.xml")
hadoopConf.addResource("core-site.xml")
如果这两个配置资源都包含了相同的配置项,而且前一个资源的配置项没有标记为final,那么,后面的配置将覆盖前面的配置。上面的例子中,core-site.xml中的配置将覆盖core-default.xml中的同名配置。如果在第一个资源(core-default.xml)中某配置项被标记为final,那么,在加载第二个资源的时候,会有警告提示。
2,光上面那么做是不行的,上面说了,一旦打包上集群运行,他会把resource文件夹下面的core/hdfs-site.xml文件抛弃,然后.addResource(“hdfs-site.xml”)找不到自己制定的文件,还是去找集群的配置文件
3,把自己的两个配置文件放在执行目录下 ,再提交spark任务时,在提交参数里面指定一下
--files /srv/udp/2.0.0.0/spark/userconf/hdfs-site.xml,/srv/udp/2.0.0.0/spark/userconf/core-site.xml \
4,扩展:
--files 传输的文件:
如果与当前提交集群处于同一集群,会提示当前数据源与目标文件存储系统相同,此时不会触发拷贝
INFO Client: Source and destination file systems are the same. Not copying
如果与当前提交集群处于不同集群,则会将源文件从源路径更新至当前文件存储系统
INFO Client: Uploading resource
边栏推荐
- Flink cluster construction and enterprise level yarn cluster construction
- Sort out interface performance optimization skills and kill slow code
- [energy reports] International Conference on energy and environmental engineering in 2022 (cfeee 2022)
- What you must know about distributed systems -cap
- [ei sharing] the 6th International Conference on ship, ocean and Maritime Engineering in 2022 (naome 2022)
- numpy.linspace()
- 学习使用php对字符串中的特殊符号进行过滤的方法
- Practice sharing of packet capturing tool Charles
- Using pandas to read SQL server data table
- 2022全网最全最细的jmeter接口测试教程以及接口测试流程详解— JMeter测试计划元件(线程<用户>)
猜你喜欢
Role of message queuing
leetCode-498: 對角線遍曆
整理接口性能优化技巧,干掉慢代码
uniapp 开发微信公众号,下拉框默认选中列表第一个
leetCode-2221: 数组的三角和
Flink checkPoint和SavePoint
How to customize sharing links in wechat for H5 web pages
Machine learning perceptron and k-nearest neighbor
Hill sorting graphic explanation + code implementation
Thread pool execution process
随机推荐
leetCode-面试题 16.06: 最小差
JMeter接口测试工具基础— 取样器sampler(二)
机器学习——主成分分析(PCA)
1. project environment construction
使用swiper左右轮播切换时,Swiper Animate的动画失效,怎么解决?
[resource sharing] 2022 International Conference on Environmental Engineering and Biotechnology (coeeb 2022)
SF Technology Smart logistics Campus Technology Challenge (June 19, 2022) [AK]
SQL sever基本数据类型详解
3.员工的增删改查
小程序 rich-text中图片点击放大与自适应大小问题
Leetcode-1823: find the winner of the game
numpy. logical_ and()
【资源分享】2022年环境工程与生物技术国际会议(CoEEB 2022)
5. dish management business development
leetCode-223: 矩形面积
学习使用phpstripslashe函数去除反斜杠
Practice sharing of packet capturing tool Charles
Leetcode-2221: triangular sum of arrays
Caching mechanism for wrapper types
Image click enlargement and adaptive size in the applet rich text