sqoop job 工具:
sqoop job工具可以用于创建保存经常使用的命令为一个任务,还可以用于实现定时调用任务,用于sqoop增量导入新数据。
sqoop job 工具:
|
| sqoop job工具可以用于创建保存经常使用的命令为一个任务,还可以用于实现定时调用任务,用于sqoop增量导入新数据。 |
|
| sqoop语法: $ sqoop job (generic-args) (job-args) [-- [subtool-name] (subtool-args)] [ ]里面的是其它sqoop工具 两个()指的是本节介绍的参数和参数内容 |
sqoop job的使用参数:
| Argument | Description |
| --create | Define a new saved job with the specified job-id (name). A second Sqoop command-line, separated by a -- should be specified; this defines the saved job. |
| --delete | Delete a saved job. |
| --exec | Given a job defined with --create, run the saved job. 运行任务时,可以使用--形式的参数覆盖之前创建时设置的参数 |
| --show | Show the parameters for a saved job. |
| --list | List all saved jobs |
创建自动增量导入任务:
自动导入tbltest表格任务:
sqoop job --create dbFood_tbltest -- import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tbltest --hive-import --hive-table tbltest --null-string '\N' --null-non-string '\N' --incremental append --check-column id --last-value 3
指令执行:
sqoop job --exec dbFood_tbltest
删除任务:
sqoop job --delete dbFood_tbltest
查看任务表:
sqoop job --list
设置免密码:
注意默认的情况下是要求输入数据库密码的,可以通过配置conf/sqoop-site.xml 指定sqoop.metastore.client.record.password为true避免
配置为:
sqoop.metastore.client.record.password true If true, allow saved passwords in the metastore.
2.hivesql sqoop部分笔记:
15:38
1.sqoop抽取MySQL表格所有数据到hive表库:
全量抽取数据:
一: sqoop import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tblmovie --hive-import --fields-terminated-by ',' -m 1 二: sqoop import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tbltest --hive-import --hive-table tbltest -m 1
(表后追加方式)
增量sqoop抽取MySQL数据到hive表:
(抽取id 大于0的数据):
sqoop import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tblmovie --hive-import -m 1 --hive-table tblmovie --incremental append --check-column id --last-value 0
(抽取id大于2 的数据):
sqoop import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tbltest --hive-import -m 1 --hive-table tbltest --incremental append --check-column id --last-value 2 (修改后面的id123456就行)
(根据时间增量抽取):
sqoop import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tbltest --hive-import -m 1 --hive-table tbltest --incremental lastmodified --check-column recordetime --last-value "2021-10-31 15:15:15.0"
减量抽取数据:(用where设定条件)
sqoop import --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tbltest --hive-import -m 1 --incremental append --where "age>30" --check-column id --last-value 0
2.删除hive的表(删除hive表部分符合条件数据时,不能使用delete from 表名 的SQL语句):
删除表中数据,保留结构:
truncate table 表名;
删除整个表:
drop table 表名;
删除整个表,不准备恢复时:
drop table 表名 purge;
删除部分数据:
3.hive 逗号分隔符建表:
create table tblmovie( id int , movieadress string, picture string, moviename string, score double, numofevalus int, situation string, information string, ROE double, moviememo string, recodetime date ) ROW FORMAT DELIMITED FIELDS TERMINATED BY','; (无主键外键)
创建一张和MySQL表相同表数据类型的hive表:
sqoop create-hive-table --connect jdbc:mysql://192.168.56.101:3306/dbFood --username root --password root --table tbltest --hive-table tbltest
4.查看表信息:
desc 表名;
desc formatted 表名;(查看更加详细)
5.查看hive库:
show databases;



