Beberapa hal yang perlu diperhatikan:
-
Mengekspor data dari MongoDB ke Hadoop menggunakan Sqoop tidak dimungkinkan. Ini karena Sqoop menggunakan JDBC yang menyediakan API tingkat panggilan untuk basis data berbasis SQL , tetapi MongoDB bukan database berbasis SQL . Anda dapat melihat «Konektor MongoDB untuk Hadoop» untuk melakukan pekerjaan ini. Konektor tersedia di GitHub . (Sunting:seperti yang Anda tunjukkan dalam pembaruan Anda.)
-
Ekspor Sqoop tidak dilakukan dalam satu transaksi secara default. Sebaliknya, menurut Sqoop docs :
-
«Konektor MongoDB untuk Hadoop» tampaknya tidak memaksa alur kerja yang Anda gambarkan. Menurut dokumen:
-
Memang, sejauh yang saya mengerti dari «Konektor MongoDB untuk Hadoop»:contoh , dimungkinkan untuk menentukan
org.apache.hadoop.mapred.lib.db.DBOutputFormat
ke pekerjaan Hadoop MapReduce Anda untuk menulis output ke database MySQL. Berikut contoh dari repositori konektor: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 );