Flume 1.6 遇Emoji表情发生截断丢失数据问题分析
问题描述
最近有一段时间,跑ETL的时候,发现出来的数据明显比之前少,少了大约一半左右,就开始排查。
我们的数据是从Flume采集过来的,排查日志发现,flume在读取到某一条的时候,就不再往下读取了。
问题分析
进一步拿到原始文件后,找到那条数据。用vim打开发现其中有个地方有两个空格。起初以为是乱码(之前flume出过乱码中断的问题),贴到ide里面,得到具体编码为\uD83D\uDD1E\uD83D\uDCAA,发现是四字节的utf-8编码。贴到Google一看,原来是Emoji表情。
跟踪flume源码发现,在spooling directory source中,只支持3个字节以内的utf-8。而遇到这种4字节的utf-8将发生截断,并且会解读为EOF,即结束标志。换句话说,当前文件中,这个表情后面的数据全部不再读取了,也不会发生报错情况。
解决办法
翻了下flume官方的issues,果然有这个问题:“Flume agent fails to parse files with emoji when the source type is spooldir”,地址:https://issues.apache.org/jira/browse/FLUME-2828。但是处于OPEN状态,未解决。
继续翻发现,“ResettableFileInputStream can’t support ucs-4 character”,地址是:https://issues.apache.org/jira/browse/FLUME-2215,这个bug有点关联,仔细看了下,确实能够解决。
新版本flume(1.7)已经修复该问题,考虑到当前flume并没有进行复杂的业务逻辑操作,故直接升级版本。
Flume 1.6 遇Emoji表情发生截断丢失数据问题分析相关推荐
- mysql存微信你曾_Mysql存储微信Emoji表情问题
问题 Tomcat 中报 Java 如下错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8D\x87 \xE7...' fo ...
- MySQL保存微信呢称和QQ呢称上有很多火星文和emoji表情图片,解决mysql配置utf8mb4 的问题
微信呢称和QQ呢称上有很多火星文和emoji表情图片,这些数据,如果直接insert到mysql数据库,一般会报错,设置成utf8都不好使,必须改成utf8mb4编码,这二者的区别见: mysql u ...
- 表情符号mysql utf8mb4_mysql utf8mb4与emoji表情
一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. emoji表情符号,在外国的手机短信里 ...
- 存储emoji表情或特殊字符报错(Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F...‘)
今天发生一件有趣的事情. 我的博客 我在一篇文章中使用了**emoji表情**,前面很顺利,不管是WordPress还是其他博客园啥的,都是正常发送. 但是,我在Typecho系统中发布文章时.... ...
- 这个emoji表情可使iphone变砖
[环球科技报道]据英国<每日邮报>1月20日报道,最近新发现了一个苹果手机的错误,当收到特定的emoji表情后,任何人都可以用简单的三个字符的文本消息使你的iphone变砖. 你可能还觉得 ...
- emoji表情乱码php,推送emoji表情乱码的解决方法
推送内容如果包含了emoji表情,需要做以下修改 1 mysql 要用5.5.3以上版本(如果不能升级,请用base64保存,推送时再转码) 2 将表和推送内容表字段修改成utf8mb4_unicod ...
- mysql utf8mb4 emoji_mysql utf8mb4与emoji表情[转]
MYSQL 5.5 之前, UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区, BMP是从哪到哪,到http://en.wikipedia.org/wiki/Mapping_ ...
- 城堡的emoji表情_和老外聊天,这几个emoji表情不要乱发,内涵太丰富了…
转载自From: 留学帝 ID:ukyingwen 相信每个过来人都有这样的感受: 青春年少的时候,为了彰显自己的个性.为了证明自己走在时代的前沿,为了和爹妈那一辈的老旧思想划清界限,我们总会鼓捣出一 ...
- SqlSugar 插入emoji表情
在使用SqlSugar做数据插入时发现插入emoji表情的字符串时会报错:提示插入字符串/F0/xxxxx什么的失败,类似:Incorrect string value: '\xF0\x9F...' ...
最新文章
- linux安装redis 完整步骤
- 基础【循环】-----(枚举器)------(转)
- Linux的实际操作:文件目录类的实用指令(创建目录mkdir 删除目录rmdir 递归删除目录rm -rf)
- java 微信开发图片发送,微信开发?Java上传Base64图片
- 【Fiddler】从零开始学习Fiddler
- springboot幼儿园幼儿基本信息管理系统毕业设计源码201126
- 智课雅思短语---一、be no exception
- TiDB v5.3.0->v5.4.2->v6.1.0升级、TiDB/PD/TiKV/TiFlash扩缩容、TiSpark部署指北
- 介绍分享几款免费的在线Web文件管理器
- 数字商品指南系列第三篇:编写智能合约并编译部署
- bp神经网络推导以及物理意义
- 小陈java学习笔记IO
- es bulk java_Java Elasticsearch Bulk API 批量操作
- 云原生之史上最全K8S环境搭建(强烈建议收藏)
- com.mysql.cj.jdbc.Driver和serverTimezone=GMT%2B8 数据库的配置
- 淘宝联盟代码html无法显示,阿里妈妈的iconfont的引用问题
- 如何写商标转让公证书
- 关于WAP下载的手机文件MIME类型
- rt-thread nano移植到新唐M031
- You've Raised The Children; Time For A Job?