问题描述

最近有一段时间,跑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表情发生截断丢失数据问题分析相关推荐

  1. mysql存微信你曾_Mysql存储微信Emoji表情问题

    问题 Tomcat 中报 Java 如下错误: java.sql.SQLException: Incorrect string value: '\xF0\x9F\x8D\x87 \xE7...' fo ...

  2. MySQL保存微信呢称和QQ呢称上有很多火星文和emoji表情图片,解决mysql配置utf8mb4 的问题

    微信呢称和QQ呢称上有很多火星文和emoji表情图片,这些数据,如果直接insert到mysql数据库,一般会报错,设置成utf8都不好使,必须改成utf8mb4编码,这二者的区别见: mysql u ...

  3. 表情符号mysql utf8mb4_mysql utf8mb4与emoji表情

    一 什么是Emoji emoji就是表情符号:词义来自日语(えもじ,e-moji,moji在日语中的含义是字符) 表情符号现已普遍应用于手机短信和网络聊天软件. emoji表情符号,在外国的手机短信里 ...

  4. 存储emoji表情或特殊字符报错(Incorrect string value: ‘\xF0\x9F\x98\x82\xF0\x9F...‘)

    今天发生一件有趣的事情. 我的博客 我在一篇文章中使用了**emoji表情**,前面很顺利,不管是WordPress还是其他博客园啥的,都是正常发送. 但是,我在Typecho系统中发布文章时.... ...

  5. 这个emoji表情可使iphone变砖

    [环球科技报道]据英国<每日邮报>1月20日报道,最近新发现了一个苹果手机的错误,当收到特定的emoji表情后,任何人都可以用简单的三个字符的文本消息使你的iphone变砖. 你可能还觉得 ...

  6. emoji表情乱码php,推送emoji表情乱码的解决方法

    推送内容如果包含了emoji表情,需要做以下修改 1 mysql 要用5.5.3以上版本(如果不能升级,请用base64保存,推送时再转码) 2 将表和推送内容表字段修改成utf8mb4_unicod ...

  7. mysql utf8mb4 emoji_mysql utf8mb4与emoji表情[转]

    MYSQL 5.5 之前, UTF8 编码只支持1-3个字节,只支持BMP这部分的unicode编码区, BMP是从哪到哪,到http://en.wikipedia.org/wiki/Mapping_ ...

  8. 城堡的emoji表情_和老外聊天,这几个emoji表情不要乱发,内涵太丰富了…

    转载自From: 留学帝 ID:ukyingwen 相信每个过来人都有这样的感受: 青春年少的时候,为了彰显自己的个性.为了证明自己走在时代的前沿,为了和爹妈那一辈的老旧思想划清界限,我们总会鼓捣出一 ...

  9. SqlSugar 插入emoji表情

    在使用SqlSugar做数据插入时发现插入emoji表情的字符串时会报错:提示插入字符串/F0/xxxxx什么的失败,类似:Incorrect string value: '\xF0\x9F...' ...

最新文章

  1. linux安装redis 完整步骤
  2. 基础【循环】-----(枚举器)------(转)
  3. Linux的实际操作:文件目录类的实用指令(创建目录mkdir 删除目录rmdir 递归删除目录rm -rf)
  4. java 微信开发图片发送,微信开发?Java上传Base64图片
  5. 【Fiddler】从零开始学习Fiddler
  6. springboot幼儿园幼儿基本信息管理系统毕业设计源码201126
  7. 智课雅思短语---一、be no exception
  8. TiDB v5.3.0->v5.4.2->v6.1.0升级、TiDB/PD/TiKV/TiFlash扩缩容、TiSpark部署指北
  9. 介绍分享几款免费的在线Web文件管理器
  10. 数字商品指南系列第三篇:编写智能合约并编译部署
  11. bp神经网络推导以及物理意义
  12. 小陈java学习笔记IO
  13. es bulk java_Java Elasticsearch Bulk API 批量操作
  14. 云原生之史上最全K8S环境搭建(强烈建议收藏)
  15. com.mysql.cj.jdbc.Driver和serverTimezone=GMT%2B8 数据库的配置
  16. 淘宝联盟代码html无法显示,阿里妈妈的iconfont的引用问题
  17. 如何写商标转让公证书
  18. 关于WAP下载的手机文件MIME类型
  19. rt-thread nano移植到新唐M031
  20. You've Raised The Children; Time For A Job?

热门文章

  1. Canvas API初步学习
  2. 线段树HDU1698(成段更新)
  3. 防外挂和防木马的通用解决方案
  4. 大侠稍等!URL 中为何出现奇怪的字符
  5. 使用Scrapy框架发送POST请求
  6. JAVA通信编程(四)——UDP通讯
  7. 音视频技术开发周刊 | 193
  8. shell写的彩色进度条
  9. 拥有一台你的轻量应用服务器Lighthouse
  10. nginx-rtmp源码概述