4

私が書いているHadoopの仕事では、マッパー/リデューサー用にUTF-8でエンコードされた文字列が必要です。システムエンコーディングとしてUTF-8を指定するにはどうすればよいですか?ローカルでコードを実行している場合は、実行できますがjava -Dfile.encoding="UTF-8"、実行しようとするhadoop jap myjar.jar -Dfile.encoding="UTF-8"と、機能しませんでした。

4

2 に答える 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");

構成の詳細については、 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.htmlを参照してください。

于 2015-05-07T18:43:30.420 に答える
2

デフォルトでは、HadoopはUTF-8エンコーディングを使用するため、そのようなオプションを提供する必要はありません。キー/値に
使用すると仮定します。javadocTextによると:「このクラスは標準のUTF8エンコーディングを使用してテキストを格納します」

于 2012-10-11T08:26:43.970 に答える