/ / mongo-hadoopを使用したPythonへのHadoopストリーミング-python、mongodb、hadoop、cloudera

Hadoopをmongo-hadoopを使ってPythonにストリーミングする - python、mongodb、hadoop、cloudera

私はマップリデュース機能を取得しようとしていますmongo-hadoopを使用するpython。 Hadoopは機能し、HadoopストリーミングはPythonで機能し、mongo-hadoopアダプターは機能しています。ただし、pythonを使用したmongo-hadoopストリーミングの例は機能しません。streaming/ examples / treasuryで例を実行しようとすると、次のエラーが表示されます。

$ user @ host: 〜/ git / mongo-hadoop / streaming $ hadoop jar target / mongo-hadoop-streaming-assembly-1.0.1.jar -mapper examples / treasury / mapper.py -reducer examples / treasury / reducer.py -inputformat com.mongodb .hadoop.mapred.MongoInputFormat -outputformat com.mongodb.hadoop.mapred.MongoOutputFormat -inputURI mongodb://127.0.0.1/mongo_hadoop.yield_historical.in -outputURI mongodb://127.0.0.1/mongo_hadoop.yield_historical.streaming.out

13/04/09 11:54:34 INFO streaming.MongoStreamJob: Running

13/04/09 11:54:34 INFO streaming.MongoStreamJob: Init

13/04/09 11:54:34 INFO streaming.MongoStreamJob: Process Args

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Setup Options"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: PreProcess Args

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Parse Options

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "-mapper"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "examples/treasury/mapper.py"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "-reducer"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "examples/treasury/reducer.py"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "-inputformat"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "com.mongodb.hadoop.mapred.MongoInputFormat"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "-outputformat"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "com.mongodb.hadoop.mapred.MongoOutputFormat"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "-inputURI"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "mongodb://127.0.0.1/mongo_hadoop.yield_historical.in"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "-outputURI"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Arg: "mongodb://127.0.0.1/mongo_hadoop.yield_historical.streaming.out"

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Add InputSpecs

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Setup output_

13/04/09 11:54:34 INFO streaming.StreamJobPatch: Post Process Args

13/04/09 11:54:34 INFO streaming.MongoStreamJob: Args processed.

13/04/09 11:54:36 INFO io.MongoIdentifierResolver: Resolving: bson

13/04/09 11:54:36 INFO io.MongoIdentifierResolver: Resolving: bson

13/04/09 11:54:36 INFO io.MongoIdentifierResolver: Resolving: bson

13/04/09 11:54:36 INFO io.MongoIdentifierResolver: Resolving: bson

**Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/mapreduce/filecache/DistributedCache**
at org.apache.hadoop.streaming.StreamJob.setJobConf(StreamJob.java:959)
at com.mongodb.hadoop.streaming.MongoStreamJob.run(MongoStreamJob.java:36)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
at com.mongodb.hadoop.streaming.MongoStreamJob.main(MongoStreamJob.java:63)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.util.RunJar.main(RunJar.java:208)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapreduce.filecache.DistributedCache
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 10 more

誰かが何らかの光を放つことができれば、それは大きな助けになるでしょう。

完全な情報:

私が知る限り、次の4つのことを実行する必要がありました。

  1. hadoopをインストールしてテストする
  2. Pythonでhadoopストリーミングをインストールしてテストする
  3. mongo-hadoopをインストールしてテストする
  4. Pythonでmongo-hadoopストリーミングをインストールしてテストする

つまり、第4ステップまではすべてが機能しているということです。https://github.com/danielpoe/cloudera)cloudera 4をインストールしました

  1. シェフレシピを使用してcloudera 4がインストールされ、稼働中であり、テスト済みです。
  2. Michael Nollsブログチュートリアルを使用して、Pythonでhadoopストリーミングを正常にテストしました
  3. mongodb.orgのドキュメントを使用すると、財務およびufoの両方の例を実行できました(build.sbtのビルドcdh4)
  4. streaming / examplesのtwitterサンプルのreadmeを使用して1.5時間分のtwitterデータをダウンロードし、財務サンプルも試しました。

回答:

回答№1は0

最新のpymongo_hadoopコネクタがインストールされていますか?他のソフトウェアのどのバージョンを実行していますか?