मैं मोंडो डीबी को हडोप से जोड़ने की कोशिश कर रहा हूं। मेरे पास उबंटू 14.04 में हैडोप-1.2.1 स्थापित है। मैंने MongoDB-3.0.4 स्थापित किया और डाउनलोड और जोड़ा mongo-hadoop-hive-1.3.0.jar
, mongo-java-driver-2.13.2.jar
हाइव सत्र में जार। मैंने डाउनलोड किया है mongo-connector.sh
(इसमें पाया गया साइट) और इसे Hadoop_Home / lib के तहत शामिल किया गया।
मैंने इनपुट और आउटपुट स्रोत इस तरह सेट किए हैं:
hive> set MONGO_INPUT=mongodb://[user:password@]<MongoDB Instance IP>:27017/DBname.collectionName;
hive> set MONGO_OUTPUT=mongodb://[user:password@]<MongoDB Instance IP>:27017/DBname.collectionName;
hive> add JAR brickhouse-0.7.0.jar;
hive> create temporary function collect as "brickhouse.udf.collect.CollectUDAF";
MongoDb में मेरा संग्रह यह है:
> db.shows.find()
{ "_id" : ObjectId("559eb22fa7999b1a5f50e4e6"), "title" : "Arrested Development", "airdate" : "November 2, 2003", "network" : "FOX" }
{ "_id" : ObjectId("559eb238a7999b1a5f50e4e7"), "title" : "Stella", "airdate" : "June 28, 2005", "network" : "Comedy Central" }
{ "_id" : ObjectId("559eb23ca7999b1a5f50e4e8"), "title" : "Modern Family", "airdate" : "September 23, 2009", "network" : "ABC" }
>
अब मैं एक हाइव टेबल बनाने की कोशिश कर रहा हूं
CREATE EXTERNAL TABLE mongoTest(title STRING,network STRING)
> STORED BY "com.mongodb.hadoop.hive.MongoStorageHandler"
> WITH SERDEPROPERTIES("mongo.columns.mapping"="{"title":"name",”airdate”:”date”,”network”:”name”}")
> TBLPROPERTIES("mongo.uri"="${hiveconf:MONGO_INPUT}");
जब मैं यह आदेश चलाता हूं, तो यह कहता है
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. com/mongodb/util/JSON
फिर मैंने जोड़ा hive-json-serde.jar
तथा hive-serdes-1.0-SNAPSHOT.jar
जार और फिर टेबल बनाने की कोशिश की। लेकिन त्रुटि वही बना है। मैं इस त्रुटि को कैसे सुधार सकता हूं?
उत्तर:
जवाब के लिए 3 № 1मैंने वास्तव में इन्हें जोड़ा mongo-hadoop-core-1.3.0.jar
, mongo-hadoop-hive-1.3.0.jar
तथा mongo-java-driver-2.13.2.jar
Hadoop_Home / lib फ़ोल्डर में जार। तब मैं बिना किसी त्रुटि के मोंगो डीबी से हाइव तक डेटा प्राप्त करने में सक्षम था।
उत्तर № 2 के लिए 1
स्मार्ट-कोट्स हैं जो पार्सर देख रहे हैं - "
”airdate”:”date”,”network”:”name”
उन्हें होना चाहिए
"airdate":"date","network":"name"