Sqoop-codegen
提供:Dev Guides
Sqoop-コード生成
この章では、「codegen」ツールの重要性について説明します。 オブジェクト指向アプリケーションの観点から、すべてのデータベーステーブルには、オブジェクトを初期化する「getter」および「setter」メソッドを含む1つのDAOクラスがあります。 このツール(-codegen)は、DAOクラスを自動的に生成します。
テーブルスキーマ構造に基づいて、JavaでDAOクラスを生成します。 Java定義は、インポートプロセスの一部としてインスタンス化されます。 このツールの主な使用法は、JavaがJavaコードを失ったかどうかを確認することです。 その場合、フィールド間のデフォルトの区切り文字を使用して新しいバージョンのJavaが作成されます。
構文
以下は、Sqoop codegenコマンドの構文です。
$ sqoop codegen (generic-args) (codegen-args)
$ sqoop-codegen (generic-args) (codegen-args)
例
*userdb* データベースの *emp* テーブルのJavaコードを生成する例を見てみましょう。
次のコマンドを使用して、指定された例を実行します。
$ sqoop codegen \
--connect jdbc:mysql://localhost/userdb \
--username root \
--table emp
コマンドが正常に実行されると、端末に次の出力が生成されます。
14/12/23 02:34:40 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5
14/12/23 02:34:41 INFO tool.CodeGenTool: Beginning code generation
……………….
14/12/23 02:34:42 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is/usr/local/hadoop
Note:/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.java uses or
overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
14/12/23 02:34:47 INFO orm.CompilationManager: Writing jar file:
/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.jar
検証
出力を見てみましょう。 太字のパスは、 emp テーブルのJavaコードが生成および保存する場所です。 次のコマンドを使用して、その場所のファイルを確認します。
$ cd/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/
$ ls
emp.class
emp.jar
emp.java
詳細に検証する場合は、 userdb データベースの emp テーブルと次のディレクトリの emp.java を比較します
/tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/。