Учебники

Sqoop — Codegen

В этой главе описывается важность инструмента «codegen». С точки зрения объектно-ориентированного приложения каждая таблица базы данных имеет один класс DAO, который содержит методы ‘getter’ и ‘setter’ для инициализации объектов. Этот инструмент (-codegen) генерирует класс DAO автоматически.

Он генерирует класс DAO в Java на основе структуры схемы таблиц. Определение Java создается как часть процесса импорта. Основное использование этого инструмента — проверка того, потеряла ли Java код Java. Если это так, он создаст новую версию Java с разделителем по умолчанию между полями.

Синтаксис

Ниже приведен синтаксис команды Sqoop codegen.

$ 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 / компиляции / 9a300a1f94899df4a9b10f9935ed9f91 /.