问题描述
今天执行下面的脚本创建 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 即可获取下载链接