首页 > 科技 > sqoop的学习之导入到hive和mysql

sqoop的学习之导入到hive和mysql

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

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

先登录hive

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

create database frommysql;

创建表

创建表

create table importhive_info(

num int,

name string

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

数据也有了

执行语句

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

执行报错

但是我们数据库明明有

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

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

bin/schematool -dbType mysql –initSchema

出现derby信息,还是旧信息

我的配置没有起作用?

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

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

重新启动

Mysql中元数据库有了

重新创建上面的库表

元数据有信息了

在执行之前的sqoop语句

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

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

从hdfs导入到mysql(export)

常规模式导入数据到mysql

我们创建一个表

create table tomysql(

id int primary key not null,

name varchar(20) not null

);

导出语句

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'

查看下数据

sqoop运行一个file文件

在mysql重新建表file_to_mysql

创建文本

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'

执行命令

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

查看数据已经有了

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/kj/253406.html