apache-spark - 'winutils' 如何像 hadoop 一样工作?它的作用是什么?
问题描述
当我编写在 hadoop 上执行操作的 spark 应用程序时,Winutils 被映射为 hadoop home。但只是想了解 winutils 如何使这成为可能?
解决方案
Spark 不需要安装 Hadoop 集群,可以在本地安装,但需要使用 Hadoop 代码库中的一个元素,称为“WinUtils”。这允许管理 HDFS 文件系统需要本地文件系统的 POSIX 文件系统权限。更多细节在这里。
Spark 要求您为 Hive 元存储使用的临时目录设置 POSIX 兼容权限,默认为C:\tmp\hive
WinUtils 提供 POSIXchmod
以及其他POSIX 命令
不过,这似乎没什么大不了的,可以消除对 winutils 的依赖。阅读这篇文章:没有 winutils.exe 的 Windows 上的 Apache Spark - 由于硬编码修复,这不能用作永久解决方案,例如:
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 的用途。
推荐阅读
- node.js - CastError:模型“qqq”Mongoose & Express 的路径“yyy”处的值“xxx”转换为数字失败
- powershell - 从数组中提取数据字符串并在 PowerShell 中通过连接将它们分配给变量
- javascript - ANTLR:如何在算术运算中允许布尔值
- java - 光线投射不考虑摄像机旋转
- python - 什么情况下类成员函数不将self作为第一个参数传递?
- javascript - EST5EDT 等于 ET 吗?
- php - symfony存储过程中如果财政年度更改发票号码更改如何更改
- html - VBA 从网页中提取选定的下拉内文
- ruby-on-rails - 如何为 f.datetime_select 将列添加到现有数据库?
- ios - 仅在具有西班牙/哥伦比亚地区的 iOS 设备中无法使用 FSharpValue.MakeRecord 解析(?)小数