#apache-spark #hadoop #hive
Вопрос:
Winutils отображается как hadoop home, когда я пишу приложения spark, которые делают что-то на hadoop. Но просто хотел понять, как winutils делает это возможным?
Ответ №1:
Spark не требует установки кластера Hadoop, он может быть установлен локально, но для этого требуется использовать элемент базы кода Hadoop, известный как «WinUtils». Это позволяет управлять разрешениями файловой системы POSIX, которые требуются файловой системе HDFS для локальной файловой системы. Более подробная информация здесь.
Spark требует, чтобы вы установили разрешения, совместимые с POSIX, для временного каталога, используемого метастором Hive, который по умолчанию равен C:tmphive
WinUtils предоставляет POSIX chmod
наряду с другими командами POSIX
Кажется, что это не так уж и важно, хотя, возможно, устранить зависимость от winutils. Прочитайте эту статью: Apache Spark в Windows без 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.