ध्यान देने योग्य कई बातें:
-
Sqoop का उपयोग करके MongoDB से Hadoop में डेटा निर्यात करना संभव नहीं है। ऐसा इसलिए है क्योंकि Sqoop JDBC का उपयोग करता है। जो SQL-आधारित डेटाबेस . के लिए कॉल-स्तरीय API प्रदान करता है , लेकिन MongoDB SQL-आधारित डेटाबेस नहीं है . आप «MongoDB Connector for Hadoop» देख सकते हैं इस काम को करने के लिए। कनेक्टर GitHub पर उपलब्ध है . (संपादित करें:जैसा कि आप अपने अपडेट में इंगित करते हैं।)
-
डिफ़ॉल्ट रूप से एकल लेनदेन में स्कूप निर्यात नहीं किया जाता है। इसके बजाय, Sqoop डॉक्स के अनुसार :
-
«Hadoop के लिए MongoDB कनेक्टर» आपके द्वारा वर्णित वर्कफ़्लो को बाध्य नहीं करता है। डॉक्स के अनुसार:
-
दरअसल, जहां तक मैं «MongoDB Connector for Hadoop» से समझता हूं:उदाहरण , एक
org.apache.hadoop.mapred.lib.db.DBOutputFormat
MySQL डेटाबेस में आउटपुट लिखने के लिए अपने Hadoop MapReduce जॉब में। कनेक्टर रिपॉजिटरी से उदाहरण के बाद:job.setMapperClass( TokenizerMapper.class ); job.setCombinerClass( IntSumReducer.class ); job.setReducerClass( IntSumReducer.class ); job.setOutputKeyClass( Text.class ); job.setOutputValueClass( IntWritable.class ); job.setInputFormatClass( MongoInputFormat.class ); /* Instead of: * job.setOutputFormatClass( MongoOutputFormat.class ); * we use an OutputFormatClass that writes the job results * to a MySQL database. Beware that the following OutputFormat * will only write the *key* to the database, but the principle * remains the same for all output formatters */ job.setOutputFormatClass( DBOutputFormat.class );