Winutils在我编写在hadoop上执行任务的spark应用程序时被映射为hadoop-home。但我只是想了解winutils是如何做到这一点的?
Spark不需要安装Hadoop集群,它可以在本地安装,但需要使用Hadoop代码库中名为"WinUtils"的元素。这允许管理HDFS文件系统对本地文件系统所需的POSIX文件系统权限。更多详细信息请点击此处。
Spark要求您为Hive元存储使用的临时目录设置POSIX兼容权限,默认为C:tmphive
WinUtils提供POSIXchmod
以及其他POSIX命令
不过,消除对winutils的依赖似乎没什么大不了的。阅读本文:Apache Spark on Windows without winutils.exe-由于硬编码修复,这不能用作永久解决方案,例如:
private void loadPermissionInfo() {
IOException e = null;
try {
/* String output = FileUtil.execCommand(new File(getPath().toUri()),
Shell.getGetPermissionCommand());*/
// Let put it hard instead of calling winutils.exe
String output = "drwx-wx-wx|1|xxxxx|yyyyyyy|0|Jun|21|2018|"+getPath();
但这些代码肯定会让您更好地了解winutils的用途。