私が書いているHadoopの仕事では、マッパー/リデューサー用にUTF-8でエンコードされた文字列が必要です。システムエンコーディングとしてUTF-8を指定するにはどうすればよいですか?ローカルでコードを実行している場合は、実行できますがjava -Dfile.encoding="UTF-8"
、実行しようとするhadoop jap myjar.jar -Dfile.encoding="UTF-8"
と、機能しませんでした。
質問する
8071 次
2 に答える
4
問題は、マッパーJavaプロセスに -Dfile.encoding=UTF-8がないことであることがわかりました。これを「mapreduce.map.java.opts」に追加する必要がありました。「mapreduce.reduce.java.opts」についても同じです。
これは、XML構成ファイル、および次のようなJavaで実行できます。
config.set( "mapreduce.map.java.opts"、 "-Xmx1843M -Dfile.encoding = UTF-8");
于 2015-05-07T18:43:30.420 に答える
2
デフォルトでは、HadoopはUTF-8
エンコーディングを使用するため、そのようなオプションを提供する必要はありません。キー/値に
使用すると仮定します。javadocText
によると:「このクラスは標準のUTF8エンコーディングを使用してテキストを格納します」
于 2012-10-11T08:26:43.970 に答える