Sqoop 常用操作

一些Sqoop的常用操作

Sqoop常用命令

1.预备环境

  • Hadoop
  • Zookeeper
  • MySql
  • Hive
  • HBase

or

  • CDH

2. import

简介

该工具可以将单个关系型数据库的表导入到HDFS上

常用参数

参数名称

功能

--connect <jdbc-uri>

jdbc链接(例:jdbc:mysql://host_name/table_name)

--help

帮助

--password <password>

密码

--username <username>

账号

--direct

import工具将会使用JDBC提供的高性能工具例如MySql中的mysqldump)

--fields-terminated-by <char>

设置导出内容不同列的分隔符(默认 ‘,’)

--delete-target-dir

如果文件已经存在则删除

--target-dir <dir>

指定目录输出

last-value

上次导出的主键(增量导出时使用)

sqoop import --connect jdbc:mysql://nhadoop1/test_user \
--username root \
--password 123456 \
--table user \
--direct \
--num-mappers 1 \
--fields-terminated-by ,\
--delete-target-dir

导入到Hive

参数

功能

--hive-import

指定导入到hive

--hive-database <database-name>

指定导入到数据库

--hive-table <table-name>

指定导入的表

sqoop import --connect jdbc:mysql://nhadoop1/test_user \
--username root \
--password 123456 \
--table user \
--direct \
--num-mappers 1 \
--fields-terminated-by , \
--delete-target-dir
--hive-import \
--hive-database database-name \
--hive-table table-name

原生环境可能存在的坑

  1. java.lang.ClassNotFoundException

Sqoop 的lib中缺少Hive 的jar包,从Hive 中找的缺少的jar包到Sqoop中即可

  1. 缺少配置文件

拷贝hive/conf/hive-site.xml到sqoop/conf下

export

参数

功能`

--export-dir

指定输出目录

-- input-fields-terminated-by <char>

指定文件每行的分隔符

--update-key

使用update进行输出(默认insert),后面接匹配的键(例如 ID)

--columns <col,col,col…>

指定输出的栏目名

# 更新操作
sqoop export --connect jdbc:mysql://nhadoop1/test_user \
--username root \
--password 123456 \
--table jobs_k \
--columns rowkey,salary \
--export-dir /user/hive/warehouse/test.db/hbase_map_p \
--input-fields-terminated-by '\001' \
--update-key rowkey

补充

1. 执行文件中的命令

# 原语句
$ sqoop import --connect jdbc:mysql://localhost/db --username foo --table TEST

# 执行文件中的语句
$ sqoop --options-file /users/homer/work/import.txt --table TEST

# 文件中的内容
import
--connect
jdbc:mysql://localhost/db
--username
foo

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hive基础操作

    俺也想起舞
  • spark RPC原理

    Spark-1.6以后RPC默认使用Netty替代Akka,在Netty上加了一层封装,为实现对Spark的定制开发,所以了解Spark中RPC的原理还是有必要...

    俺也想起舞
  • Hadoop集群配置

    俺也想起舞
  • Human Interface Guidelines ——Tables

    霖酱
  • Django添加feeds功能

    概念:RSS和Atom都是基于XML的格式,你可以用它来提供有关你站点内容的自动更新的feed。了解更多关于RSS的可以访问http://www.whatisr...

    緣來
  • Linux文本流

    我之前已经用文本编辑器修改过文本。现在,我们要深入理解所谓的“文本”。 文本流 在计算机中,所谓的数据就是0或1的二进制序列,但严格来说,Unix以字节(byt...

    Vamei
  • 用SignalR 2.0开发客服系统[系列3:实现点对点通讯]

    前言 交流群:195866844 目录: 用SignalR 2.0开发客服系统[系列1:实现群发通讯] 用SignalR 2.0开发客服系统[系列2:实现聊天室...

    GuZhenYin
  • JAVA CDI 学习(5) - 如何向RESTFul Service中注入EJB实例

    RESTFul Service中如果要注入EJB实例,常规的@Inject将不起作用,在Jboss中,应用甚至都启动不起来(因为@Inject注入失败),解决方...

    菩提树下的杨过
  • 为什么总觉得自己不适合搞IT?

    出处:http://blog.51cto.com/yangrong/2297867

    良月柒
  • 理解区块链和加密货币的终极指南

    如果你对当下大热的区块链和加密货币还不太了解,不要担心,今天我们将解读这些信息!

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券