Я пытаюсь получить функцию уменьшения карты с помощью python с помощью mongo-hadoop. Hadoop работает, потоковое потоковое приложение работает с python и работает адаптер mongo-hadoop. Тем не менее, примеры потокового воспроизведения mongo-hadoop с python не работают. При попытке запустить пример в потоковом/примеры/сокровищницу я получаю следующее сообщение об ошибке:Hadoop потоковая передача на python с использованием mongo-hadoop
[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
Если кто-то может пролить некоторый свет это будет большая помощь.
Полная информация:
Насколько я могу сказать, что мне нужно, чтобы получить следующие четыре вещи, чтобы работать:
- Установка и испытание Hadoop
- Установка и тест Hadoop потоковом с питоном
- Установка и испытание mongo-hadoop
- Установка и тестирование потоковой передачи mongo-hadoop с помощью python
Итак, у меня есть все, что работает до четвертого шага. Используя (https://github.com/danielpoe/cloudera) я получил Cloudera 4 установлен
- Использование был установлен рецепт шеф Cloudera 4 и запущен и протестирован
- Используя майкл nolls учебники блога, испытанные Hadoop залитым питона успешно
- Используя документы на mongodb.org, можно было запускать как казначейские, так и ufo-примеры (build cdh4 in build.sbt)
- Скачайте данные на twitter за 1,5 часа, используя readme для примера twitter в потоковой передаче/примерах, а также попробовали казначейский пример.
Решено: Чтобы получить его работу нам нужно установить Cloudera 4. Затем установите адаптер Монго-Hadoop с использованием версии cdh4 Затем создайте Монго-Hadoop-потоковый диск, используя версию cdh3 На данный момент, а не следовать инструкции и установить pymongo-hadoop из репозитория, лучшее решение 'sudo pip install pymongo_hadoop' – Conor