È necessario utilizzare il cluster HDFS dal desktop remoto tramite l'API Java. Tutto funziona OK fino a quando non si tratta di accedere in scrittura. Se sto cercando di creare qualsiasi file, ricevo un'eccezione di permesso di accesso. Il percorso sembra buono ma l'eccezione indica il mio nome utente del desktop remoto, che ovviamente non è quello di cui ho bisogno per accedere alla directory HDFS necessaria.Accesso HDFS da host remoto tramite API Java, autenticazione utente
La domanda è: - Esiste un modo per rappresentare un nome utente diverso utilizzando l'autenticazione "semplice" nell'API Java? - Potrebbe per favore indicare alcune buone spiegazioni degli schemi di autenticazione/autorizzazione in hadoop/HDFS preferibili con esempi di API Java?
Sì, so già che "whoami" potrebbe essere sovraccaricato in questo caso usando l'alias di shell ma preferisco evitare soluzioni come questa. Inoltre, in questo caso non sono d'accordo con alcuni trucchi come pipe attraverso SSH e script. Mi piacerebbe eseguire tutto utilizzando solo l'API Java. Grazie in anticipo.
Mi sono imbattuto nello stesso problema del tuo. Sto cercando di inviare un lavoro Hadoop da un client remoto al cluster che lo eseguirà. Nel mio caso il problema è che ** Cloudera's Hadoop 2.0.0 (Hadoop 2.0.0-cdh4.3.1) non fornisce la classe UserGroupInformation ** che hai usato.Sembra che le corrispondenti versioni di Apache Hadoop non le forniscano neanche. C'è solo un enum chiamato UserGroupInformation - [link] (http://archive.cloudera.com/cdh4/cdh/4/hadoop/api/org/apache/hadoop/security/UserGroupInformation.AuthenticationMethod.html). Come potrebbe essere fatto in tal caso allora, secondo lei? – falconepl
È lì, solo che non è cloudera. Sto usando il client hadoop 2.0.0-cdh4.3.1 in questo momento. –
Cosa intendi dicendo che è lì? Ho controllato l'API Apache Hadoop 2.0.6 [[link] (http://hadoop.apache.org/docs/r2.0.6-alpha/api/index.html)] e l'API 2.1.0 [[link ] (http://hadoop.apache.org/docs/r2.1.0-beta/api/index.html)] (quei Javadoc che Apache fornisce sul loro sito web) e sfortunatamente non esiste una classe 'UserGroupInformation', solo l'enum questo non aiuta molto. E a proposito, non è '2.0.0-cdh4.3.1' Hadoop che tu abbia menzionato una distribuzione Hadoop di Cloudera? – falconepl