sqoop导入hive

2023-06-28 16:48:53 浏览数 (3)

1.1hive-import参数

使用--hive-import就可以将数据导入到hive中,但是下面这个命令执行后会报错,报错信息如下:

sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table person -m 1 --hive-import

报错是因为在用户的家目录下已经存在了一个person目录。

原因是因为sqoop导数据到hive会先将数据导入到HDFS上,然后再将数据load到hive中,最后吧这个目录再删除掉。当这个目录存在的情况下,就会报错。

1.2target-dir参数来指定临时目录

为了解决上面的问题,可以把person目录删除掉,也可以使用target-dir来指定一个临时目录

sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table person -m 1 --hive-import --target-dir temp

1.3hive-overwrite参数

如果上面的语句执行多次,那么会产生这个表数据的多次拷贝

1.4fields-terminated-by

当吧mysql中的数据导入到hdfs中,默认使用的分隔符是空格

sqoop import  --connect jdbc:oracle:thin:@172.17.x.xxx:1521:ORCL   --username ICO --password ico  --table C1_DIM_01216 --hive-table default.c1_dim_01216  --hive-import  --fields-terminated-by ","  -m 1;

0 人点赞