Potrzebuję użyć klastra HDFS ze zdalnego pulpitu za pomocą Java API. Wszystko działa poprawnie, dopóki nie dojdzie do zapisu. Jeśli próbuję utworzyć dowolny plik, otrzymam wyjątek uprawnień dostępu. Ścieżka wygląda dobrze, ale wyjątek wskazuje moją nazwę użytkownika zdalnego pulpitu, co oczywiście nie jest tym, czego potrzebuję, aby uzyskać dostęp do wymaganego katalogu HDFS.Dostęp HDFS ze zdalnego hosta poprzez Java API, uwierzytelnianie użytkownika
Pytanie brzmi: - Czy istnieje sposób na reprezentowanie innej nazwy użytkownika za pomocą "prostego" uwierzytelniania w języku Java API? - Czy możesz wskazać dobre objaśnienia schematów uwierzytelniania/autoryzacji w hadoop/HDFS z przykładami Java API?
Tak, już wiem, że "whoami" może być przeciążone w tym przypadku przy użyciu aliasu powłoki, ale wolę unikać takich rozwiązań. Poza tym nie podoba mi się użycie niektórych sztuczek, takich jak rury, przez SSH i skrypty. Chciałbym wykonać wszystko za pomocą tylko Java API. Z góry dziękuję.
Natknąłem się na ten sam problem, co twój. Próbuję wysłać zadanie Hadoop ze zdalnego klienta do klastra, który go uruchomi. W moim przypadku problem polega na tym, że ** Cloudera's Hadoop 2.0.0 (Hadoop 2.0.0-cdh4.3.1) nie zapewnia klasy UserGroupInformation **, której użyłeś.Wygląda na to, że odpowiednie wersje Apache Hadoop tego nie zapewniają. Istnieje tylko nazwa użytkownika o nazwie UserGroupInformation - [link] (http://archive.cloudera.com/cdh4/cdh/4/hadoop/api/org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html). Jak w takim razie mógłbyś zrobić w takim przypadku? – falconepl
Jest tam, po prostu nie jest cloudera. Używam teraz klienta hadoop 2.0.0-cdh4.3.1. –
Co masz na myśli mówiąc, że tam jest? Sprawdziłem API Apache Hadoop 2.0.6 [[link] (http://hadoop.apache.org/docs/r2.0.6-alpha/api/index.html)] oraz interfejs API 2.1.0 [[link ] (http://hadoop.apache.org/docs/r2.1.0-beta/api/index.html)] (te Javadocs, które Apache dostarcza na ich stronie internetowej) i niestety nie ma klasy "UserGroupInformation", tylko enum to niewiele pomaga. A przy okazji, czyż nie jest "Hadoop 2.0.0-cdh4.3.1", o którym wspominałeś o dystrybucji Hadoop Cloudera? – falconepl