sqoop基本使用

简介:Sqoop是一种用于在Hadoop和关系数据库或大型机之间传输数据的工具。您可以使用Sqoop将数据从关系型数据库管理系统(RDBMS)(如MySQL或Oracle或大型机)导入Hadoop分布式文件系统(HDFS),在Hadoop MapReduce中转换数据,然后将数据导出回RDBMS。

Sqoop自动化了这个过程的大部分,它依赖于数据库来描述要导入的数据的模式。Sqoop使用MapReduce来导入和导出数据,它提供了并行操作和容错功能。

官网:http://sqoop.apache.org/

版本:1.4.7(注:cdh集成版)

基本使用示例:

$ sqoop help
usage: sqoop COMMAND [ARGS]
Available commands:
  codegen            Generate code to interact with database records
  create-hive-table  Import a table definition into Hive
  eval               Evaluate a SQL statement and display the results
  export             Export an HDFS directory to a database table
  help               List available commands
  import             Import a table from a database to HDFS
  import-all-tables  Import tables from a database to HDFS
  import-mainframe   Import mainframe datasets to HDFS
  list-databases     List available databases on a server
  list-tables        List available tables in a database
  version            Display version information
See 'sqoop help COMMAND' for information on a specific command.

1.测试连接

sqoop list-databases --connect jdbc:mysql://hadoop1:3306/ --username root --password admin
结果:列出mysql库信息

2.sqoop import

2.1 先在hive中建表 :
create table default.test_sqoop(id int,name string);
sqoop import --connect jdbc:mysql://hadoop1:3306/test \
--username root \
--password 123456 \
--table test_sqoop \
--hive-import \
--create-hive-table \
-m 1

2.2 直接语句建表(--create-hive-table):
sqoop import --connect jdbc:mysql://hadoop1:3306/test \
--username root \
--password 123456 \
--table test_sqoop \ 
--hive-import  \
--create-hive-table  \
-m 1

2.3 自动创建表(--create-hcatalog-table):
--create-hcatalog-table   #根据hcatalog接口
-D mapred.job.queue.name=transport   #指定固定yarn队列
sudo -u tsqoop   #指定固定队列用户

sudo -u tuser sqoop import -D mapred.job.queue.name=tqueue \
--connect jdbc:mysql://hadoop1:3306/test?useSSL=false \
--username root \
--password 123456 \
--table test_sqoop \
--hcatalog-table test_sqoop \
--hcatalog-database test \
--hcatalog-storage-stanza "stored as orc"  \   #生成对应的orc格式
-m 2

3.sqoop export

sudo -u tuser sqoop export -D mapred.job.queue.name=tqueue \
--connect jdbc:mysql://hadoop1:3306/test?useSSL=false \
--username root \
--password 123456 \
--table test_sqoop \
--columns id,code ... \ #对应的列 顺序格式
--hcatalog-database=test \
--hcatalog-table=test_sqoop \
-m 2

4.更新操作

sqoop export -D mapred.job.queue.name=root.tqueue \
--connect jdbc:mysql://xxx.xxx.xxx:3306/mysql_db \
--username mysql_user \
--password mysql_pwd \
--table mysql_table \
--columns id,company,datetime \
--hcatalog-database=hive_db \
--hcatalog-table=hive_table \
--update-key id \
--update-mode allowinsert

 

注:做个记录 方便查找

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值