0


使用sqoop将mysql数据导入到hive中

完整流程

1:安装sqoop(直接官网下就行了)详细教程点这里

在sqoop中配置环境(例如在/opt/sqoop-1.4.7.bin__hadoop-2.6.0/conf)

这里的地址要找出你对应的zookeeper,hadoop,hive地址

2.测试连接sqoop连接mysql

2-1代码与解释

sqoop list-databases --connect jdbc:mysql://192.168.10.102:3306/ --username root --password 1111

上面的地址是虚拟机地址,端口号默认为3306(也可以查一下此端口是否有mysqld,如下面),后面的是用户名(root)和密码(1111),都是根据自己的填

[root@hadoop102 ~]# sudo lsof -i :3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  2428 mysql   53u  IPv6  93577      0t0  TCP *:mysql (LISTEN)

2-2结果

正常情况下,可以显示所有数据库

3.导入mysql数据到hive中

sqoop import 
--connect jdbc:mysql://192.168.10.102:3306/kk 
--username root 
--password 1111 
--table student 
--fields-terminated-by ',' 
--delete-target-dir 
--num-mappers 1 
--hive-import 
--hive-database db_msg 
--hive-table student   

这个命令是,将mysql中kk数据库中的表student导入到hive的db_msg数据库的student表(hive中的表可不存在,会自动创建)

4.导入成功截图

遇到的问题

问题一:

问题:ERROR hive.HiveConfig: Could not load org.apache.hadoop.hive.conf.HiveConf. Make sure HIVE CONF DIR is set correctly.

分析:hive的HiveConf无法正确加载

解决:

1:去到hive的lib目录下

2:这个命令的输出结果将显示

hive-common-3.1.3.jar

中包含的所有类文件,其中包含

HiveConf

类的行将被高亮显示出来。(在我这里,HiveConf类存在,说明环境没配好)

jar tf hive-common-3.1.3.jar Igrep HiveConf.class

3: vi .bash_profile(编辑环境变量)

4:加入下面这两句

5:更新系统环境变量(source 一下)

标签: hive sqoop mysql

本文转载自: https://blog.csdn.net/qq_61594973/article/details/136023770
版权归原作者 dnsn7 所有, 如有侵权,请联系我们删除。

“使用sqoop将mysql数据导入到hive中”的评论:

还没有评论