我在Windows 7上运行Spark.当我使用Hive时,我看到以下错误
The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rw-rw-rw-
权限设置如下
C:\tmp>ls -la total 20 drwxr-xr-x 1 ADMIN Administ 0 Dec 10 13:06 . drwxr-xr-x 1 ADMIN Administ 28672 Dec 10 09:53 .. drwxr-xr-x 2 ADMIN Administ 0 Dec 10 12:22 hive
我已经从Windows-> properties-> security-> Advanced为所有用户设置了"完全控制".
但我仍然看到同样的错误.有什么帮助吗?我查了一堆链接,有人说这是Spark 1.5上的一个错误.这是真的?
谢谢Aarthi
首先,确保为您的操作系统使用正确的Winutils.然后下一步是权限.
在Windows上,您需要在cmd上运行以下命令:
D:\winutils\bin\winutils.exe chmod 777 D:\tmp\hive
希望你已经下载了winutils已经设置了HADOOP_HOME.
首先要检查您的计算机域.尝试
c:\work\hadoop-2.2\bin\winutils.exe ls c:/tmp/hive
如果此命令显示拒绝访问或FindFileOwnerAndPermission错误(1789):此工作站与主域之间的信任关系失败.
这意味着您的计算机域控制器无法访问,可能的原因可能是您与系统域控制器不在同一个VPN上.连接到VPN并重试.
现在尝试Viktor或Nishu提供的解决方案.
下一个解决方案适用于Windows:
首先,我定义了HADOOP_HOME.它在这里详细描述
接下来,我确实喜欢Nishu Tayal,但有一点不同:C:\temp\hadoop\bin\winutils.exe chmod 777 \tmp\hive
\tmp\hive
不是本地目录
您需要在HDFS上设置此目录的权限,而不是本地文件系统./tmp
并不意味着C:\tmp
除非你fs.defaultFs
在core-site.xml中设置file://c:/
,这可能是一个坏主意.
检查一下
hdfs dfs -ls /tmp
使用它设置它
hdfs dfs -chmod 777 /tmp/hive
在Windows上运行的VM上启动spark-shell时出错:错误消息:HDFS上的root scratch dir:/ tmp/hive应该是可写的.没有权限
解决方案:/ tmp/hive是临时目录.只有临时文件保留在此位置.即使我们删除此目录也没问题,将在需要时使用适当的权限创建.
步骤1)在hdfs中,删除/ tmp/hive目录==>"hdfs dfs -rm -r/tmp/hive"
2)在OS级别,删除dir/tmp/hive ==> rm -rf/tmp/hive
在此之后,启动了火花壳,它工作得很好..