簡體   English   中英

使用Python進行mongodb_hadoop流傳輸:-inputURI無法識別

[英]mongodb_hadoop streaming with python: -inputURI not recognized

我正在嘗試使用mongodb_hadoop連接器在python中創建MapReduce應用程序。 我有一個安裝了hadoop 2.2.0的集群。 我已經安裝了mongodb_hadoop連接器v1.3.0。 我已經安裝了mongodb並創建了一個名為hadoop_db的測試數據庫,其中包含一個包含整數值的“ integers”集合。

我的目標是嘗試計算每個整數的出現次數。 我的工作基於此演示文稿

但是,當我嘗試執行作業時,得到的是:

bin/hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.2.0.jar \
-mapper pyhadoop/pymongotest/mapper.py \    
-reducer pyhadoop/pymongotest/reducer.py \
-inputURI mongodb://hadoopnode1/hadoop_db.integers \
-outputURI mongodb://hadoopnode1/hadoop_db.reducted_int

ERROR streaming.StreamJob: Unrecognized option: -inputURI

此特定版本的連接器的正確選項是什么?

所以我終於找到了正確的命令。 我將其放在此處,這樣可能會幫助將來遇到相同問題的任何人:

bin/hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-2.2.0.jar \
-libjars $HADOOP_HOME/lib/mongo-hadoop-streaming-1.3.0.jar \
-input /tmp/in \
-output /tmp/out \
-inputformat com.mongodb.hadoop.mapred.MongoInputFormat \
-outputformat com.mongodb.hadoop.mapred.MongoOutputFormat \
-io mongodb \
-jobconf mongo.input.uri=mongodb://127.0.0.1:27017/hadoop_db.integers \
-jobconf mongo.output.uri=mongodb://127.0.0.1:27017/hadoop_db.reducted_int \
-jobconf stream.io.identifier.resolver.class=com.mongodb.hadoop.streaming.io.MongoIdentifierResolver \
-mapper mapper.py \
-reducer reducer.py \ 
-file $HADOOP_HOME/pyhadoop/pymongotest/mapper.py \
-file $HADOOP_HOME/pyhadoop/pymongotest/reducer.py

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM