【问题标题】:SQOOP Import Fails, File Not Found ExceptionSQOOP 导入失败,找不到文件异常
【发布时间】:2016-11-04 14:33:09
【问题描述】:

我是 hadoop 架构系统的新手,并且使用网络搜索安装了组件。为此,我安装了 Hadoop、sqoop、hive。这是我安装的目录结构(我的本地 ubuntu 机器和任何 vm,我的每个安装都在单独的目录中):-

  • /usr/local/hadoop
  • /usr/local/sqoop
  • /usr/local/hive

通过查看错误,我尝试解决它,因此我将 sqoop(本地计算机 /usr/local/sqoop)文件夹复制到 hdfs 目录(hdfs://localhost:54310/usr/local/sqoop)。这解决了我的问题。我想从这里知道一些事情:-

  • 在将我的 sqoop 处理为 hdfs 之前,我的安装是否正确?
  • 是否需要将sqoop目录从ext文件系统复制到hdfs文件系统。

16/07/02 13:22:15 错误 tool.ImportTool:遇到 IOException 运行导入作业:java.io.FileNotFoundException:文件不存在:hdfs://localhost:54310/usr/local/sqoop/lib /avro-mapred-1.7.5-hadoop2.jar 在 org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1122) 在 org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(DistributedFileSystem.java:1114) 在 org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 在 org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1114) 在 org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:288) 在 org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:224) 在 org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestamps(ClientDistributedCacheManager.java:93) 在 org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestampsAndCacheVisibilities(ClientDistributedCacheManager.java:57) 在 org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:269) 在 org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:390) 在 org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:483) 在 org.apache.hadoop.mapreduce.Job$10.run(Job.java:1296) 在 org.apache.hadoop.mapreduce.Job$10.run(Job.java:1293) 在 java.security.AccessController.doPrivileged(本机方法) 在 javax.security.auth.Subject.doAs(Subject.java:415) 在 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) 在 org.apache.hadoop.mapreduce.Job.submit(Job.java:1293) 在 org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1314) 在 org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:196) 在 org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJobBase.java:169) 在 org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:266) 在 org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:673) 在 org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118) 在 org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:497) 在 org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605) 在 org.apache.sqoop.Sqoop.run(Sqoop.java:143) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:218) 在 org.apache.sqoop.Sqoop.runTool(Sqoop.java:227) 在 org.apache.sqoop.Sqoop.main(Sqoop.java:236)

【问题讨论】:

    标签: hadoop sqoop


    【解决方案1】:

    安装没问题,不需要复制sqoop目录下的所有文件,只需将sqoop库文件复制到hdfs即可。

    【讨论】:

      【解决方案2】:
      • 在hdfs中创建一个与$SQOOP_HOME/lib相同的目录结构

        例如:hdfs dfs -mkdir -p /usr/lib/sqoop

      • 将所有 sqoop 库文件从 $SQOOP_HOME/lib 复制到 hdfs lib

        例如:hdfs dfs -put /usr/lib/sqoop/lib/* /usr/lib/sqoop/lib

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-22
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 2020-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多