sqoop import mysql_sqoop的使用之导入到hive和mysql

本文档介绍了如何使用sqoop从MySQL导入数据到Hive以及从Hive导出数据到MySQL。首先,在Hive中创建数据库和表,然后通过sqoop的import命令进行数据迁移,并解决遇到的元数据问题。接着,演示了如何将Hive的数据导回MySQL,确保数据传输的正确性。最后,通过文件方式再次验证sqoop export命令的有效性。
摘要由CSDN通过智能技术生成

承接上一篇文档《sqoop的使用之import导入到HDFS》

mysql导入数据到hive中该如何做呢?

先登录hive

7a20ed474959b5ff74732ab03a82bb6d.png

在hive中操作,创建数据库:

create database frommysql;

293872f9a84c52039df2a1df56564416.png

创建表

创建表

create table importhive_info(

num int,

name string

)row format delimited fields terminated by "\t";

2742bebc2d0fb54e9f7248f0f562dd20.png

数据也有了

022080a109722c49b9c2c67f9b0abdd0.png

执行语句

bin/sqoop import  \

--connect jdbc:mysql://mastercdh:3306/sqoop_test \

--username root \

--password password \

--direct \

--table importhdfs \

--delete-target-dir \

--hive-import \

--hive-database frommysql \

--hive-table importhive_info \

--fields-terminated-by "\t" \

-m 1

执行报错

5431a5bfd5417b547ce318c6ca5b3063.png

但是我们数据库明明有

54b60a02eac42cfb978622a518adcf49.png

查看mysql元数据信息发现新建的库表都没有

233534a155ebc2edbcdd69c2d855ddea.png

难道没有使用mysql的元数据库?初始化出问题了吗?于是重新初始化

bin/schematool -dbType mysql –initSchema

出现derby信息,还是旧信息

48dac0ca490a37461b62edb583feb462.png

我的配置没有起作用?

d669dadda0ba1b0bde73ace51ace0943.png

为什么会有元数据库呢?说明之前是对的,仔细核对了一遍,发现是配置文件被我改动的问题。

这个地方写错路径了(截图已改对)

61bd2dfbf3b4b46bce5bcc91696479d9.png

重新启动

821a8e7a14d809c998d5e7305e6d251a.png

Mysql中元数据库有了

5a0923d4a101f59d570ae2199d731bc9.png

重新创建上面的库表

46966e43b416b78c07aaed7a4d68a64f.png

f09a0dd891886dd4e9efd980035a2080.png

元数据有信息了

2a84c96530faf8259948032657c3dce2.png

在执行之前的sqoop语句

4d73081332b12106cb41b156866f5c6b.png

查看下hive中的数据已经有了

a3501856be8f2f6e649f0fa3fa25d8e6.png

这个地方注意:运行mr任务时,结果将会保存在默认的输出目录上。还在/user/hive/warehouse。

e5311b66c5420f67af3379235f05902c.png

从hdfs导入到mysql(export)

常规模式导入数据到mysql

我们创建一个表

create table tomysql(

id    int  primary key not null,

name  varchar(20) not null

);

ae15cab0c13f485d62c2615f6da0fdee.png

导出语句

bin/sqoop export \

--connect jdbc:mysql://mastercdh:3306/sqoop_test \

--username root \

--password password \

--table tomysql \

--export-dir /user/hive/warehouse/frommysql.db/importhive_info \

-m 1 \

--input-fields-terminated-by '\t'

00808cc2885b5cb97a07511d69ad8ee7.png

查看下数据

fd1656b434b8840cc65f1db611ad4f6d.png

sqoop运行一个file文件

在mysql重新建表file_to_mysql

838223a7bb2e2e8e0347d8839b7d5fc1.png

创建文本

export

--connect

jdbc:mysql://mastercdh:3306/sqoop_test

--username

root

--password

password

--table

file_to_mysql

--export-dir

/user/hive/warehouse/frommysql.db/importhive_info

-m

1

--input-fields-terminated-by

'\t'

a2b512aa58330f27d119f7e3ed5a6a55.png

执行命令

bin/sqoop --options-file  /data/test/filetomysql

9861e29891d9d493058a40abf7afea37.png

查看数据已经有了

a28753589dd5048fbcd718cb27f2d989.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值