Hive导出到Mysql中中文乱码的问题

在上一篇文章《从hive将数据导出到mysql》中,虽然通过hive中转,将hbase的数据成功导出到了mysql中,但是我们遇到了中文乱码问题。

一、mysql中的编码

mysql> show variables like 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+

| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

 可见原来缺省是latin1编码,会导致中文乱码。

可以在mysql中设置编码,单个设置
mysql> alter database name character set utf8;
mysql> set character_set_connection=utf8;

Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
但重启后会失效。

 

可以修改配置文件:

[root@Hadoop48 ~]# vi /etc/my.cnf
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
default-character-set=utf8
character_set_server=utf8
init_connect='SET NAMES utf8'

 重启mysql,这样确保缺省编码是utf8

[root@Hadoop48 ~]# service mysqld restart

 查看是否变成utf8:

mysql> \s
--------------
mysql Ver 14.12 Distrib 5.0.95, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id: 2
Current database: toplists
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.0.95 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 39 sec

Threads: 1 Questions: 12 Slow queries: 0 Opens: 15 Flush tables: 1 Open tables: 9 Queries per second avg: 0.308
--------------

mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql> show variables like "colla%";
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

 将mysql编码改成utf8,并在命令行中指定编码为utf8,执行导出报错:

[zhouhh@Hadoop46 ~]$ sqoop export --connect "jdbc:mysql://Hadoop48/toplists?useUnicode=true&characterEncoding=utf-8" -m 1 --table award --export-dir /user/hive/warehouse/hive_myaward/000000_0 --input-null-string "\\\\N" --input-null-non-string "\\\\N" --input-fields-terminated-by "\\01" --input-lines-terminated-by "\\n"

12/07/20 13:17:22 INFO mapred.JobClient: Task Id : attempt_201207191159_0233_m_000000_0, Status : FAILED
java.io.IOException: java.sql.SQLException: Incorrect string value: '\xE6\x9D\x80\xE7\xA0\xB4...' for column 'nick' at row 1

 原来我创建的表缺省编码不是utf8的,也需改变一下。

mysql> ALTER TABLE award CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 0 rows affected (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0

 再导出

[zhouhh@Hadoop46 ~]$ sqoop export --connect "jdbc:mysql://Hadoop48/toplists?useUnicode=true&characterEncoding=utf-8" -m 1 --table award --export-dir /user/hive/warehouse/hive_myaward/000000_0 --input-null-string "\\\\N" --input-null-non-string "\\\\N" --input-fields-terminated-by "\\01" --input-lines-terminated-by "\\n"
...
12/07/20 14:03:10 INFO mapred.JobClient: map 0% reduce 0%
12/07/20 14:03:24 INFO mapred.JobClient: map 100% reduce 0%
...
12/07/20 14:03:29 INFO mapreduce.ExportJobBase: Exported 2 record

 

检查表
mysql> select * from award;
+-------------------------------+-----------+-----------+------+-----------+-----------+--------+------+-------------+-----------------+---------+
| rowkey | productid | matchid | rank | tourneyid | userid | gameid | gold | loginid | nick | plat |
+-------------------------------+-----------+-----------+------+-----------+-----------+--------+------+-------------+-----------------+---------+
| 2012-04-27 06:55:00:402713629 | 5947 | 433203828 | 2 | 4027102 | 402713629 | 1001 | NULL | 715878221 | 杀破天A | ios |
| 2012-04-27 06:55:00:406788559 | 778 | 433203930 | 19 | 4017780 | 406788559 | 1001 | 1 | 13835155880 | 亲牛牛旦旦 | android |
+-------------------------------+-----------+-----------+------+-----------+-----------+--------+------+-------------+-----------------+---------+
2 rows in set (0.00 sec)

 中文编码问题解决。

2.2.1.3-移动平均线(python画k线、均线、5日线、买卖点图、python均线策略) * 绘制一个k线图,也就是蜡烛图 * 计算5日均线值、10日均线值 * 在k线图上,绘制5日线和10日线图 * 在5日线上,绘制与10日线的交叉点(上穿、下穿时) python画k线、均线、5日线、买卖点图、python均线策略 阅读详情

相关推荐

OLED的字模提取(保姆级)---基于PCtoLCD2013

做为一个刚刚开始接触编程不久的白菜,这个OLED想做一个信息显示,可是商家给我的例程里就是88,816两种字体的格式,我的屏幕是0.91寸的8*16的字体显示上感觉特别丢丢儿小,我就想整个大的,哎,只怪直接学习习惯不好,总是学一半,绕了好大一圈,才搞好,想写一篇博客,时刻提醒踏实学习,第一次写博客,小白一枚,勿喷。。 OLED屏幕驱动程序功能 我们对Markdown编辑器进行了一些功能拓展与语法支...

qq_44886611的博客 7782

解决Hive中文乱码问题

hive中文编码问题

duyenson的博客 4840

基于ENVI5.6与SARscape的哨兵一号时序InSAR实战:从数据准备到PS/SBAS结果解译

本文详细介绍了基于ENVI5.6与SARscape软件,利用哨兵一号(Sentinel-1)卫星数据,进行PS-InSAR与SBAS-InSAR时序分析,以监测地表形变的完整实战流程。内容涵盖从数据下载、软件配置、预处理、核心处理步骤到结果解译与质量评估,重点解析了PS与SBAS方法的关键参数设置、常见问题及解决方案,旨在帮助用户掌握从数据准备到成果分析的完整技术链条。

oo7890的博客 634

解决hive表中文乱码问题

hive字段名称和字段描述等存储进如hivemetastore是中文,查询出来也是???等无法识别的中文乱码;

fct2001140269的博客 2783

Pixhawk RPi CM4 Baseboard 树莓派CM4安装Ubuntu20.04 server 配置ros mavros mavsdk

cm4配置ros mavros连接pixhawk4 Pixhawk RPi CM4 Baseboard

baidu_41704597的博客 2128

5分钟搞定!用L型匹配电路优化窄带天线性能(附Smith圆图实操)

本文针对窄带天线阻抗匹配难题,提供了一套5分钟快速解决方案。通过详解L型匹配电路的核心原理,并结合Smith圆图这一射频工程师的“瑞士军刀”,手把手指导如何选择拓扑、计算元件值并进行实际调试,旨在帮助硬件工程师高效优化天线性能,实现最大功率传输。

yyy34的博客 444

hive mysql 乱码_解决Hive中文乱码

解决Hive中文乱码第一步:先停止mysql服务:service mysql stop在/usr/my.cnf中的[mysqld]后添加以下内容:init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8collation-server...

weixin_29133151的博客 445

Android流畅度优化实战:从掉帧定位到布局与渲染调优

在移动应用开发中,性能优化是决定用户体验与留存率的关键环节,其中Android流畅度优化更是核心命题。用户感知的“卡顿”往往并非持续低帧率,而是由于掉帧率波动引发的偶发不流畅。本文从性能优化理论出发,系统讲解如何使用Systrace、CPU Profiler等工具定位掉帧瓶颈,深入分析布局层级过深、过度绘制、对象分配与GC压力等常见诱因。同时结合冷启动耗时、列表滚动掉帧、Bitmap加载等真实工程案例,阐述从应用层到系统层的分级优化策略,并给出低端机适配、异步化改造及线上监控体系搭建的实践方案。内容覆盖布局

weixin_29185493的博客 201

hive支持MySQL显示中文,解决字段注释乱码

hive支持MySQL显示中文,解决字段注释乱码

weixin_46556780的博客 3424

基于CANoe的车载以太网测试

以太网测试 CANoe

Yafet 4554

手把手教你使用ConvNeXt训练自己数据集和推理,ConvNeXt模型训练(CVPR 2022),一个能挑战 Vision Transformer 的卷积神经网络,含完整代码和数据集

手把手教你使用ConvNeXt训练自己数据集和推理,ConvNeXt模型训练(CVPR 2022),一个能挑战 Vision Transformer 的卷积神经网络,含完整代码和数据集

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1454

hive到mysql中文乱码_Hive导出到Mysql中中文乱码的有关问题

Hive导出到Mysql中中文乱码的问题 在上一篇文章《 从hive将数据导出到mysql 》中,虽然通过hive中转,将hbase的数据成功导出到了mysql中,但是我们遇到了中文乱码问题。 一、mysql中的编码 mysql show variables like 'collation_%';+----------------------+Hive导出到Mysql中中文乱码的问题在上一篇文章《...

weixin_39702483的博客 323

芒果YOLO11改进172:ARConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea

ARConv自适应旋转卷积,全网首发 | 即插即用:以增强其表征能力,从而准确检测方向物体,ICCV顶会论文idea

包括YOLOv5、YOLOv7、YOLOv8等模型改进 1515

Hive导出MySQL中文乱码问题

Hive导出MySQL中文乱码问题 刚开始是认为是Hive和MySQL建表的字符集不匹配 修改MySQL的字符编码: alter database xxx character set utf8; alter table xxx character set utf8; 修改Hive的字符编码; alter database xxx character set utf8; alter table xxx set serdeproperties('serialization.encoding'='utf8

止于终老的博客 1197

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

hive到mysql中文乱码_Hive导出到MySQL中中文乱码的问题

一、mysql中的编码 mysqlgt; show variables like一、mysql中的编码mysql> show variables like 'collation_%';+----------------------+-------------------+| Variable_name | Value |+----------------------+------------...

weixin_27697385的博客 200

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql中hive库的编码_Hive导出到Mysql中中文乱码的有关问题

在上一篇文章《从hive将数据导出到mysql》中,虽然通过hive中转,将hbase的数据成功导出到了mysql中,但是我们遇到了中文乱码问题。一、mysql中的编码mysql> show variables like 'collation_%'; +----------------------+-------------------+ | Variable_name | Value | ...

weixin_31487533的博客 145

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

sqoop工具将数据从Hive导出到mysql中文乱码问题

sqoop工具将数据从Hive导出到mysql中文乱码问题 常用从hive导出数据到mysql的sqoop执行语句: bin/sqoop export \ --connect jdbc:mysql://bigdata01:3306/etl \ --username root \ --password 123456 \ --table twobatchavgscore \ --num-mappers 1 \ --export-dir /user/hive/warehouse/etl/000000_0 \ -

懵懂bigdata象 4684

转---hive导出到mysql后出现中文乱码问题

Hive导出到Mysql中中文乱码的问题 2013年04月25日 16:11:03 zreodown 阅读数:3764更多 个人分类: sqoop 一、mysql中的编码   mysql> show variables like 'collation_%'; +----------------------+-------------------+ | Variable_name ...

qq_15074737的博客 594

Hive数据仓库--Hive导出至Mysql中文乱码问题

也是目前遇到的比较棘手的问题之一,虽然最终解决的时候,并没有修改过多的东西,但是在这个过程中也折磨了近两天的时间。不过这个过程中,查阅了网络上以及书上等等的资料,对于Sqoop导出Hive数据到Mysql中也算是深刻的体验了一把,我解决问题的大致流程:1. 猜想语句中可能需要加参数设置utf-8的编码,但是不幸的是,设置完成后并没有起到应有的效果。2. 猜想数据库中编码存在问题(虽然我的这个最终不

王洋的专栏 6206

mysql中hive库的编码_Hive导出到MySQL中中文乱码的问题

一、MySQL中的编码mysql> show variables like 'collation_%';+----------------------+-------------------+| Variable_name | Value |+----------------------+-------------------+| collation_connection | latin1_...

weixin_28692153的博客 94

将数据导入到mysql_Sqoop将hive数据导出到MySQL中文乱码了怎么办?

首先简单说下sqoop的安装:准备sqoop的安装包sqoop-1.4.5.bin__hadoop-0.23.tar.gz和MySQL的驱动mysql-connector-java-5.1.43-bin.jar。安装包上传至Linux服务器。解压sqoop-1.4.5.bin__hadoop-0.23.tar.gz后配置sqoop的环境变量。修改sqoop的sqoop-env.sh的配置: # S...

weixin_36160690的博客 320

hive数据导入MySQL乱码_Sqoop将hive数据导出到MySQL中文乱码了怎么办?

今天遇到一个问题,如下图所示,我用sqoop将hive中数据导出到mysql中,结果出现了以下情况:经过查找资料,终于解决了问题,下面我将自己的完整解决步骤做一下记录,如果能帮到需要帮助的人,我会非常开心,最主要的是将来自己再遇到类似的问题可以进行查看。首先在mysql的指令界面输入以下命令:show variables like 'character%';出现以下界面,我的界面是这样的:我按照搜...

weixin_32421297的博客 669

Sqoop导出到MySQL中文乱码问题

解决mysql中文乱码的一种方式

a805814077的博客 1404

解决Sqoop导出到MySQL中文乱码问题

解决mysql中文乱码的一种方式

六根绳的博客 1402
上一篇: 从hive将数据导出到mysql
下一篇: 用python脚本定期备份文件
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值