前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0556-6.1.0-Hive On Spark修改作业临时配置文件生成目录

0556-6.1.0-Hive On Spark修改作业临时配置文件生成目录

作者头像
Fayson
发布2019-11-28 21:15:46
1.1K0
发布2019-11-28 21:15:46
举报
文章被收录于专栏:Hadoop实操Hadoop实操

作者:李继武

1

文档编写目的

在Hive On Spark的模式下,无论是通过Beeline还是hive CLI访问Hive,使用Spark引擎执行SQL语句时,都会在/tmp目录下生成一个spark_submit.*.properties文件。Hive CLI方式会在当前节点/tmp目录生成,使用Beeline方式则会在HiveServer2所在节点的/tmp目录下生成。

一般情况下spark-submit.xxx.properties文件生成在/tmp目录下并没有问题,该文件主要是用向集群提交Spark作业时指定作业的运行参数。

但在一些场景中,由于各种原因不允许往/tmp目录写入文件时,就需要修改生成该文件的目录,本文档主要介绍如何修改该目录。

  • 测试环境:CDH6.1.0

2

控制台配置

尝试通过控制台在hive或者spark组件的配置中进行修改

1.查看hive组件,搜索/tmp

从图上可以得知hive组件的配置中原来有关/tmp的配置只有两项,一项为heapdump输出目录,另一项为配置审计过滤条件,均不是配置spark-submit.xxx.properties的生成目录。

2.查看spark组件,搜索/tmp

从图上可以得知hive组件的配置中原来有关/tmp的配置只有一项,为heap dump输出目录,不是配置spark-submit.xxx.properties的生成目录。

从以上可知,控制台上并没有显著可直接配置该目录的配置项。

3

查看官网

1.查看hive官网配置介绍地址如下

代码语言:javascript
复制
https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties

为默认情况下该文件生成在/tmp目录下,因此仍然直接搜索”/tmp”,得到以下几个与“/tmp”目录有相关的配置项,依次查看。

从以上配置项的描述中,可以看到并没有相符合的配置项存在。

2.查看spark官网配置介绍

代码语言:javascript
复制
http://spark.apache.org/docs/latest/configuration.html

同样直接搜索”/tmp”,得到以下几个与“/tmp”目录有相关的配置项,依次查看。

从以上配置项的描述中,可以看到并没有相符合的配置项存在。

4

Hive源码查看

通过hive2源代码,查看spark-submit.xxx.properties文件生成时目录的选择。生成该配置文件所在的类为org.apache.hive.spark.client.AbstractSparkClient,在该类的startDriver()方法中通过如下代码生成该配置文件:

查看调用关系

通过调用关系我们可以看到,该文件生成在java.io.tmpdir配置的目录当中,默认情况下,不同的系统该默认值不同,window系统下该值是C:\Users\登录用户~1\AppData\Local\Temp\,而Linux系统该值是/tmp。

因此,通过在hiveserver2的启动配置内,添加“-Djava.io.tmodir=目标目录”,就能修改该文件生成的目录。

5

验证

这里我们通过将该目录修改到/data0/tmp目录下为例进行测试

1.在hiveserver2所在节点上,创建/data0/tmp目录,并赋予1777权限

代码语言:javascript
复制
mkdir -p /data0/tmp
chmod 1777 /data0/tmp

2.在控制台上打开hive组件的配置界面,搜索“JavaConfiguration Options for HiveServer2”,在末尾添加:

代码语言:javascript
复制
-Djava.io.tmpdir=/data0/tmp

保存并根据提示重启Hive服务。

3.打开beeline连接hiveserver2

在未执行需要spark参与的sql之前,未生成spark-submit.xxx.properties文件:

4.执行count()操作

5.查看spark-submit.xxx.properties文件生成情况

可以看到,现在该文件已不再生成在/tmp目录下,而是生成在新配置的/data0/tmp目录下。

提示:代码块部分可以左右滑动查看噢

为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档