sqoop 实操

sqoop常用参数

安全环境下操作需要做安全认证

  • 常用命令
命令名称对应类命令说明
importImportTool将关系型数据库数据导入到HDFS、HIVE、HBASE
exportExportTool将HDFS上的数据导出到关系型数据库
codegenCodeGenTool获取数据库中某张表数据生成Java并打成Jar包
create-hive-tableCreateHiveTableTool创建hive的表
evalEvalSqlTool查看SQL的执行结果
list-databasesListDatabasesTool列出所有数据库
list-tablesListTablesTool列出某个数据库下的所有表
helpHelpTool打印sqoop帮助信息
versionVersionTool打印sqoop版本信息
  • 连接参数列表
ArgumentDescription
--connect <jdbc-uri>Specify JDBC connect string 指定JDBC连接字符串
--connection-manager <class-name>Specify connection manager class to use 指定要使用的连接管理器类
--driver <class-name>Manually specify JDBC driver class to use 指定要使用的JDBC驱动类
--hadoop-mapred-home <dir>Override H A D O O P M A P R E D H O M E 指 定 HADOOP_MAPRED_HOME 指定 HADOOPMAPREDHOMEHADOOP_MAPRED_HOME路径
--helpPrint usage instructions 帮助信息
--password-fileSet path for a file containing the authentication password 设置用于存放认证的密码信息文件的路径
-PRead password from console 从控制台读取输入的密码
--password <password>Set authentication password 设置认证密码
--username <username>Set authentication username 设置认证用户名
--verbosePrint more information while working 打印运行信息
--connection-param-file <filename>Optional properties file that provides connection parameters 指定存储数据库连接参数的属性文件
  • 连接MySQL示例
# 查询数据库列表 对标show databases
sqoop list-databases --connect jdbc:mysql://worker-1:3306/ --username root --password Congf1daof4

file

# 查询指定库下面所有表 对标show tables in cm
sqoop list-tables --connect jdbc:mysql://worker-1:3306/cm --username root --password Congf1daof4

file

sqoop应用

  • eval查看sql查询结果
sqoop eval \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--query "select * from HOSTS"

file

  • codegen指定表生成jar
sqoop codegen \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--table HOSTS

file

file

  • create-hive-table创建hive表
sqoop create-hive-table \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--table HOSTS \
--hive-table createbysqoop

file

  • import to hive
# 使用query参数或者-e参数时必须带where $CONDITIONS
# $CONDITIONS意义,为sqoop系统参数,任务执行时用于划分并行度使用,解析时会按照split-by字段进行分段划分,如下的host_id会被分为4份,而从什么位置开始划分则由系统参数$CONDITIONS决定的
# num-mappers意义,MapReduce执行时map并行度
sqoop import \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--target-dir /user/hive/importbysqoop1 \
--delete-target-dir \
--fields-terminated-by "\t" \
--num-mappers 4 \
--split-by host_id \
--query 'select * from HOSTS where $CONDITIONS'

file

# 导入不同格式,支持格式as-avrodatafile、as-binaryfile、as-parquetfile、as-sequencefile、as-textfile(默认格式)
sqoop import \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--target-dir /user/hive/importbysqoop1 \
--delete-target-dir \
--as-sequencefile \
--fields-terminated-by "\t" \
--num-mappers 4 \
--split-by host_id \
--query 'select * from HOSTS where $CONDITIONS'

file

# 导入hive表
sqoop import \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--table HOSTS \
--delete-target-dir \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table HOSTS
# 导入hive表使用parquet格式
sqoop import \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--table HOSTS \
--delete-target-dir \
--as-parquetfile \
--hive-import \
--fields-terminated-by "\t" \
--hive-overwrite \
--hive-table HOSTS

file

file

# hive增量导入
# check-column检查列,以哪一列作为增量检查列
# last-value 从哪里开始向后导入(不包含当前值)
# incremental 增量模式
sqoop import \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--table HOSTS \
--as-parquetfile \
--target-dir /user/hive/warehouse/hosts \
--incremental append \
--check-column host_id \
--last-value 1

file

  • import to hbase
sqoop import \
--connect jdbc:mysql://worker-1:3306/cm \
--username root \
--password Congf1daof4 \
--table HOSTS \
--hbase-create-table \
--hbase-table xiniu:hosts \
--column-family cf1 \
--hbase-row-key HOST_ID

file
海汼部落原创文章,原文链接:http://www.hainiubl.com/topics/75727

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值