Sqoop ERROR metastore.GenericJobStorage: Cannot restore job

我的环境为 CDH 6.2 sqoop1.4.7 出现这个错误。我这里不考虑没有创建JOB的情况。因为,我已经创建几次job。同时我执行运行job时,有时可以运行,有时不可以运行。

20/04/27 10:22:41 ERROR metastore.GenericJobStorage: Cannot restore job: acc_account_ply_base_job
20/04/27 10:22:41 ERROR metastore.GenericJobStorage: (No such job)
20/04/27 10:22:41 ERROR tool.JobTool: I/O error performing job operation: java.io.IOException: Cannot restore missing job acc_account_ply_base_job
	at org.apache.sqoop.metastore.GenericJobStorage.read(GenericJobStorage.java:272)
	at org.apache.sqoop.tool.JobTool.execJob(JobTool.java:205)
	at org.apache.sqoop.tool.JobTool.run(JobTool.java:303)
	at org.apache.sqoop.Sqoop.run(Sqoop.java:146)
	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:76)
	at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:182)
	at org.apache.sqoop.Sqoop.runTool(Sqoop.java:233)
	at org.apache.sqoop.Sqoop.runTool(Sqoop.java:242)
	at org.apache.sqoop.Sqoop.main(Sqoop.java:251)

1、原因定位

CDH中查看日志时发现,启动的服务器不一样,导致有些服务器没有job 有些有job 。庆幸的是我是开发环境,集群只有几台。通过下图可以判断是每台服务器的sqoop job库不一致导致的。(由于其他原因不便贴出脚本) 多次运行 sqoop job --list 更加验证了我的观点。切记在CDH中运行
在这里插入图片描述
在这里插入图片描述

2、解决

定位出问题解决:

1、设置统一的:meta-connect 在CDH sqoop配置中设置高级代码块。

sqoop-conf/sqoop-site.xml 的 Sqoop 1 Client 客户端高级配置代码段(安全阀)

<property>
	<name>sqoop.metastore.server.location</name>
	<value>/usr/local/sqoop/tmp/sqoop-metastore/shared.db</value>
</property>
<property>
	<name>sqoop.metastore.server.port</name>
	<value>16000</value></property>
<property>
	<name>sqoop.metastore.client.autoconnect.url</name>
	<value>jdbc:hsqldb:hsql://bigdata04:16000/sqoop</value>
</property>

在这里插入图片描述

2、启动 metastore

到我们的服务器上运行metastore 。注意:是我们配置metastore.client.autoconnect.url 的这台服务器。

$SQOOP_HOME/bin/sqoop metastore &  

在这里插入图片描述

3、创建job

需要指定 --meta-connect 查看job list时候也需要指定。--meta-connect jdbc:hsqldb:hsql://bigdata04:16000/sqoop \

/opt/cloudera/parcels/CDH-6.2.0-1.cdh6.2.0.p0.967373/bin/sqoop job --create acc_account_ply_base_job \
 --meta-connect jdbc:hsqldb:hsql://bigdata04:16000/sqoop \  #重点
 -- import  \
 --connect jdbc:oracle:thin:@192.168.25.1:1521:test \
 --username acc \
 --password-file /user/admin/sqoop/pwd/UAT/acc.pwd \
 --target-dir /qhbdb/acc/accocunt_ply_base \
 --table ACC.ACCOUNT_PLY_BASE \
 --fields-terminated-by "\t" \
 --lines-terminated-by "\n" \
 --null-string '\\N' \
 --null-non-string '\\N' \
 --incremental append \
 --check-column UPDATE_TIME \
 --merge-key PK_ID\
 --last-value  "2006/01/01 00:00:00" \
 --hive-drop-import-delims \
 -m 1

4、网关设置

sqoop 的gatway CDH中每一台服务器都需要添加网关实例。
在这里插入图片描述

5、运行

当我们使用HUE 定时调用shell 执行sqoop脚本。就可以正常运行。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值