大数据hive sqoop 部分笔记

在学习途中,欢迎指正和交流 

1.Sqoop job 工具,实现定时任务和任务保存:
    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;

你可能感兴趣的:(大数据,sqoop)