1.本章目的
在本章中,我们将了解什么是Sqoop Job。 Sqoop Job可以在sqoop中创建和处理保存的作业。 介绍使用Sqoop和Sqoop Job增量导入创建作业的方法。
2. Sqoop – Saved Job
通过多次请求相同的命令,可以反复执行sqoop的Import和Export操作。这是使用增量导入 (Incremental Imort)功能时常用的方案。
可以通过Sqoop定义保存作业。 为了在以后执行Sqoop命令,相应的配置信息需要由Sqoop保存的作业来记录。
Sqoop Job 描述在默认情况下,被存储在$ HOME / .sqoop /的私人存储库。 可以将Sqoop配置为使用共享的Metastore。 这样,已保存的作业可以让共享集群中的多个用户使用。
3. Sqoop Job语法
$ sqoop job(generic-args)(job-args)[ - [subtool-name](subtool-args)]
Sqoop Job参数可以按任何顺序相互输入。 Hadoop通用参数必须在任何作业参数之前。
Sqoop Job 参数
4.如何创建Sqoop Job
通过使用-create 选项,可以在sqoop中创建保存的作业。如:
$ sqoop job –create myjob — import –connect jdbc:mysql://example.com/db \ –table mytable
上述命令创建了一个名为myjob的Sqoop Job。 可以以后执行该Job。 该作业在保存的作业列表中,如:
$ sqoop job –list Available jobs: Myjob
5.检查Sqoop Job
通过使用show 选项,可以检查 Sqoop Job的配置:
$ sqoop job –show myjob Job: myjob Tool: import Options: —————————- direct.import = false codegen.input.delimiters.record = 0 hdfs.append.dir = false db.table = mytable
也可以执行Sqoop Job:
$ sqoop job –exec myjob 10/08/19 13:08:45 INFO tool.CodeGenTool: Beginning code generation
另外,exec 选项可以用来覆盖已保存Job的参数。如果需要覆盖原来的参数,可以在 – 之后输入新的参数。如下面例子,如果数据库发生了变化,需要一个用户名,那么可以用下面的方式指定用户名和密码:
$ sqoop job –exec myjob — –username someuser -P Enter password:
6. Saved Job和Password
多个用户可以访问Sqoop Metastore,默认情况下,Sqoop不会在Metastore中存储密码。 如果出于安全目的,需要创建安全的sqoop作业,通过在配置中将sqoop.metastore.client.record.password设置为true,可以轻松地在Metastore中启用密码。
每次执行作业时都会提示输入密码。