2014-01-09 76 views
2

我正在嘗試運行一個簡單的MapReduce進程來寫入HFile以便以後導入到HBase表中。HBase批量加載MapReduce HFile異常(netty jar)

當作業提交:

hbase com.pcoa.Driver /test /bulk pcoa 

我收到以下異常,表明網狀-3.6.6.Final.jar不存在HDFS(它確實存在,但是在這裏)。

-rw-r--r--+ 1 mbeening flprod 1206119 Sep 18 18:25 /dedge1/hadoop/hbase-0.96.1.1-hadoop2/lib/netty-3.6.6.Final.jar 

恐怕我不明白如何解決這個配置(?)錯誤。

任何人都可以向我提供任何建議嗎?

這裏是例外:

Exception in thread "main" java.io.FileNotFoundException: File does not exist:  hdfs://localhost/dedge1/hadoop/hbase-0.96.1.1-hadoop2/lib/netty-3.6.6.Final.jar 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1110) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1102) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1102) 
    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:264) 
    at org.apache.hadoop.mapreduce.JobSubmitter.copyAndConfigureFiles(JobSubmitter.java:300) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:387) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1268) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1265) 
    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:1491) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1265) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1286) 
    at com.pcoa.Driver.main(Driver.java:63) 

這裏是我的驅動程序例程:

public class Driver { 

public static void main(String[] args) throws Exception { 

    Configuration conf = new Configuration(); 
    Job job = new Job(conf, "HBase Bulk Import"); 

    job.setJarByClass(HBaseKVMapper.class); 
    job.setMapperClass(HBaseKVMapper.class); 
    job.setMapOutputKeyClass(ImmutableBytesWritable.class); 
    job.setMapOutputValueClass(KeyValue.class); 

    job.setInputFormatClass(TextInputFormat.class); 

    HTable hTable = new HTable(conf, args[2]); 
    HFileOutputFormat.configureIncrementalLoad(job, hTable); 

    FileInputFormat.addInputPath(job, new Path(args[0])); 
    FileOutputFormat.setOutputPath(job, new Path(args[1])); 

    job.waitForCompletion(true); 
} 
} 
+0

注意:我處於hadoop 2.2.0,hbase 0.96.1.1,zookeeper 3.4.5 – user3042401

+0

是否有任何其他信息可以幫助我解決問題。從根本上說,我不明白爲什麼這個過程在HDFS系統中尋找這個罐子? – user3042401

+0

進程不使用此HFile寫入進程似乎在我的羣集上工作正常 - 但單個記錄插入我的負載不起作用。任何可以提供的幫助真誠地感謝。謝謝! – user3042401

回答

0

我不知道爲什麼/如果我不得不這樣做(沒有看到這樣的事情在任何地方的任何啓動文檔)

但我跑的其中之一:

hdfs dfs -put /hadoop/hbase-0.96.1.1-hadoop2/lib/*.jar /hadoop/hbase-0.96.1.1-hadoop2/lib 

而且....我的MR工作似乎現在運行了

如果這是不正確的路線 - 請讓我知道 謝謝!

相關問題