文档章节

求指教!!!Hadoop的乱码问题如何解决?

seng
 seng
发布于 2013/06/26 17:03
字数 853
阅读 2278
收藏 0

今天本来打算写java虚拟机的学习记录的。

但是在工作室里做任务时,出现了一个乱码问题,现在也还没有很好的解决办法,所以写出来让大家交流一下,以求好办法。

我们搭建了个由5台机器的Hadoop集群,并在之前已经做过统计分析日志记录的任务。由于日志内容都是在linux服务器(代理服务器)上生成的,用的编码都是UTF-8,而都是英文记录、源IP、目的IP、目的地址、访问时间等信息,有固定的格式,进行分析时都没有出现过很大的困难。

但是,现在则出现了比较难解决的问题?

问题:hadoop 集群处理 GBK 文件里出现乱码.

具体描述:

            我们共12G多的文本文件,这些文件都是来自门户网站,使用很简单的爬虫抓取而来。

            文件采用GBK编码格式保存。

            我们的任务过程:

            (1)把文件从linux中上传到hadoop集群上(此时的文件编码格式: GBK

            (2)使用登记分词器对文件进行分析,分解的出文章中的词汇,并保存到指定的文件中。

             在查看hadoop集群的输出到指定文件的内容时,发现里面全都是乱码。

这是我们之前分析日志文件时没有出现过的。

在找问题的解决办法时,

Google、百度、论坛都是说同样的原因:Hadoop在代码中设定的Charset为UTF-8,属于硬编码。

截图如下(点击图片链接到目标地址):




我们做了一次试验,使用UTF编码的中文文件则可以完成分析、分词过程。

这些方法都试过了,但还是没有找到一个合适的方案。现在我们只能做一下妥协,已经改了爬虫的抓取文件后的保存方式,把以后所抓取到的文件一律都以UTF编码方式保存。以便以后再做分析时,不会再出现乱码问题。

我们分析乱码出来如下的原因:

(1)GBK 文件上传到Hadoop之后编码格式改变了?这个目前还没有可以检测的方法,网上说上传后,再拿下来看是否乱码,这有可能上传改变了编码,下载时对反方向变回来了,这个不好测定?你有更好的方法吗?

(2)如网上所说,Hadoop处理文本文件的类InputFormat、OutputFormat,我今天也写的一个业,用来代替OutputFormat,来完成数据输出到Hadoop中,测试还是有问题。

(3)是否只是SSH Secure Shell显示的问题?这个问题,文件在linux本地时(还没上传到hadoop),more中文文件也是有一点点乱码,很少。这样看来,SSH Secure Shell 的原因可能性是有,但比较小,因hadoop运行输出到指定文件的内容,几乎所有文字都是乱码。

你们有Hadoop处理中文的实践吗?

有没有遇到过这样的问题,求指教?

有没有可以在Hadoop中把大批量GBK文件转换成UTF-8的代码?如果可以分享,请发到我的邮箱。

我的邮箱:guangyao1991@foxmail.com

© 著作权归作者所有

共有 人打赏支持
seng
粉丝 7
博文 12
码字总数 6909
作品 0
大连
程序员
私信 提问
关于ECharts的几个问题,求大神解决

@Kener-林峰 你好,想跟你请教个问题: 一、引用的是ECharts的仪表盘,出现了几个问题。 1、IE8的兼容性。用的是2.0.4版本但是还有些电脑上的IE8浏览器读不出图形。 2,、在仪表盘的series里有...

Sherlock_X
2014/10/28
6.1K
1
请教:GraphicMagick + Im4Java 怎么解决中文乱码的问题??

大家好, 我要在一个图片的右下角加一小段中文文字, 已按照这里加入楷体字体,生成的文字都是乱码。 代码: 生成的文字就是一个个“正方形”乱码。 运行环境:win7 64bit, GraphicMagick 1...

kevin198744
2013/12/04
710
1
关于ECharts引用的几个问题,求大神解答。

一、引用的是ECharts的仪表盘,出现了几个问题。 1、IE8的兼容性。用的是2.0.4版本但是还有些电脑上的IE8浏览器读不出图形。 2,、在仪表盘的series里有precision这个属性,但是没有作用(如图...

Sherlock_X
2014/10/27
277
0
poi转换ppt、pptx文件成图片

这几天使用poi将ppt、pptx文件转成jpg图片,但是一直没找到好的案例,总是报错:The supplied data appears to be in the Office 2007+ XML. You are calling the part of POI that deals w...

g084120209
2016/10/08
390
0
tomcat 乱码问题

用tomcat运行web应用程序时,后台处理后的字符串,控制台打印出来是正常的,返回给页面的时候变成乱码,但是用glassfish运行又是正常的,glassfish的默认字符集是UTF-8,我将tomcat的字符集改...

naruto1021
2012/03/28
385
3

没有更多内容

加载失败,请刷新页面

加载更多

nginx的日志

nginx的日志包括错误日志和访问日志,分别使用不同的指令来定义其输出位置和相应的级别。 下面介绍其各自的用途。 错误日志 nginx提供了error_log指令来指定错误日志的输出文件和级别。 指令...

xtof
47分钟前
2
0
【转】ubuntu18.04系统安装完之后显示未发现WiFi适配器【拯救者y7000亲测可用】

解决过程如下: 标题要大才醒目。 第一,插网线: 确保能通过网线连上网,通过路由器连还是直接接口连都没事,因为我们需要联网去下载些驱动以及更新。 第二,更改软件源: 打开“设置”,选...

Aomo
50分钟前
2
0
JSP 页面识别不了标签tag uri: [...] cannot be resolved in

1,org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application 也......

之渊
今天
1
0
Chrome OS或将测试Linux应用的GPU支持

Google 的 Chrome OS 已能支持运行 Linux 应用,但这一支持仍然处于早期阶段,它将在不久之后测试 Linux 应用的 GPU 支持(或叫图形加速),Chromium 源代码被发现加入了在 Linux 应用虚拟机...

linux-tao
今天
1
0
(六)java b2b2c springcloud shop 多用户商城系统源码-分布式配置中心(Spring Cloud Config)

一、简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件。在Spring Cloud中,有分布式配置中心组件spring cloud config ,它支持...

sccspuercode
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部