私は現在、JDK1.7 を使用してコンパイルし、Cascading 1.2 (まもなく 2.1 にアップグレード予定) を使用して Hadoop ジョブを作成および実行し、Hadoop の Cloudera ディストリビューション (0.20.2-cdh3u3) を使用するプロジェクトに取り組んでいます。
カスケード/Hadoop ジョブを変更して、MySQL データベースとの間ですべてのデータを読み書きする方法を検討しています。SQOOPはそれを処理できるようです。
ただし、これまで見てきたことから、Java でこれを行う方法に関する情報やドキュメントはほとんどありません (SQOOP は主に、シェル内から呼び出されるバッチ ジョブに使用されることになっていることを理解しています)。私のために働いた。SQOOP 1.4 を使用して、JDK1.6 を使用するようにプロジェクトを切り替えてみましたが、これが必要であると思われます (ただし、プロジェクトの他の部分が壊れます) が、それでも機能しませんでした。
私が達成しようとしていることが可能かどうかは誰にもわかりますか? 他の人々はこの問題にどのように対処していますか? SQOOP2 のリリースは役に立ちますか?
org.apache.sqoop.tool.ExportTool を実行して CSV をテーブルにエクスポートしようとしたときに表示されるエラーの種類は次のとおりです。
(ほとんどの場合) クラス ローダーの問題が原因で、javac プロセッサを初期化できません: java.lang.NoClassDefFoundError: com/sun/tools/javac/processing/JavacProcessingEnvironment
注: \tmp\sqoop-my.name\compile\9031edc8e43167c10f9f895b64aa79d5\MyTableName.java は、非推奨の API を使用またはオーバーライドします。
エクスポート ジョブの実行中に IOException が発生しました: java.io.IOException: jar \tmp\sqoop-my.name\compile\9031edc8e43167c10f9f895b64aa79d5\MyTableName.jar を JVM にロードできませんでした。(クラス MyTableName が見つかりませんでした。)