Sqoop - Codegen

Bu bölüm, 'codegen' aracının önemini açıklamaktadır. Nesne yönelimli uygulamanın bakış açısından, her veritabanı tablosunun nesneleri başlatmak için 'alıcı' ve 'ayarlayıcı' yöntemlerini içeren bir DAO sınıfı vardır. Bu araç (-codegen) DAO sınıfını otomatik olarak oluşturur.

Tablo Şeması yapısına göre Java'da DAO sınıfı oluşturur. Java tanımı, içe aktarma işleminin bir parçası olarak somutlaştırılır. Bu aracın ana kullanımı, Java'nın Java kodunu kaybedip kaybetmediğini kontrol etmektir. Öyleyse, alanlar arasında varsayılan sınırlayıcı ile yeni bir Java sürümü oluşturacaktır.

Sözdizimi

Sqoop codegen komutunun sözdizimi aşağıdadır.

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

Misal

Şunun için Java kodu üreten bir örnek alalım. emp tablo userdb veri tabanı.

Aşağıdaki komut, verilen örneği yürütmek için kullanılır.

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

Komut başarıyla yürütülürse, terminalde aşağıdaki çıktıyı üretecektir.

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

Doğrulama

Çıktıya bir göz atalım. Kalın yazılan yol, Java kodunun bulunduğu konumdur.emptablo oluşturur ve depolar. Aşağıdaki komutları kullanarak o konumdaki dosyaları doğrulayalım.

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

Derinlemesine doğrulamak istiyorsanız, karşılaştırın emp tablo userdb veritabanı ve emp.java aşağıdaki dizinde

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