使用sqoop从mysql导入到hive基本操作
使用sqoop从mysql导入到hive基本操作
jcc_codingBoy 发表于4个月前
使用sqoop从mysql导入到hive基本操作
  • 发表于 4个月前
  • 阅读 8
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

1、编码基本设置

由于hdfs使用的是utf-8的编码格式,所以不管是从mysql导入,还是直接上传文件,编码格式必须是utf-8,否则就会出现乱码,所有有几个编码设置点要注意:

(1)、源数据mysql需要设置my.cnf配置文件  (不同版本可能设置不一样)    

   [client] 

 default-character-set=utf8  

 /*[mysqld]*/  

character-set-server=utf8 

(2)、源数据库(database编码确认设置)

    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/ |

如果不是以上格式,使用该指令设置,变换不同参数即可:set character_set_server=utf8;

(3)读取源数据的jdbc连接加上utf-8编码

      sqoop import --connect jdbc:mysql://10.0.13.116:3306/test?characterEncoding=UTF-8   --username hive --password for3edc4rfv --table driver --delete-target-dir --hive-overwrite --fields-terminated-by "," --target-dir /apps/hive/warehouse/t_driver

(4)hive的jdbc连接也设置utf-8

   <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>
    </property>

 

2、执行sqoop指令的权限

  由于sqoop需要操作hdfs,所以需要使用hdfs账号执行sqoop指令,否则要报无权限错误;

共有 人打赏支持
粉丝 0
博文 16
码字总数 13658
×
jcc_codingBoy
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: