sqoop哪个命令可以列出mysql_sqoop的经常使用命令

1. 基础命令

列出MySQL中有那些数据库mysql

sqoop list-databases \

--connect jdbc:mysql://hadoop01:3306/ \

--username hadoop \

--password root \

列出MySQL中的数据库有哪些表sql

sqoop list-tables \

--connect jdbc:mysql://hadoop01:3306/mysql \

--username hadoop \

--password root \

在hive中建立一个跟MySQL数据库表中同样的表数据库

create-hive-table

--connect jdbc:mysql://hadoop01:3306/test

--username hadoop

--password root

--table book

--hive-table test_hk

2.sqoop的数据导入

语法:sqoop import (generic-args) (import-args)

经常使用参数app

-connect jdbc 链接地址

--connection-manager 链接管理者

--driver 驱动类

--hadoop-mapred-home $HADOOP_MAPRED_HOME

--help help 信息

-P 从命令行输入密码

-m 指定maptask的个数,指定maptask的并行度

--target-dir 指定导出数据在hdfs上的存储目录

--fields-terminated-by 指定每条记录中字段之间的分隔符

--where 指定查询sql的where条件

--query 指定sql查询

--columns 指定查询的列 (不指定默认导出全部的列)

--password 密码

--username 帐号

--verbose 打印流程信息

--connection-param-file 可选参数

MySQL ---> HDFSide

#不指定分隔符和路径

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \ #指定链接

--username hadoop \ #指定MySQL的用户名

-password root \ #指定MySQL的密码

--table book \ #指定导出的MySQL的表

-m 1 #启动一个maptask

#ps:若是没有指定文件的存储目录,那么默认的会保存在hdfs上的/user/用户/book 目录中,默认的字段的分隔符逗号。

#指定导入路径和分割符

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--table book \

--target-dir /user/hadoop/book \

--fields-terminated-by '\t' \

-m 1

#导入where的结果

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--where "bid>2" \

--table book \

--target-dir /user/hadoop/book1 \

-m 1

ps:where后的条件,用双引号,若是条件的字段为string则里面使用单引号

#导入query结果数据

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--target-dir /user/hadoop/book3 \

--query 'select * from book where 1=1 and $CONDITIONS' \

--split-by bid \ #指定maptask切分的列,列的值.hashcode/maptask的个数

--fields-terminated-by '\t' \

-m 1

ps:

1.query外层使用单引号,SQL 语句当中的条件使用双引号,不然会报错;

2.在使用query时,必须有where子句,而且必须加入 and $CONDITIONS ,不然会报错

3.--query不能和--where、--columns一块儿使用的

4.--query sql语句,放入双引号中须要加转义

MySQL ---> hive

Sqoop导入关系型数据到hive,的过程是先导入hdfs中,而后在load到hive。oop

#普通导入

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--table book \

--hive-import \

-m 1

ps:导入数据到hive表中时,默认在default库下,表名和MySQL导入的表名同样。,默认采用'\u0001'分隔。

#全量集

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--table book \

--fields-terminated-by '\t' \ #列分割符

--lines-terminated-by '\n' \ #行分隔符 ,默认也是\n

--hive-import \

--hive-overwrite \ #覆盖导入

--create-hive-table \ #建立表(默认也会自动建立表)

--hive-table test.book \ #hive的表名

--delete-target-dir #删除中间存放的临时目录

ps:表会自动建立,可是库不会,因此在执行语句前,必定要保证hive的数据库存在,不然会把报错。

#增量导入,增量数据导入仅导入新添加的行

#它须要添加 'incremental' , 'check-column', 和 'last-value' 选项来执行增量导入

sqoop import \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--table book \

--target-dir /user/hadoop/book \

--incremental append \ #指定是增量导入

--check-column bid \ #指定增量的列

--last-value 500 \ #指定上一次的结束的列的值,(是从>500开始)一直到末尾

-m 1

ps:

1.--incremental有两个值,append必须指定增量的列,指定使用--check-column(通常是MySQL的主键);lastmodified,最后一次修改表的时间

2.增量备份若是想要导入hive中,只能指定--target-dir,导入到存放表的目录下,默认的hive不支持增量导入(即不能添加--hive-import)

MySQL ---> hbase命令行

#sqoop import \

--connect jdbc:mysql://hadoop02:3306/mysql \

--username root \

--password root \

--table help_keyword \

--hbase-table new_help_keyword \

--column-family person \

--hbase-row-key help_keyword_id

#字段解释

--connect jdbc:mysql://hadoop04:3306/mysql 表示远程或者本地 Mysql 服务的 URI

--hbase-create-table 表示在 HBase 中创建表。

--hbase-table new_help_keyword 表示在 HBase 中创建表 new_help_keyword。

--hbase-row-key help_keyword_id 表示hbase表的rowkey是mysql表的help_keyword_id

字段。

--column-family person 表示在表 new_help_keyword 中创建列族 person。

--username 'root' 表示使用用户 root 链接 mysql。

--password 'root' 链接 mysql 的用户密码

--table help_keyword 表示导出 mysql 数据库的 help_keyword 表。

3.sqoop的数据导出

语法:sqoop export (generic-args) (export-args)

经常使用参数:线程

--direct 快速导入

--export-dir HDFS 导出数据的目录

-m,--num-mappers 都少个 map 线程

--table 导出哪一个表

--call 存储过程

--update-key 经过哪一个字段来判断更新

--update-mode 插入模式,默认是只更新,能够设置为 allowinsert.

--input-null-string 字符类型 null 处理

--input-null-non-string 非字符类型 null 处理

--staging-table 临时表

--clear-staging-table 清空临时表

--batch 批量模式

HDFS ---> MySQLcode

sqoop export \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--table book \

--export-dir /sqoopdata \

--fields-terminated-by ','

hive----> MySQLhadoop

sqoop export \

--connect jdbc:mysql://hadoop01:3306/test \

--username hadoop \

--password root \

--table book \

--export-dir /user/hive/warehouse/uv/dt=2011-08-03 \

--input-fileds-terminated-by '\t'

hbase---->MySQL

默认的没有命令直接将hbase中的数据导入到MySQL,由于在hbase中的表数据量一般比较大,若是一次性导入到MySQL,可能致使MySQL直接崩溃。

可是能够用别的办法进行导入:

将 Hbase 数据,扁平化成 HDFS 文件,而后再由 sqoop 导入

将 Hbase 数据导入 Hive 表中,而后再导入 mysql

直接使用 Hbase 的 Java API 读取表数据,直接向 mysql 导入,不须要使用 sqoop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sqoop是一个命令工具,可以使用各种命令和选项来执行不同的操作。以下是Sqoop常用的一些命令: 1. import:从关系型数据库导入数据到Hadoop。 ``` sqoop import \ --connect jdbc:mysql://localhost/testdb \ --username root \ --password password \ --table employees \ --target-dir /user/hadoop/employees \ --split-by id ``` 2. export:将Hadoop的数据导出到关系型数据库。 ``` sqoop export \ --connect jdbc:mysql://localhost/testdb \ --username root \ --password password \ --table employees \ --export-dir /user/hadoop/employees \ --input-fields-terminated-by '\t' ``` 3. list-databases:列出数据库的所有数据库。 ``` sqoop list-databases \ --connect jdbc:mysql://localhost/ \ --username root \ --password password ``` 4. list-tables:列出数据库的所有表。 ``` sqoop list-tables \ --connect jdbc:mysql://localhost/testdb \ --username root \ --password password ``` 5. eval:在关系型数据库执行SQL查询。 ``` sqoop eval \ --connect jdbc:mysql://localhost/testdb \ --username root \ --password password \ --query "SELECT * FROM employees WHERE salary > 50000" ``` 6. help:显示Sqoop命令的帮助信息。 ``` sqoop help ``` 这些命令只是Sqoop提供的众多命令的一部分,您还可以使用其他命令和选项来执行不同的操作。Sqoop命令行界面提供了灵活的参数配置和数据转换选项,可以帮助您轻松地将关系型数据库的数据导入到Hadoop,以便进行后续的数据分析和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值