代码之家  ›  专栏  ›  技术社区  ›  Rakesh Kumar

SQOOP导入失败,找不到文件异常

  •  0
  • Rakesh Kumar  · 技术社区  · 9 年前

    我对hadoop架构系统和使用web搜索安装的组件很陌生。为此,我安装了Hadoop、sqoop和hive。以下是我的安装的目录结构(我的本地ubuntu机器和任何vm,我的每个安装都在单独的目录中):-

    • /usr/local/sqoop
    • /usr/local/hive(本地/配置单元)

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

    • 在将我的sqoop转换为hdfs之前,我的安装正确吗?

    16/07/02 13:22:15 ERROR工具。ImportTool:运行导入作业java.io时遇到IOException。FileNotFoundException:文件不存在:hdfs://localhost:54310/usr/local/sqoop/lib/avro-mapred-1.7.5-hadoop2.jar 位于org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(Distributed FileSystem.java:1122) 位于org.apache.hadoop.hdfs.DistributedFileSystem$18.doCall(Distributed FileSystem.java:1114) 位于org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(Distributed FileSystem.java:1114) 位于org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributed CacheManager.java:288) 位于org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributed CacheManager.java:224) 位于org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestamps(ClientDistributed CacheManager.java:93) 位于org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestampsAndCacheVisibilities(ClientDistributed CacheManager.java:57) 位于org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubitter.java:269) 位于org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubitter.java:390) 位于org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubitter.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(UserGroup信息.java:1628) 位于org.apache.hadoop.mapreduce.Job.submit(Job.java:1293) 位于org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJob Base.java:196) 位于org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJob Base.java:169) 位于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.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)

    2 回复  |  直到 9 年前
        1
  •  2
  •   Churchill vins    9 年前

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

        2
  •  0
  •   arjundasm    7 年前
    • 在hdfs中创建与$SQOOP_HOME/lib相同的目录结构。

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

    • 将所有sqloop库文件从$sqoop_HOME/lib复制到hdfs-lib

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