Powershell chmod on / tmp / hive for winutils和hadoop / spark

时间:2016-04-18 15:58:24

标签: windows powershell hadoop apache-spark

我目前正在尝试将一个用于在测试堆上设置Spark / Hadoop的过程合并到我们的PowerShell脚本中。

这是一个Windows环境,有几个位投掷曲线球,但是这是最糟糕的:)

当我手动安装时,我可以从命令行运行%HADOOP_HOME%\bin\winutils.exe chmod 777 /tmp/hive但我现在需要将其转换为Powershell脚本,这有可能吗?我已经破坏但尚未遇到解决方案。一篇文章建议使用icacls,但是/ tmp / hive不允许作为arg。

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

使用PowerShell环境变量语法(.col-33 { width: 33%; float:left; position: relative; } .full-image { width: 100%; height: 100%; } .card-description { position: absolute; bottom: 0; left: 0; right: 0; text-align: center; padding: 5px; line-height: 1.5; background-color: rgba(255, 255, 255, 0.6); } )而不是批处理语法($env:VARIABLE)就足够了。请注意,您必须使用调用运算符才能工作。我还建议添加双引号,以防路径中有空格。

%VARIABLE%

对调用操作符的需求似乎是由于PowerShell的命令解析器未将表达式& "${env:HADOOP_HOME}\bin\winutils.exe" chmod 777 /tmp/hive 识别为路径。如果没有$variable\something,您将获得例外

  

表达式或语句中出现意外的标记'\ bin \ winutils.exe'。