【sqoop】简介、原理、安装配置测试、导入导出案例、脚本打包、常见命令及参数介绍、常用命令举例
一、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"
【sqoop】简介、原理、安装配置测试、导入导出案例、脚本打包、常见命令及参数介绍、常用命令举例的更多相关文章
- Linux下mongodb安装及数据导入导出教程
Linux下mongodb安装及数据导入导出教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 一.Linux下mongodb安装的一般步骤 1 ...
- twemproxy 简介、安装配置
twemproxy 简介.安装配置 http://www.xuchanggang.cn/archives/993.html
- Mysql中主从复制的原理、配置过程以及实际案例
Mysql中主从复制的原理.配置过程以及实际案例1.什么是主从复制?原理:主从分离,什么意思呢?我们不妨画个图看看.如图1所示: 2.准备工作:预备两台服务器,我这里使用虚拟机安装了两个Centos6 ...
- 【Maven】安装配置、目录结构、配置文件、常见命令
1.下载配置maven步骤 a.windows下配置jdk的系统环境变量:java_home b.windows下配置maven的系统环境变量:maven_home或者m2_home c.window ...
- [转帖]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件
nginx学习,看这一篇就够了:下载.安装.使用:正向代理.反向代理.负载均衡.常用命令和配置文件 2019-10-09 15:53:47 冯insist 阅读数 7285 文章标签: nginx学习 ...
- sqoop1的安装以及数据导入导出测试
下载 wget http://mirror.bit.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 解压 tar -zxf ...
- Sqoop 简介与安装
一.Sqoop 简介 Sqoop是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从MySQL,Oracle等关系型数据库中导入数据到HDFS.Hive.HBase ...
- 入门大数据---Sqoop简介与安装
一.Sqoop 简介 Sqoop 是一个常用的数据迁移工具,主要用于在不同存储系统之间实现数据的导入与导出: 导入数据:从 MySQL,Oracle 等关系型数据库中导入数据到 HDFS.Hive.H ...
- Sqoop简介及安装
Hadoop业务的大致开发流程以及Sqoop在业务中的地位: Sqoop概念 Sqoop可以理解为[SQL–to–Hadoop],正如名字所示,Sqoop是一个用来将关系型数据库和Hadoop中的数据 ...
- Maven01——简介、安装配置、入门程序、项目构建和依赖管理
1 Maven的简介 1.1 什么是maven 是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 Svn eclipse maven量级 1.2 Maven好处 同 ...
随机推荐
- 第一章:模型层 - 10:不返回QuerySets的API
以下的方法不会返回QuerySets,但是作用非常强大,尤其是粗体显示的方法,需要背下来. 方法名 解释 get() 获取单个对象 create() 创建对象,无需save() get_or_crea ...
- 第1篇----Istio原理篇
Istio是什么 ◎ Istio是一个用于服务治理的开放平台. ◎ Istio是一个Service Mesh形态的用于服务治理的开放平台. ◎ Istio是一个与Kubernetes紧密结合的适用于云 ...
- 数据卷Volume
数据卷概述 Kubernetes Volume(数据卷)主要解决了如下两方面问题: 数据持久性:通常情况下,容器运行起来之后,写入到其文件系统的文件暂时性的.当容器崩溃后,kubelet 将会重启该容 ...
- Beats & FileBeat
Beats是一个开放源代码的数据发送器.我们可以把Beats作为一种代理安装在我们的服务器上,这样就可以比较方便地将数据发送到Elasticsearch或者Logstash中.Elastic Stac ...
- Django 出现 frame because it set X-Frame-Options to deny 错误
一.背景 使用django3 进行开发时,由于项目前端页面使用iframe框架,浏览器错误提示信息如下 Refused to display 'http://127.0.0.1:8000/' in a ...
- 谣言检测(ClaHi-GAT)《Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks》
论文信息 论文标题:Rumor Detection on Twitter with Claim-Guided Hierarchical Graph Attention Networks论文作者:Erx ...
- Upscayl,免费开源的 AI 图像增强软件
有的时候我们找遍了全网却难以找到一张模糊图片的原图,这时候我们想如果能够一键将图片变成高清的就好了.其实这正是计算机视觉的一大研究反向--图形增强,通过AI计算将模糊的图片增强,将几百kb的低像素图片 ...
- Linux-->磁盘分区,挂载
Linux分区 原理介绍 Linux无论有几个分区,分给哪一个目录使用,他归根结底都只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分. Linux采用了一 ...
- Java学生管理系统(详解)
相信大部分人都有接触过这个 Java 小项目--学生管理系统,下面会分享我在做这个项目时的一些方法以及程序代码供大家参考(最后附上完整的项目代码). 首本人只是个初学Java的小白,可能项目中有许多地 ...
- Mysql索引(究极无敌细节版)
参考了: https://www.jianshu.com/p/ace3cd6526c4 推荐up主https://space.bilibili.com/377905911 推荐书籍<mysql是 ...