栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Sqoop介绍

Sqoop介绍

定义

Sqoop是一个ETL工具,能够在HDFS与传统关系型数据直接传输数据。可以使用Sqoop将MySQL或Oracle等RDBMS导入Hadoop分布式文件系统HDFS中,在Hadoop中处理数据,然后将数据导回RDMBS。

sqoop import
$ sqoop help import
用法:sqoop import [GENERIC-ARGS] [TOOL-ARGS]
常用参数:-- 
   connect  指定JDBC 连接字符串
   --connect-manager  指定要使用的连接管理器类
   - -driver  手动指定要使用的 JDBC 驱动程序类
   --hadoop-mapred-home  Override $HADOOP_MAPRED_HOME 
   --help 打印使用说明
   --password-file 设置包含身份验证密码的文件的路径
   -P 从console 
   --password  设置认证密码
   --username  设置认证用户名
   --verbose 在工作时打印更多信息
   --hadoop-home  已弃用。覆盖 $HADOOP_HOME 

[...]

通用 Hadoop 命令行参数:(
必须在任何特定于工具的参数之前)
支持的通用选项是
-conf  指定应用程序配置文件
-D  使用给定的值property 
-fs  指定
名称节点 -jt  指定作业跟踪器
-files <逗号分隔的文件列表> 指定要复制到映射减少集群的逗号分隔文件
-libjars <逗号分隔的 jar 列表>
-archives <逗号分隔的存档列表> 指定要在计算机上取消存档的逗号分隔存档。

一般的命令行语法是
bin/hadoop command [genericOptions] [commandOptions]
导入常用参数
参数描述
–connect 指定 JDBC 连接字符串
–connection-manager 指定要使用的连接管理器类
–driver 手动指定要使用的 JDBC 驱动程序类
–hadoop-mapred-home 覆盖 $HADOOP_MAPRED_HOME
–help打印使用说明
–password-file为包含认证密码的文件设置路径
-P从控制台读取密码
–password 设置认证密码
–username 设置认证用户名
–verbose工作时打印更多信息
–connection-param-file 提供连接参数的可选属性文件
–relaxed-isolation将连接事务隔离设置为映射器未提交的读取。
导入控制参数
参数描述
–append将数据附加到 HDFS 中的现有数据集
–as-avrodatafile将数据导入 Avro 数据文件
–as-sequencefile将数据导入到 SequenceFiles
–as-textfile以纯文本形式导入数据(默认)
–as-parquetfile将数据导入 Parquet 文件
–boundary-query 用于创建拆分的边界查询
–columns 要从表中导入的列
–delete-target-dir删除导入目标目录(如果存在)
–direct如果数据库存在,则使用直接连接器
–fetch-size 一次从数据库读取的条目数。
–inline-lob-limit 设置内联 LOB 的最大大小
-m,–num-mappers 使用n个map任务并行导入,并行度默认为4,执行并行度是需要设置–split-by来指定列,如果不指定默认主键,如果主键和split-by都没有会报错。除非使用-m 1,指定一个任务执行导入操作。
-e,–query 导入结果statement。
–split-by 用于并行度拆分任务的列。不能与–autoreset-to-one-mapper选项一起使用 。
–autoreset-to-one-mapper如果表没有主键且未提供拆分列,则导入应使用一个映射器。不能与–split-by
–table RMDBS中的表名
–target-dir HDFS 目标目录
–warehouse-dir 表目标的 HDFS 父级
–where 导入期间使用的 WHERe 子句
-z,–compress启用压缩
–compression-codec 使用 Hadoop 编解码器(默认 gzip)
–null-string 要为字符串列的空值写入的字符串
–null-non-string 要为非字符串列的空值写入的字符串
选项一起使用 。 导入示例
#! /bin/bash
import_data(){
$sqoop import 
--connect jdbc:oracle:thin:[数据库IP]:[端口号]:[库名] 
--username admin 
--passwarod-file [密码存储路径] 
--target-dir [HDFS存储路径]/$1
--query "$2 and $CONDITIONS" 
--num-mappers 1 
--fields-terminated-by '01' 
--hive-drop-import-delims 
--compress 
--compress-codec lzop 
--null-string '\N' 
--null-non-string '\n'

hadoop jar [lzo压缩jar路径]/hadoop-lzo-0.4.20.jar com.hadoop.compression.lzo.DsitributedLzoIndexer [HDFS存储路径]/$1
}
import_USER(){
 import_data USER "SELECT UID,UNAME FROM USER "
}

case $1 in
"USER")
 	import_USER
 ;;
 "all")
 	import_USER
 ;;
 easc
sqoop export
$ sqoop export (generic-args) (export-args)
$ sqoop-export (generic-args) (export-args)
导出常用参数
参数描述
–connect 指定 JDBC 连接字符串
–connection-manager 指定要使用的连接管理器类
–driver 手动指定要使用的 JDBC 驱动程序类
–hadoop-mapred-home 覆盖 $HADOOP_MAPRED_HOME
–password-file为包含认证密码的文件设置路径
-P从控制台读取密码
–password 设置认证密码
–username 设置认证用户名
–verbose工作时打印更多信息
–connection-param-file 提供连接参数的可选属性文件
–relaxed-isolation将连接事务隔离设置为映射器未提交的读取。
导出控制参数
参数描述
–columns 要导出到表的列,不提供默认为全表的列
–direct使用直接导出快速路径
–export-dir 导出的 HDFS 源路径,路径数据是未压缩的行存储数据,必须参数
-m,–num-mappers 使用n个map任务并行导出,默认采用4个任务进行导出,sqoop作业导出会分解成多个事务,某些作业出错,部分数据会提交成功。
–table 要填充的表,必须参数
–call 调用的存储过程
–update-key 用于更新的锚列。如果有多于一列,请使用逗号分隔的列列表。
–update-mode 指定在数据库中发现具有不匹配键的新行时如何执行更新。mode的值包括 updateonly(默认)和 allowinsert。
–input-null-string 对于字符串列要解释为 null 的字符串,hive采用N表示NULL值
–input-null-non-string 对于非字符串列要解释为 null 的字符串
–staging-table 在将数据插入目标表之前将在其中暂存数据的表。
–clear-staging-table表示可以删除暂存表中存在的任何数据。
–batch 使用批处理模式进行底层语句执行。
导出示例
$sqoop evel 
--connect "jdbc:oracle:thin:@[IP地址]:[端口号]:[数据库名]" 
--username admin 
--password 123456 
-e "truncate table admin.USER"

$sqoop export 
--connect "jdbc:oracle:thin:@[IP地址]:[端口号]:[数据库名]" 
--username admin 
--password 123456 
--table "USER" 
--num-mappers 1 
--export-dir [HDFS对应数据路径] 
--input-fields-terminated-by "01" 
--input-null-string '\N' 
--input-null-non-string '\N'
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/682712.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号