一、sqoop简介

用于在Hadoop(Hive)与传统的数据库(mysql、oracle...)之间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

二、sqoop原理

将导入或导出命令翻译成mapreduce程序来实现。
在翻译出的mapreduce中主要是对inputformat和outputformat进行定制

三、sqoop安装

前提:java和Hadoop

1、下载解压

tar -zxf

2、修改配置文件sqoop-env.sh

配置zk、Hadoop、hive、hbase等目录

3、拷贝JDBC驱动到sqoop的lib目录

4、验证Sqoop

bin/sqoop help

5、测试Sqoop是否能够成功连接数据库

bin/sqoop list-databases --connect jdbc:mysql://hadoop102:3306/ --username root --password 123456

四、sqoop的简单使用案例

1、导入数据bin/sqoop import

全部导入

导入指定列 --columns

导入指定行 --where

查询导入:--query "select * from staff where \$CONDITIONS and id <= 25"

RDBMS到Hive:--hive-import

RDBMS到Hbase:--hbase-create-table

2、导出数据

HIVE/HDFS到RDBMS:--export-dir /company

Mysql中如果表不存在,不会自动创建

3、脚本打包

使用opt格式的文件打包sqoop命令

touch opt/job_mysql2hdfs.opt

vim opt/job_mysql2hdfs.opt

import
--connect
jdbc:mysql://hadoop102:3306/company
--username
root
--password
123456
--table
staff
--target-dir
/company3
--delete-target-dir
--num-mappers
1
--fields-terminated-by
"\t"
--split-by
id

五、sqoop的一些命令和参数

1、常用命

序号

命令

说明

1

import

ImportTool

将数据导入到集群

2

export

ExportTool

将集群数据导出

3

codegen

CodeGenTool

获取数据库中某张表数据生成Java并打包Jar

4

create-hive-table

CreateHiveTableTool

创建Hive表

5

eval

EvalSqlTool

查看SQL执行结果

6

import-all-tables

ImportAllTablesTool

导入某个数据库下所有表到HDFS中

7

job

JobTool

用来生成一个sqoop的任务,生成后,该任务并不执行,除非使用命令执行该任务。

8

list-databases

ListDatabasesTool

列出所有数据库名

9

list-tables

ListTablesTool

列出某个数据库下所有表

10

merge

MergeTool

将HDFS中不同目录下面的数据合在一起,并存放在指定的目录中

11

metastore

MetastoreTool

记录sqoop job的元数据信息,如果不启动metastore实例,则默认的元数据存储目录为:~/.sqoop,如果要更改存储目录,可以在配置文件sqoop-site.xml中进行更改。

12

help

HelpTool

打印sqoop帮助信息

13

version

VersionTool

打印sqoop版本信息

2、命令&参数详解

3、例子

导入数据到hive

$ bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 123456 \
--table staff \
--hive-import

导出到关系型数据库

$ bin/sqoop export \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 123456 \
--table staff \
--export-dir /user/company \
--input-fields-terminated-by "\t" \
--num-mappers 1

将数据库表映射为java类

$ bin/sqoop codegen \
--connect jdbc:mysql://hadoop102:3306/company \
--username root \
--password 123456 \
--table staff \
--bindir /home/admin/Desktop/staff \
--class-name Staff \
--fields-terminated-by "\t"

最新文章

  1. javascript中的对象
  2. 5.首次登陆与在线求助man page
  3. delphi中线程应用之Synchronize
  4. 【bzoj1086】 scoi2005—王室联邦
  5. C#字符补位
  6. Java笔记——JavaMail发送邮件
  7. 一、导入、导出远程Oracle数据库
  8. C语言宏定义函数中的“_##”的意思
  9. Ext4.1 Grid 分页查询
  10. hdu 4540 威威猫系列故事——打地鼠 dp小水题
  11. 计算方法(一)用C#实现数值迭代
  12. C++&lt;algorithm&gt;中sort的比较函数写法(转)
  13. Java 动态代理(转)
  14. WEB 端批量移动设备管理控制工具 STF 的环境搭建和运行
  15. 转:C#生成唯一值的方法汇总
  16. Mixin Network Whitepaper
  17. CentOS7配置gradle,或配置maven
  18. getRequestURI getRequestURL 区别
  19. 分布式缓存系统 Memcached 整体架构
  20. No.02——第一次使用Android Studio,并创建出Hello World

热门文章

  1. Grafana Loki 学习之踩坑记
  2. 文件管理工具“三剑客” #Everything #SpaceSniffer #Clover
  3. POJ2686 Traveling by Stagecoach (状压DP)
  4. ASP.NET Core :容器注入(二):生命周期作用域与对象释放
  5. python 运行错误收集
  6. lombok下载和安装
  7. java集合框架复习----(1)
  8. 齐博x1更新了 提供一个部分用户期待已久的功能,修改主题后变为待审
  9. 手把手教你从安装CentOS7.4镜像开始,搭建IoT视频监控系统
  10. UBOOT编译--- make xxx_deconfig过程详解(一)