2013-04-09 33 views
5

Harita-azaltma işlevini mongo-hadoop kullanarak python ile elde etmeye çalışıyorum. Hadoop çalışıyor, hadoop akışı python ile çalışıyor ve mongo-hadoop adaptörü çalışıyor. Bununla birlikte, python ile mongo-hadoop akış örnekleri çalışmaz. Akış/örneklerle/hazine örneğe çalıştırmak çalışırken aşağıdaki hatayı alıyorum: herkes biraz ışık tutabilecekHadoop mongo-hadoop kullanarak python'a akıyor

[email protected]: ~/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 

Eğer bu büyük bir yardım olacaktır.

Tam bilgi: Ben çalışmak için aşağıdaki dört şeyi almak için gereken söyleyebilir kadarıyla

:

  1. yükleyin ve test Hadoop
  2. yükleyin ve test Hadoop piton
  3. ile akış
  4. Yüklemek ve testi mongo-hadoop
  5. Yükleme ve testi mongo-hadoop akışını python ile yükleme

Kısacası, her şey dördüncü aşamaya kadar çalışıyor. Test Hadoop başarıyla piton ile

  • (https://github.com/danielpoe/cloudera) i cloudera 4 şef tarifi cloudera 4 kurulduktan kullanma

    1. yüklü var ve ayakta ve çalışır durumda ve michael blog öğreticiler nolls kullanma
    2. test ettik akışı kullanma Mongodb.org adresindeki dokümanları kullanarak hem hazine hem de ufo örneklerini çalıştırabildi (build.sbt içinde cdh4 oluştur)
    3. Akış/örneklerdeki twitter örneğini kullanarak readme'ı kullanarak 1.5 saat değerinde twitter veri indirdim ve hazine örneği.
  • +0

    çözüldü talimatları ve depodan pymongo-hadoop yükleyin, en iyi çözüm 'sudo pip install pymongo_hadoop' – Conor

    cevap

    0

    En son pymongo_hadoop konektörü yüklü mü? Diğer yazılımın hangi sürümlerini kullanıyorsunuz? biz 4. Sonra Sonra, bu noktada versiyon cdh3 kullanarak Mongo-Hadoop-akışı sürücü oluşturmak versiyon cdh4 kullanarak Mongo-Hadoop adaptörü yüklemek cloudera yüklemek yerine takip etmek gerekli çalışma almak için:

    +0

    Hi Ross, cevabınız için teşekkürler. Sorun olan pymongo_hadoop konektörü idi. Bize ipuçlarını vermeden önce biraz çözdük. – Conor