2016-05-19 23 views
0

Ich versuche, eine Datei mit Umlauten zu hdfs hinzufügen, aber, wenn ich mich eine Fehlermeldung wie diese zu erhalten unterUnterstützt HDFS Sonderzeichen (Umlaute, etc ..)?

++ hdfs dfs -put $'data/R\366\337el.doc' solr/test/test.data 
put: `test.data/R��el.doc': No such file or directory 

Was soll ich dann tun? Übersetzen Sie die Dateien mit ä zum Beispiel nach ae oder gibt es eine andere Möglichkeit, damit umzugehen?

Antwort

1

HDFS speichert diese Zeichenfolgen mit Java, deren Zeichenfolgen UTF-16-codiert sind. Auf dem Draht verwendet Hadoops RPC UTF-8, das Umlaute und verschiedene andere Zeichen enthält.

Wahrscheinlich haben Sie festgestellt, dass Ihre Shell die Codierung oder die Zeichen nicht zu unterstützen scheint.

Im Zweifelsfall können Sie immer die Java-API verwenden, um Dateien in HDFS zu schreiben, was das Schreiben von Code erfordert.

+0

Haben Sie einen Link oder ein Beispiel in Java und Python? – Mensch

+0

@Mensch http://stackoverflow.com/questions/32399075/upload-data-to-hdfs-with-java-api –

+0

@Mensch Python keine Ahnung. –