6 ノードの Cloudera ベースの Hadoop クラスターがあり、oozie の sqoop アクションから Oracle データベースに接続しようとしています。
ojdbc6.jar を sqoop lib の場所にコピーしました (私にとっては /opt/cloudera/parcels/CDH-4.2.0-1.cdh4.2.0.p0.10/lib/sqoop/lib/ にあります)。 )すべてのノードで実行し、6 つのノードすべてから単純な「sqoop eval」を実行できることを確認しました。
Oozie の sqoop アクションを使用して同じコマンドを実行すると、「Could not load db driver class: oracle.jdbc.OracleDriver」というメッセージが表示されます。
共有ライブラリの使用に関するこの記事を読みましたが、タスク/アクション/ワークフロー固有の依存関係について話しているとき、それは理にかなっています。しかし、JDBC ドライバーのインストールは sqoop の拡張機能であると考えているため、sqoop インストール ライブラリに属していると思います。
問題は、sqoop は私が lib フォルダーに入れたこの ojdbc6 jar を認識しているのに、どうして私の Oozie ワークフローはそれを認識しないのでしょうか?
これは期待されているものですか、それとも何か不足していますか?
余談ですが、JDBC ドライバー jar の適切な場所はどこだと思いますか?
前もって感謝します!