Hive TEXTFILE类型文件ARC4压缩Select时乱码
TEXTFILE类型文件ARC4压缩Select时乱码
现象描述
Hive查询结果表做压缩存储(ARC4),对结果表做select * 查询时返回结果为乱码。
可能原因
TEXTFILE文件非块文件,使用ARC4按条加密后,读取文件会异常,无法解析内容,导致乱码。
定位思路
- 设置压缩类:org.apache.hadoop.io.encryption.arc4.ARC4BlockCodec,按块对TEXTFILE类型文件加密。
- 正常设置耗时1分钟以内。
处理步骤
- 查询出乱码以后,在beeline客户端执行以下命令。 set mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.encryption.arc4.ARC4BlockCodec; set hive.exec.compress.output=true; 输入admin用户的密码完成登录。
- 重新导入数据到结果表。 insert overwrite table tbl_result select * from tbl_source;
- 执行select命令检查内容是否为乱码。 select * from tbl_result; 没有乱码证明问题得到解决。