Как «winutils» действует подобно hadoop? Что это делает возбуждающе?

#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.