hive client 登录报权限不足问题/tmp/hive on HDFS should be writable. Current permissions are: rwx------

Posted 扫地增

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive client 登录报权限不足问题/tmp/hive on HDFS should be writable. Current permissions are: rwx------相关的知识,希望对你有一定的参考价值。

背景分析

今早同事突然说,hive在服务器登录不上去了,报权限问题。集群一直好好的怎么报权限问题呢个?笔者问了问情况,了解到原来该同事是看tmp目录下存储的较多的数据觉得浪费空间所以清理了/tmp。为了帮助新同事萌了解问题提供解决思路,首先这个问题比较简单,添加权限就可以,明白tmp下目录信息,特此记录

tmp中究竟存储了什么?

我们登录hdfs web ui发现/tmp目录下存储了如下信息:

我们发现首先,里面会有一个hadoop-yarn的目录,很显然这些信息是集群yarn工作的临时存储目录,也就是作mapreduce操作期间的临时存储,里边存储了job的staging。 Mapreduce工件,中间数据等将保存在该目录下。 mapreduce作业执行完成后,这些文件将自动清除。如果删除此临时文件,则可能会影响当前正在运行的mapreduce作业。

其次,我们发现tmp目录下有一个名为hive的目录,那么这个目录是什么呢?我们进入目录进行查看发现存储的是db信息。

这样我们想到了hive临时存储设置,我们进入hive查看hive的临时存储设置执行命令如下:

set hive.exec.scratchdir;


发现该目录确为hive临时存储目录,用于存储Hive的临时输出和计划,在hive client启动时会进行读取,这也是为什么启动client报错的原因。
最后,我们发现我们还有一个logs的目录,查看目录我们不难了解到,这个其实是我们mapreduce的任务日志的存储目录。


作业运行结束后(无论正常结束与否),将持久化日志到 yarn.nodemanager.remote-app-log-dir,而其默认存储为/tmp/logs。

问题解决

说到这里我们大概了解到了清理/tmp下的数据,也要注意,不能暴力清洗。因为是权限问题,所以我们为盖目录添加权限:

hadoop fs -chmod -R 777 /tmp

以上是关于hive client 登录报权限不足问题/tmp/hive on HDFS should be writable. Current permissions are: rwx------的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop实战: Linux报 tmp 磁盘存储不足

Hive 执行查询语句报错,由于内存空间不足导致

oracle sys 权限不足

spark-local 模式 提示 /tmp/hive hdfs 权限不够的问题

HDFS 上的根暂存目录:/tmp/hive 应该是可写的。当前权限为:rw-rw-rw-(在 Windows 上)

hive 报错/tmp/hive on HDFS should be writable. Current permissions are: rwx--x--x