鍍金池/ 教程/ 大數(shù)據(jù)/ Sqoop代碼生成
Sqoop導(dǎo)出
Sqoop導(dǎo)入所有表
Sqoop導(dǎo)入
Sqoop代碼生成
Sqoop安裝
Sqoop Eval工具
Sqoop作業(yè)
Sqoop教程
Sqoop列出所有表
Sqoop列出數(shù)據(jù)庫(kù)

Sqoop代碼生成

本章介紹“代碼生成”工具的重要性。從面向?qū)ο髴?yīng)用程序的觀點(diǎn)來(lái)看,每一個(gè)數(shù)據(jù)庫(kù)表具有包含“setter”和“getter”的方法來(lái)初始化DAO類對(duì)象。此工具(-codegen)自動(dòng)生成DAO類。

它產(chǎn)生的DAO類在Java中是基于表的模式結(jié)構(gòu)。在Java定義實(shí)例作為導(dǎo)入過(guò)程的一部分。這個(gè)工具的主要用途是檢查是否遺漏了Java代碼。如果是這樣,這將創(chuàng)建Java字段之間的缺省定界符的新版本。

語(yǔ)法

以下是Sqoop代碼生成命令的語(yǔ)法。

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

示例

讓我們以USERDB數(shù)據(jù)庫(kù)中的表emp來(lái)生成Java代碼為例。

下面的命令用來(lái)執(zhí)行該給定的例子。

$ sqoop codegen \
--connect jdbc:mysql://localhost/userdb \
--username root \ 
--table emp

如果命令成功執(zhí)行,那么它就會(huì)產(chǎn)生在終端上下面的輸出。

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

驗(yàn)證

讓我們來(lái)看看輸出。路徑是emp表的Java代碼生成并存儲(chǔ)的位置。驗(yàn)證使用下列命令在該位置中的文件。

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

如果想驗(yàn)證深入開(kāi)發(fā),在USERDB數(shù)據(jù)庫(kù)比較表emp和emp.java在以下目錄

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


上一篇:Sqoop導(dǎo)入下一篇:Sqoop作業(yè)