Установить пользователя системы hadoop для клиента, встроенного в веб-приложение Java
Я хотел бы отправить задания MapReduce из веб-приложения Java в удаленный кластер Hadoop, но не могу указать, для какого пользователя должно быть отправлено задание. Я хотел бы настроить и использовать системного пользователя, который должен использоваться для всех заданий MapReduce.
В настоящее время я не могу указать ни одного пользователя, и независимо от того, какое задание hadoop выполняется под именем пользователя, вошедшего в систему в данный момент в клиентской системе. Это вызывает ошибку с сообщением
Permission denied: user=alice, access=WRITE, inode="staging":hduser:supergroup:rwxr-xr-x
... где "Алиса" является локальным, вошедшим в систему пользователем на клиентском компьютере.
я пытался
various combinations of creatingUserGroupInformation
instances (both proxies and normal user) and
setting the Java System property with -Duser.name=hduser
, changing the USER
envar and as a hard coded System.setProperty("user.name", "hduser")
call.
... но безрезультатно. Относительно 1) Я признаю, что понятия не имею, как эти классы должны использоваться. Также обратите внимание, что изменение свойства Java System, очевидно, не является реальным решением для использования в веб-приложении.
Does any body know how you specify which user Hadoop uses to connect to a remote system?
PS / Hadoop использует конфигурацию по умолчанию, что означает, что при подключении к кластеру аутентификация не используется, а Kerberos не используется при обмене данными с удаленными компьютерами.