HDFS上的root scratch dir:/tmp/hive应该是可写的。当前权限为:rw rw rw-(在Windows上)
我正在Windows7上运行Spark。当我使用配置单元时,我看到以下错误HDFS上的root scratch dir:/tmp/hive应该是可写的。当前权限为:rw rw rw-(在Windows上),windows,hdfs,Windows,Hdfs,我正在Windows7上运行Spark。当我使用配置单元时,我看到以下错误 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 Adm
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上的一个bug。这是真的吗
谢谢
Aarthi可以尝试为文件夹/tmp/hive授予777权限,因为我认为spark是以匿名用户的身份运行的(这将属于其他用户类别),此权限应该是递归的。 我在spark for hive的1.5.1版本中也遇到了同样的问题,它通过在linux上使用下面的命令授予777权限来工作
chmod -r 777 /tmp/hive
您需要设置此目录对HDFS的权限,而不是本地文件系统的权限
/tmp
并不意味着C:\tmp
,除非您将core-site.xml中的fs.defaultFs
设置为file://C:///code>,这可能是个坏主意
使用
hdfs dfs -ls /tmp
hdfs dfs -chmod 777 /tmp/hive
使用
hdfs dfs -ls /tmp
hdfs dfs -chmod 777 /tmp/hive
同样,Spark Jira中也有一个bug。这在几天前就已经解决了。这里是链接
注释有所有选项,但没有保证的解决方案。首先,确保您的操作系统使用了正确的Winutils。然后下一步是权限。
在Windows上,您需要在cmd上运行以下命令:
D:\winutils\bin\winutils.exe chmod 777 D:\tmp\hive
希望您有。下一个解决方案适用于我的Windows:
- 首先,我定义了HADOOP_HOME。对其进行了详细描述
- 接下来,我确实喜欢Nishu Tayal,但有一点不同:
C:\temp\hadoop\bin\winutils.exe chmod 777\tmp\hive
\tmp\hive
不是本地目录首先检查您的计算机域。试一试
c:\work\hadoop-2.2\bin\winutils.exe ls c:/tmp/hive
如果此命令表示访问被拒绝或FindFileOwnerAndPermission错误(1789):此工作站与主域之间的信任关系失败
这意味着无法访问您的计算机域控制器,可能的原因是您与系统域控制器不在同一VPN上。请连接到VPN,然后重试
现在尝试Viktor或Nishu提供的解决方案。在Windows上运行的VM上启动spark shell时出错:
错误消息:HDFS上的根暂存目录:/tmp/hive应该是可写的。拒绝许可
解决方案:
/tmp/hive是临时目录。此文件夹中仅保留临时文件
地点。没有问题,即使我们删除此目录,将在
需要有适当的权限
步骤1)在hdfs中,删除/tmp/hive目录==>“hdfs dfs-rm-r/tmp/hive”
2) 同样在操作系统级别,删除dir/tmp/hive==>rm-rf/tmp/hive
在此之后,启动spark shell并正常工作。问题在spark 2.0.2版(2016年11月14日)中得到解决。使用此版本。
2016年12月28日发布的2.1.0版也存在同样的问题。主要原因是您在错误的目录下启动了spark。请在D://tmp/hive中创建文件夹(授予完全权限),并在D:drive中启动spark
D:>火花壳
现在它可以工作了……) 我也面临这个问题。这个问题与网络有关。我使用特定域在Windows7上安装了spark
域名可以检查
开始->计算机->右键单击->属性->计算机名称,
域和工作组设置->单击更改->计算机名
(选项卡)->单击更改->域名
当我运行sparkshell命令时,它运行良好,没有任何错误
在其他网络中,我收到写入权限错误。
要避免此错误,请在上述路径中指定的域上运行spark命令。使用最新版本的“winutils.exe”并重试 使用正确版本的winutils.exe为我做到了这一点。winutils应该来自Spark为之预先构建的Hadoop版本
将HADOOP_HOME环境变量设置为winutils.exe的bin位置。我已将winutils.exe与C:\Spark\bin文件一起存储。现在我的SPARK_HOME和HADOOP_HOME指向同一个位置C:\SPARK
现在winultils已添加到路径,请使用winutils.exe chmod 777 C:\tmp\hive
为配置单元文件夹授予权限这是一个简单的4步过程:
对于Spark 2.0+:
下载适用于Windows/Winutils的Hadoop
将此添加到代码中(在SparkSession初始化之前):
打开cmd.exe并运行:
"path\to\hadoop-2.7.1\bin\winutils.exe" chmod 777 C:\Users\\Desktop\tmphive
“路径\至\hadoop-2.7.1\bin\winutils.exe”chmod 777 C:\Users\\Desktop\t文件夹
我收到了相同的错误“HDFS上的根暂存目录:/tmp/hive应该是可写的。Windows 7上当前的权限是:rw rw-”。以下是我为解决此问题所做的工作:
我已经在C:\ProgramFiles(x86)上安装了Spark,它正在C:下寻找/tmp/hive,即C:\tmp\hive
我从下载了WinUtils.exe。我选择的版本与安装Spark时为hadoop软件包选择的版本相同。i、 e.,hadoop-2.7.1
(您可以在bin文件夹下找到,即,)
现在使用以下命令使c:\tmp\hive文件夹可写
winutils.exe chmod 777\tmp\hive
注意:对于以前版本的winutils,chmod命令设置所需的权限时没有错误,但是spark仍然抱怨/tmp/hive文件夹不可写。您不必自己修复/tmp/hive目录的权限(如一些建议的答案)。winutils可以帮你做到这一点。从下载相应版本的winutils,并将其移动到spark的bin目录(e.x.C:\opt\spark\spark-2.2.0-bin-hadoop2.6\bin)。这将解决它。我在IDEA上运行spark测试,在我的情况下,问题是错误的winutils.exe
version。我认为您需要将它与您的Hadoop版本相匹配。您可以找到winutils.exe
谢谢。我试过了。没用。。做