1 需求描述
Hql统计出热搜关键词,使用Sqoop将结果从Hive导出到Mysql,其中关键字是中文,需要注意建表语句和Sqoop导出参数的设置。这里记录整个导出过程及遇到问题如何排查解决。
2 Sqoop导出Hive数据到Mysql
2.1 Mysql建表
create table if not exists keyword_seach(
dt varchar(30) not null,
keyword varchar(255) not null,
count varchar(30) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
这里需要特别注意,Hive结果表results中keyword是中文,建表语句需要添加CHARSET=utf8mb4 COLLATE=utf8mb4_bin,否则报错Incorrect string value: '\xF0\xA4\xA3\xB3\xE5\xB0...' for column 'keyword' at row 39。
2.2 Sqoop导出脚本
sqoop_export.sh
#!/bin/bash
sudo -uhdfs sqoop export \
--connect \
"jdbc:mysql://IP:3306/database?useUnicode=true&characterEncoding=utf8" \
--username 'database' \
--password 'password' \
--