sqoop import MetaException(消息:用户用户没有CREATEDATABASE的权限)

时间:2018-04-16 10:15:49

标签: hive sqoop

我正在尝试使用sqoop将数据导入hive。当我从一个用户尝试过这个脚本时,它起了作用,但是从另一个用户那里,它失败了。

我的脚本如下:

import
--connect
jdbc:oracle:thin:@host:port/sid
--compression-codec
org.apache.hadoop.io.compress.SnappyCodec
--username
user
--password
pas
--query
query
--map-column-java
col=String
-hive-import
--hive-overwrite
--hive-drop-import-delims
--hive-database
db
--hive-table
table
--as-parquetfile
--split-by
col
--delete-target-dir
--target-dir
table
-m
1

据我了解,此脚本中没有任何地方执行数据库创建。我试过它,有没有hive表已经存在。

为什么会抛出此错误(如标题中所述)?

1 个答案:

答案 0 :(得分:0)

  

此脚本中没有任何地方执行数据库创建

它发生了。在您的以下脚本行中:

--hive-database
db

参考Sqoop documentation。 特别是这一行:

  

将通过在运行Sqoop的机器上调用已安装的配置单元来执行该脚本

内部Sqoop会调用hive来执行导入。将使用hive的默认认证机制。这说明为什么它适用于在hive中具有A权限的用户create database,但在可能没有该权限的用户B调用时失败。

通过调用hive命令行进行验证,并尝试运行CREATE DATABASE语句。