您的位置:首页 > 编程语言 > Java开发

ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException 解决方案【SOLVED】

2017-03-26 13:52 866 查看
洛萨之锋公司最近需要使用sqoop利用hcatalog将数据从mysql导入到hive,我在导数据的时候碰到这样的问题:

ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException.

具体Exception是:

java.lang.NullPointerException
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1012)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:528)
at org.apache.sqoop.util.Executor.exec(Executor.java:76)
at org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.executeExternalHCatProgram(SqoopHCatUtilities.java:1126)
at org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.launchHCatCli(SqoopHCatUtilities.java:1078)
at org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.createHCatTable(SqoopHCatUtilities.java:625)
at org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureHCat(SqoopHCatUtilities.java:340)
at org.apache.sqoop.mapreduce.hcat.SqoopHCatUtilities.configureImportOutputFormat(SqoopHCatUtilities.java:783)
at org.apache.sqoop.mapreduce.ImportJobBase.configureOutputFormat(ImportJobBase.java:98)
at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:259)
at org.apache.sqoop.manager.SqlManager.importQuery(SqlManager.java:729)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:499)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)

最后在google上找到了答案:
https://github.com/apache/sqoop/blob/3fba26419be2aba0347b0a5c3301eb8bb682fca1/src/java/org/apache/sqoop/mapreduce/hcat/SqoopHCatUtilities.java
中写道:

    home = opts.getHCatHome();

    if (home == null || home.length() == 0) {

      LOG.warn("HCatalog home is not set. job may fail if needed jar "

        + "files are not found correctly.  Please set HCAT_HOME in"

        + " sqoop-env.sh or provide --hcatalog-home option.  "

        + "HCAT_HOME defaulted to " + SqoopOptions.getHCatHomeDefault());

    }

  }

可见问题的原因在于:没有sqoop没有找到HCAT_HOME 

于是在sqoop/conf文件夹下执行 cp sqoop-env-template.sh sqoop-env.sh。

然后,修改sqoop-env.sh,

加上

export HCAT_HOME=/usr/local/hadoop/hive/hcatalog

问题就解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  exception
相关文章推荐