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

先登录hive

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(1)

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

create database frommysql;

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(2)

创建表

创建表

create table importhive_info(

num int,

name string

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

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(3)

数据也有了

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(4)

执行语句

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

执行报错

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(5)

但是我们数据库明明有

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(6)

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

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(7)

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

bin/schematool -dbType mysql –initSchema

出现derby信息,还是旧信息

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(8)

我的配置没有起作用?

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(9)

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

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

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(10)

重新启动

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(11)

Mysql中元数据库有了

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(12)

重新创建上面的库表

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(13)

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(14)

元数据有信息了

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(15)

在执行之前的sqoop语句

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(16)

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

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(17)

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

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(18)

从hdfs导入到mysql(export)

常规模式导入数据到mysql

我们创建一个表

create table tomysql(

id int primary key not null,

name varchar(20) not null

);

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(19)

导出语句

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导入数据到hive(sqoop的使用之导入到hive和mysql)(20)

查看下数据

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(21)

sqoop运行一个file文件

在mysql重新建表file_to_mysql

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(22)

创建文本

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'

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(23)

执行命令

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

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(24)

查看数据已经有了

sqoop导入数据到hive(sqoop的使用之导入到hive和mysql)(25)