首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sqoop增量SemanticException ://host/user/xyz/_sqoop/错误?

Sqoop增量SemanticException ://host/user/xyz/_sqoop/错误?
EN

Stack Overflow用户
提问于 2018-04-27 17:43:47
回答 1查看 148关注 0票数 0

我正在尝试创建一个保存的sqoop作业(增量),并使用sqoop转移存储库。(出于安全原因,"xyz“是运行作业的unix用户,并使用sample_table作为参考)

代码语言:javascript
复制
sqoop job -Dhadoop.security.credential.provider.path=jceks://path/to/pwd \
--meta-connect "jdbc:hsqldb:file:/tmp/sqoop-meta.db;shutdown=true" \
--create sample_job --import -Dmapred.job.queue.name=realtime \
--connect jdbc:mysql://hostname/db?zeroDateTimeBehavior=convertToNull \
--driver com.mysql.jdbc.Driver \
--table SAMPLE_TABLE -m 1 \
--username tony \
--password-alias pwd \
--incremental lastmodified \
--check-column ts \
--last-value 2018-04-24 \
--target-dir /some/tmp/location/ \
--map-column-hive XYZ=tinyint \
--null-string '' \
--null-non-string ''

使用本地sqoop亚稳态,这也用于执行存储的作业。

代码语言:javascript
复制
sqoop job --meta-connect "jdbc:hsqldb:file:/tmp/sqoop-meta.db;shutdown=true" -exec sample_job

Sqoop运行良好,我可以看到数据被拖到hdfs位置。然而,在最后得到这个错误。似乎在任何地方都找不到解决办法。尝试给予_sqoop目录完全权限,但仍然是相同的prob。

代码语言:javascript
复制
    Logging initialized using configuration in jar:file:/usr/hdp/2.6.4.0-91/hive/lib/hive-common-1.2.1000.2.6.4.0-91.jar!/hive-log4j.properties
    OK
    Time taken: 3.028 seconds
    FAILED: SemanticException Line 2:17 Invalid path ''hdfs://hostname/user/xyz/_sqoop/ad240610c282442cb65b61b14f582935_sample_table'': No files matching path hdfs://vBAPUAT01nn/user/xyz/_sqoop/ad240610c282442cb65b61b14f582935_sample_table

但是上面的文件不在_sqoop位置。相反,每次我运行sqoop操作时,都会看到新创建的不同名称的文件。/sqoop/

代码语言:javascript
复制
$ hadoop fs -ls /user/pcjaapp/_sqoop/
drwxrwxrwx   - xyz hdfs          0 2018-04-26 16:31 /user/xyz/_sqoop/1ab0f2de2ace4984b7b978af5f8f8336_sample_table
drwxr-xr-x   - xyz hdfs          0 2018-04-27 10:50 /user/xyz/_sqoop/3aedb9fc0857433f8388ae2c70019d93_sample_table
drwxrwxrwx   - xyz hdfs          0 2018-04-26 16:54 /user/xyz/_sqoop/6dfb90bcf7854f5e82efebbcd317cabe_sample_table
drwxrwxrwx   - xyz hdfs          0 2018-04-26 15:29 /user/xyz/_sqoop/a59b80e855734c35b785bdc35dcbd5a6_sample_table
drwxrwxrwx   - xyz hdfs          0 2018-04-26 14:30 /user/xyz/_sqoop/b77d4b88140e469daa5aa0962b56b562_sample_table

有人能说明一下这里到底发生了什么吗。这在这个领域相当新,因为这是第一次尝试使用亚稳态启动sqoop增量工作。

EN

回答 1

Stack Overflow用户

发布于 2018-05-04 13:39:24

我挖掘了正式的docs & hortonworks资源,通过从sqoop命令中删除以下参数,最终能够解决这个问题:

代码语言:javascript
复制
--hive-import \
--map-column-hive XYZ=tinyint \

我意识到在本例中可以忽略tinyint转换,方法是将其作为字符串传递。如果使用上面的命令,sqoop也需要“-hive”子句,而这正是它失败的地方,因为它每次都需要一个基础表。当删除上述子句+map-列-hive参数时,sqoop成功完成,并能够用最后一个值更新亚稳态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50067667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档