我们正在使用 Cloudera CDH(5) 将我们的 Hadoop 集群移动到一个新的设置,我遇到了一个我们在旧的(非 cloudera)集群上没有的问题。
从集群中两台(共十台)机器上的任务发出的任何文本都会发出 ??而不是 è、à 等“fran??ois-mout??”。
我们将 Hadoop Streaming 与使用单声道的 .net Mapper 和 Reducer 结合使用。我已将类内的编码设置为 UTF-8,所有机器(ubuntu 12.04)上的 $LOCALE 都是相同的 en_GB.UTF-8。
我几乎找不到导致此错误的原因,确实需要一个解决方案。
谢谢
最佳答案
感谢 http://www.stewh.com/2013/12/working-with-chinese-or-other-utf8-encoded-text-in-hadoop-streaming/,我找到了解决方案
我需要将 -cmdenv LC_CTYPE=en_GB.UTF-8
添加到我的 hadoop 流命令的末尾。
我将尝试将它添加到/etc/default/locale
~$ update-locale LC_CTYPE="en_GB.UTF-8"
永久修复,但目前这是一个很好的解决方案。
关于linux - Hadoop Streaming 没有正确编码字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24063188/