У меня есть ParquetWriter(org.apache.parquet:parquet-avro), у которого есть много имплементации FileSystem для записи/чтения, и эти FIleSystems лежат в кэше, а у кэша хеширование использует UserGroupInformation, который наконец использует UnixLoginModule, чтобы сделать login, но у меня nologin-user(в контейнере), у него есть только userId(и нет username) из-за чего все падает с NPE. Выглядит как баг в стандартной либе, но мне бы сначала понять, а зачем вообще нужен UnixLoginModule, если джарник запущен от этого пользователя, то зачем его аутентифицировать, ты же уже знаешь, что он запустил.
Так там разные не виртуальные фс со своими пользователями создаются? Вот этих пользователей и надо использовать
Не, там идея абстрагирования не от конкретный фс, а от системы хранения, т.е. это может быть hdfs, s3, http(без понятия, что это за зверь, но как одна из реализаций есть). И они не то, что бы создаются, так как это просто абстрация над write/read/delete. Сам UserGroupInformation, вероятно, штука полезная, для kerberos-аутентификации на хадупе(Там есть HadoopLoginModule), а вот UnixLoginModule вещь мне не понятная, так как что именно она аутентфицирует мне не понятно, даже не говоря о том, что она ломается, когда у пользователя, который запустил этот jar, нет юзернейма.
Обсуждают сегодня