问题描述

今天执行下面的脚本创建 sqoop job 的时候报了一个空指针异常

sqoop job --create myjob \
-- import \
--connect jdbc:mysql://127.0.0.1:3306/tmp \
--username root \
--P \
--table t_user \
--num-mappers 1 \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-database bms \
--hive-table t_user \
--hive-drop-import-delims \
--incremental append \
--check-column id \
--last-value 0 

报错信息如下

ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException
java.lang.NullPointerException
	at org.json.JSONObject.<init>(JSONObject.java:144)
	at org.apache.sqoop.util.SqoopJsonUtil.getJsonStringforMap(SqoopJsonUtil.java:43)
	at org.apache.sqoop.SqoopOptions.writeProperties(SqoopOptions.java:785)
	at org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.createInternal(HsqldbJobStorage.java:399)
	at org.apache.sqoop.metastore.hsqldb.HsqldbJobStorage.create(HsqldbJobStorage.java:379)
	at org.apache.sqoop.tool.JobTool.createJob(JobTool.java:181)
	at org.apache.sqoop.tool.JobTool.run(JobTool.java:294)
	at org.apache.sqoop.Sqoop.run(Sqoop.java:147)
	at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:82)
	at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183)
	at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234)
	at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243)
	at org.apache.sqoop.Sqoop.main(Sqoop.java:252)

问题解决

报错的原因是因为 sqoop 缺少了 java-josn.jar 导致的,我的 sqoop 版本是 1.4.7,不知道新版本会不会包含该 jar,因为我不想更换版本,所以手动下载 java-json.jar 到 ${SQOOP_HOME}/lib 下即可解决该问题

java-json.jar 下载地址:http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm

如果上面的地址访问不了,可以关注公众号:huangxy,回复 java-json 即可获取下载链接

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐