sqoop 基本使用
sqoop的主要功能是导入和导出
- 导入
- 读数据(row-by-row)
- 并行化执行
- 导入的结果可以是文本文件或者二进制序列化文件
- 导出
- 并行化读取HDFS文件
基本操作
sqoop实质上是一个工具箱,使用的时候需要指定哪个工具和控制工具的参数。
- 通过sqoop help,来查看sqoop支持哪些命令
$ sqoop help
Available commands:
codegen Generate code to interact with database records # 生成能够和数据库进行交互的代码
create-hive-table Import a table definition into Hive # 将生成的Hive表导入Hive中
eval Evaluate a SQL statement and display the results # 评估SQL语句,并且显示结果
export Export an HDFS directory to a database table # 将HDFS目录导出到数据库表中
help List available commands # 列出可用的命令
import Import a table from a database to HDFS # 将一个表从数据库--->HDFS中
import-all-tables Import tables from a database to HDFS # 将全部的表从数据表--->HDFS中
import-mainframe Import datasets from a mainframe server to HDFS # 从服务器中将数据库导入到HDFS
job Work with saved jobs # 工作与保存的任务
list-databases List available databases on a server # 列出可用的数据库
list-tables List available tables in a database # 列出数据库中的可用表
merge Merge results of incremental imports # 合并增量导入的数据
metastore Run a standalone Sqoop metastore # 运行一个独立的Sqoop元数据
version Display version information # 显示版本信息
- 查看某个命令的具体使用
查看import
如何使用
(base) peter:sqoop-1.4.7 piqianchao$ sqoop help import
Common arguments:
--connect <jdbc-uri> Specify JDBC connect
string
--connection-manager <class-name> Specify connection manager
class name
--connection-param-file <properties-file> Specify connection
parameters file
--driver <class-name> Manually specify JDBC
driver class to use
--hadoop-home <hdir> Override
$HADOOP_MAPRED_HOME_ARG
--hadoop-mapred-home <dir> Override
$HADOOP_MAPRED_HOME_ARG
--help Print usage instructions
-P Read password from console
--password <password> Set authentication
password
--password-alias <password-alias> Credential provider
password alias
--password-file <password-file> Set authentication
password file path
--relaxed-isolation Use read-uncommitted
isolation for imports
--skip-dist-cache Skip copying jars to
distributed cache
--username <username> Set authentication
username
--verbose Print more information
while working
使用demo
- 直接使用参数传递
- 使用文件方式进行参数的传递:文件中允许空行和注释部分
# 1. 直接使用
sqoop import
--connect jdbc:mysql://localhost/db
--username foo
--table TEST
代码语言:javascript复制# 2. 将参数写入文件中
sqoop --options-file /users/home/work/import.txt --table TEST
# 每行一个参数
# /users/home/work/import.txt
import
--connect
jdbc:mysql://localhost/db
--username
foo