2016-11-15 6 views
1

私はhadoopのワードカウント問題を実行しようとしています。これは初めての作業です。私はビデオを使って指示に従い、プログラムを実行する前に多くのことを読んでいます。
しかし、まだhadoopを実行中に例外が発生しました。ここに例外があります:私は得た:Hadoop例外。

[email protected]:~/hadoop/hadoop$ bin/hadoop jar '/home/aims/Desktop/WordCount.jar' wordcount /usr/hadoop/input /usr/hadoop/output 
16/11/15 11:29:03 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 
16/11/15 11:29:03 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 
16/11/15 11:29:06 INFO mapreduce.JobSubmitter: Cleaning up the staging area /tmp/hadoop-yarn/staging/aims/.staging/job_1479184145300_0003 
Exception in thread "main" org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/aims/wordcount 
    at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:287) 
    at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229) 
    at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315) 
    at org.apache.hadoop.mapreduce.JobSubmitter.writeOldSplits(JobSubmitter.java:328) 
    at org.apache.hadoop.mapreduce.JobSubmitter.writeSplits(JobSubmitter.java:320) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:196) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1290) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1287) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:422) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1287) 
    at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:575) 
    at org.apache.hadoop.mapred.JobClient$1.run(JobClient.java:570) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:422) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698) 
    at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:570) 
    at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:561) 
    at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:870) 
    at WordCount.run(WordCount.java:29) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at WordCount.main(WordCount.java:36) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.hadoop.util.RunJar.run(RunJar.java:221) 
    at org.apache.hadoop.util.RunJar.main(RunJar.java:136) 

私はこれを解決する方法を理解していません。私はそれに関連したインターネット上のすべてのリンクを試したが、役に立たなかった。
私は現在のUbuntu 16.04 OSとのHadoop 2.7.3
私のJavaのバージョンを使用していますが次のとおりです。

openjdk version "1.8.0_111" 
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-2ubuntu0.16.04.2-b14) 
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode) 

希望は、この例外のための解決策を聞くために。そこに、そして、

答えて

0

私は答えを得ました。

[email protected]:~/hadoop/hadoop$ bin/hadoop jar '/home/aims/Desktop/WordCount.jar' wordcount /usr/hadoop/input /usr/hadoop/output 

上記の説明は、hadoopでjarを実行するための誤った構文です。私がコマンドで使用したwordcountについて少し疑わしかったので。そして、それだけで例外が起きていました。だから私はそれを削除し、Hadoopのディレクトリを使いました。それは走った。
次は、実行するための適切な方法である:

[email protected]:~/hadoop/hadoop$ bin/hadoop jar '/home/aims/Desktop/WordCount.jar' /myuser/inputdata /myuser/output 

は、だから、働いていたと私は出力フォルダに私の出力を得ました。

1

まあは、ファイルが存在しない... HDFSサイトまたはコア・サイトのXMLの

hdfs://localhost:9000/user/aims/wordcount 

一つは、HDFSパスを設定 、あなたは何も編集していませんでした場合あなたのボックスのルートには/userディレクトリはありません。 /home/aimsディレクトリがあります。

コマンドによると、HDFSパス/usr/hadoop/inputから入力を読み取ろうとしていますが、エラーは/user/aims/wordcountと表示されています。これは、mapreduceコードで指定した入力ディレクトリが間違っていることを意味します。

+0

返信いただきありがとうございます。ええ、私はファイルを変更していません。実際、私はbitnamiのWebサイトで入手できるインストーラを使ってHadoopをインストールしました。インストーラはコマンドを適切に実行するために必要なすべての設定を行うと思っていました。何か解決策があることを私に教えてください。もし私の答えを編集してください。私はあなたから聞いて喜ぶでしょう。 Thankx –

+0

Ambariを使用した場合は、最初のセクションのノードセレクタに "localhost"を入力してはいけません。完全なホスト名を使用します。すべてのポートは、VMなどのネットワークの問題で開いている必要があります。それ以外の場合は、Cloudera quickstart VM、またはHortonworks sandbox –

+0

をダウンロードしてください。いいえ、私はAmbariを使用していません。私はちょうど新しいユーザーで、bitnamiのインストーラーを使ってHadoopをインストールしました。そして私は端末からプログラムを実行しようとしています。これがあなたのお役に立てば幸いです。 –

関連する問題