0

Eclipse から Hadoop クラスターで mapreduce ジョブを起動しようとしているときに、いくつかの問題に直面しています。「conf」という名前のフォルダーをクラスフォルダーとして追加し、そのフォルダーの下に「core-site.xml」、「hdfs-site.xml」、「mapred-site.xml」、および「hbase-site」をインポートしました.xml". 私の Hadoop クラスターは、Hadoop 0.20.205.0、HBase-0.94.1 を実行しています。「hadoop jar」コマンドを使用して、ジョブをクラスターに正常に送信できます。これは非常に面倒なので、プログラムを実行するだけで Hadoop ジョブをクラスターに送信できるように Eclipse をセットアップしたいと考えています。

必要な依存関係をプロジェクトに追加した後、(Hadoop-0.20.205.0 の) サンプル「PiEstimator.java」を実行すると、次の例外が発生します。

マップの数 = 4 マップあたりのサンプル = 4 スレッド「メイン」での例外create(java.lang.String, org.apache.hadoop.fs.permission.FsPermission, java.lang.String, boolean, boolean, short, long) で java.lang.Class.getMethod(Class.java:1632) でorg.apache.hadoop.ipc.RPC$Server.call(RPC.java:557) at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388) at org.apache.hadoop.ipc .Server$Handler$1.run(Server.java:1384) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop. security.UserGroupInformation.doAs(UserGroupInformation.java:1059) at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

at org.apache.hadoop.ipc.Client.call(Client.java:1066)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
at com.sun.proxy.$Proxy1.create(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at com.sun.proxy.$Proxy1.create(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.<init>(DFSClient.java:3245)
at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:713)
at org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:182)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:555)
at org.apache.hadoop.io.SequenceFile$Writer.<init>(SequenceFile.java:892)
at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:393)
at org.apache.hadoop.io.SequenceFile.createWriter(SequenceFile.java:284)
at com.amazon.seo.mapreduce.examples.PiEstimator.estimate(PiEstimator.java:265)
at com.amazon.seo.mapreduce.examples.PiEstimator.run(PiEstimator.java:325)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at com.amazon.seo.mapreduce.examples.PiEstimator.main(PiEstimator.java:333)

セットアップのどの部分が間違っているのか、それを修正する方法を教えてください。

4

2 に答える 2

0

この問題を解決できましたか? 次のように ClassDefinition で同様のエラーを解決しました: 実行可能な Java ファイルとして Jar を作成する (ファイル >> エクスポート >> 実行可能な Java ファイル) export HADOOP_CLASSPATH =

これにより、hadoop が jar ファイルから正しいクラスを取得できるようになります。

于 2013-11-06T13:31:16.310 に答える
0

残念ながら、Hadoop のバージョンを少なくとも 2.5.0 にアップグレードする必要があると思います。

于 2015-04-24T16:37:31.337 に答える