Sqoop-Codegen

この章では、「codegen」ツールの重要性について説明します。オブジェクト指向アプリケーションの観点からは、すべてのデータベーステーブルには、オブジェクトを初期化するための「getter」メソッドと「setter」メソッドを含む1つのDAOクラスがあります。このツール(-codegen)は、DAOクラスを自動的に生成します。

テーブルスキーマ構造に基づいて、JavaでDAOクラスを生成します。Java定義は、インポートプロセスの一部としてインスタンス化されます。このツールの主な用途は、JavaがJavaコードを失ったかどうかを確認することです。その場合、フィールド間にデフォルトの区切り文字を使用して新しいバージョンのJavaを作成します。

構文

以下は、Sqoopcodegenコマンドの構文です。

$ sqoop codegen (generic-args) (codegen-args) 
$ sqoop-codegen (generic-args) (codegen-args)

のJavaコードを生成する例を見てみましょう。 emp のテーブル userdb データベース。

次のコマンドを使用して、指定された例を実行します。

$ 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

検証

出力を見てみましょう。太字のパスは、のJavaコードが存在する場所です。empテーブルが生成して保存します。次のコマンドを使用して、その場所にあるファイルを確認しましょう。

$ cd /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/
$ ls
emp.class
emp.jar
emp.java

詳細を確認したい場合は、 emp のテーブル userdb データベースと emp.java 次のディレクトリにあります

/ tmp / sqoop-hadoop / compile / 9a300a1f94899df4a9b10f9935ed9f91 /。