Một số điều cần lưu ý:
-
Không thể xuất dữ liệu từ MongoDB sang Hadoop bằng Sqoop. Điều này là do Sqoop sử dụng JDBC cung cấp API cấp cuộc gọi cho Cơ sở dữ liệu dựa trên SQL , nhưng MongoDB không phải là cơ sở dữ liệu dựa trên SQL . Bạn có thể xem «Trình kết nối MongoDB dành cho Hadoop» để thực hiện công việc này. Trình kết nối có sẵn trên GitHub . (Chỉnh sửa:như bạn đã chỉ ra trong bản cập nhật của mình.)
-
Xuất khẩu Sqoop không được thực hiện trong một giao dịch theo mặc định. Thay vào đó, theo tài liệu Sqoop :
-
«Trình kết nối MongoDB dành cho Hadoop» dường như không bắt buộc quy trình làm việc bạn mô tả. Theo tài liệu:
-
Thật vậy, theo như tôi hiểu từ «Trình kết nối MongoDB dành cho Hadoop»:ví dụ , có thể chỉ định
org.apache.hadoop.mapred.lib.db.DBOutputFormat
vào công việc Hadoop MapReduce của bạn để ghi đầu ra vào cơ sở dữ liệu MySQL. Theo ví dụ từ kho lưu trữ trình kết nối: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 );