spark版本为2.0    

    在spark 在 local 模式下启动,有时会报/tmp/hive hdfs 权限不够的问题,但是我们并没有将hdfs-site.xml配置文件放到我们的项目中,spark的文件应该会存在本地电脑上,但是为什么会报这个错误呢?这个问题非常诡异,有的同事会报此错误,有的则不会。都是同样的配置。

    

        这是在2016/10/31 报的错误,之前在本地测试从来不会报这个错误,但是在这天早上2个同事反映起不来项目,我自己试了一下也起不来,同样的错误。

最终发现spark报的错误不准确,如果在windows环境下spark会去某一个盘下创建“tmp/hive/用户名” 的文件夹,在这个文件夹下存放一些临时文件,注意,这里并不是数据文件,数据文件的地址另有设置。我们发现报错的同事都是只创建了“tmp/hive”的文件夹,下面的用户名文件夹并没有创建成功,可以推断,spark在下次启动的时候,创建此文件夹出错了,所以我们把“tmp/hive”的文件夹删除,再次启动,spark就可以正常运行了,运行成功后会创建“tmp/hive/用户名” 的文件夹。

值得一提的是,本机测试之前没有出现此问题,之前都是创建在E盘下

    spark-local 模式 提示 /tmp/hive hdfs 权限不够的问题_第1张图片


而2016/10/31(周一)来时,spark却选择了C盘,期间,代码,配置,环境等都没有变化,这个原因到目前未能解开。

spark-local 模式 提示 /tmp/hive hdfs 权限不够的问题_第2张图片

这个xiaokan的文件夹也是一定要在第一次spark启动失败后(创建了tmp/hive),后将tmp/hive删除后才能创建起来,具体原理,至今未明确。


这里补充一句,在后续我们使用spark2.1版本后,再也没有出现此问题,可能是spark2.0的坑吧。