我正在尝试使用sqoop将数据导入配置单元。当我从一个用户那里尝试这个脚本时,它工作了,但是从另一个用户那里,它失败了。
我的剧本如下:
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条答案
按热度按时间r3i60tvu1#
此脚本中没有执行数据库创建
这是常有的事。在下面的脚本行中:
请参阅sqoop文档。具体来说是:
脚本将通过调用运行sqoop的机器上已安装的配置单元副本来执行
在内部,sqoop将调用hive来执行导入。将使用配置单元的默认身份验证机制。这就解释了为什么它和用户一起工作
A
谁有权create database
在配置单元中,但在用户调用时失败B
他们可能没有这种特权。通过调用配置单元命令行进行验证,并尝试运行
CREATE DATABASE
声明。