2014-09-23 105 views
1

我是Hadoop中的一个开始,试图从我的本地数据库mysql中导入一个表格到使用sqoop 1.4的hadoop 2.4.1的hdfs。 5。使用sqoop(1.4.5)将mysql数据导入到hdfs(hadoop 2.4.1)

mysql version : 5.5.38 
hdfs version :hadoop 2.4.1 
sqoop version :1.4.5 

我尝试sqoop名单的数据库,它给出正确的答案 但随后在给予以下CMD:

sqoop import --connect jdbc:mysql://localhost:3306/information_schema --username root --password root --table VIEWs -m 1 

,我也得到:

ERROR tool.ImportTool: Encountered IOException running import job: java.io.FileNotFoundException: File does not exist: hdfs://localhost:54310/usr/lib/sqoop/lib/jackson-mapper-asl-1.9.13.jar 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1128) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1120) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1120) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:288) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.getFileStatus(ClientDistributedCacheManager.java:224) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestamps(ClientDistributedCacheManager.java:93) 
    at org.apache.hadoop.mapreduce.filecache.ClientDistributedCacheManager.determineTimestampsAndCacheVisibilities(ClientDistributedCacheManager.java:57) 
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:265) 
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:301) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:389) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303) 
    at org.apache.sqoop.mapreduce.ImportJobBase.doSubmitJob(ImportJobBase.java:186) 
    at org.apache.sqoop.mapreduce.ImportJobBase.runJob(ImportJobBase.java:159) 
    at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:247) 
    at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:665) 
    at org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118) 
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:497) 
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:601) 
    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) 
+0

你需要的所有相应的LIB文件添加到错误 – 2014-09-23 13:59:11

+0

u能memtion所示的路径对应的lib file.as我已经将mysql驱动添加到lib文件夹,并且jackson-mapper-asl-1.9.13.jar已经在位置 – 2014-09-24 04:57:13

+0

尝试将所有hadoop jar,sqoop jar和hive jar添加到hdfs path。同时检查版本兼容性 – 2014-09-24 05:12:19

回答

2

您的mapred-site.xml文件配置错误。检查文件内容,应该看起来像下面所示的内容:

<configuration> 
<property> 
<name>mapreduce.framework.name</name> 
<value>yarn</value> 
</property> 
</configuration> 

一般mapred-site.xml文件的内容是由相同的核心内容的site.xml。应该看起来如下图所示睿site.xml文件内容:

<configuration> 
<property> 
<name>fs.default.name</name> 
<value>hdfs://master:54310</value> 
</property> 
</configuration> 

塔伊丰YALCINKAYA

0

添加MySQL驱动程序jar和任何丢失的jar到sqoop安装的lib文件夹中都可以使用mysql。

+0

我已经将mysql驱动程序添加到lib文件夹,并且jackson-mapper-asl-1.9.13.jar已经在位置 – 2014-09-24 04:54:11

+0

请确保这些jar文件夹在classpath中。并且您在哪里执行命令..它奇怪的是它正在寻找hdfs上的jackson-mapper文件。 – mohanaki 2014-09-25 03:43:10

0

请删除HDFS中的临时文件(如果/ user/hduser/***等错误已存在)。当地

  1. 副本sqoop到HDFS:

Hadoop的FS -mkdir -p/usr/lib目录/ sqoop/

Hadoop的FS -copyFromLocal/usr/lib目录/ sqoop/*的.jar/usr/lib中/ sqoop/LIB/

  • 拷贝罐/从TMP类HDFS
  • CP/TMP/sqoop-hduser /编译/ */usr/lib中/ sqoop/bin中/

    hadoop的FS -put/TMP/sqoop-hduser /编译/ * /用户/ hduser/