sqoop的安装和使用(代码片段)

dll102 dll102     2023-04-30     439

关键词:

一、概述

sqoop 是 apache 旗下一款“Hadoop 和关系数据库服务器之间传送数据”的工具。

核心的功能有两个:

导入、迁入

导出、迁出

导入数据:MySQL,Oracle 导入数据到 Hadoop 的 HDFS、HIVE、HBASE 等数据存储系统

导出数据:从 Hadoop 的文件系统中导出数据到关系数据库 mysql 等 Sqoop 的本质还是一个命令行工具,和 HDFS,Hive 相比,并没有什么高深的理论。

sqoop:

工具:本质就是迁移数据, 迁移的方式:就是把sqoop的迁移命令转换成MR程序

hive

工具,本质就是执行计算,依赖于HDFS存储数据,把SQL转换成MR程序

二、工作机制

将导入或导出命令翻译成 MapReduce 程序来实现 在翻译出的 MapReduce 中主要是对 InputFormat 和 OutputFormat 进行定制

三、安装

1、前提概述

将来sqoop在使用的时候有可能会跟那些系统或者组件打交道?

HDFS, MapReduce, YARN, ZooKeeper, Hive, HBase, MySQL

下载地址http://mirrors.hust.edu.cn/apache/sqoop

(1)上传解压缩安装包到指定目录

[hadoop@hadoop3 ~]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C apps/

(2)进入到 conf 文件夹,找到 sqoop-env-template.sh,修改其名称为 sqoop-env.sh cd conf

技术图片
[hadoop@hadoop3 ~]$ cd apps/
[hadoop@hadoop3 apps]$ ls
apache-hive-2.3.3-bin  hadoop-2.7.5  hbase-1.2.6  sqoop-1.4.6.bin__hadoop-2.0.4-alpha  zookeeper-3.4.10
[hadoop@hadoop3 apps]$ mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6
[hadoop@hadoop3 apps]$ cd sqoop-1.4.6/conf/
[hadoop@hadoop3 conf]$ ls
oraoop-site-template.xml  sqoop-env-template.sh    sqoop-site.xml
sqoop-env-template.cmd    sqoop-site-template.xml
[hadoop@hadoop3 conf]$ mv sqoop-env-template.sh sqoop-env.sh

(3)修改 sqoop-env.sh

[hadoop@hadoop3 conf]$ vi sqoop-env.sh

(4)加入 mysql 驱动包到 sqoop1.4.6/lib 目录下

[hadoop@hadoop3 ~]$ cp mysql-connector-java-5.1.40-bin.jar apps/sqoop-1.4.6/lib/

5)配置系统环境变量

[hadoop@hadoop3 ~]$ vi .bashrc 
#Sqoop
export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6
export PATH=$PATH:$SQOOP_HOME/bin
[hadoop@hadoop3 ~]$ source .bashrc 

(6)验证安装是否成功

 sqoop version

(7)mysql连接权限配置修改

当前mysql只允许localhost连接。

需要在localhost的那台机器上登入mysql后,将 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改为"%"

mysql>use mysql;

mysql>update user set host = ‘%‘ where user = ‘root‘;

mysql>select host, user from user;

mysql>flush privileges;

四、Sqoop的基本命令

基本操作

列出MySQL数据有哪些数据库

[hadoop@hadoop3 ~]$ sqoop list-databases 
> --connect jdbc:mysql://hadoop1:3306/ 
> --username root 
> --password root

列出MySQL中的某个数据库有哪些数据表:


[hadoop@hadoop3 ~]$ sqoop list-tables
--connect jdbc:mysql://hadoop1:3306/mysql
--username root
--password root

根据MYSQL表创建HIVE前需先配置以下环境变量

技术图片

sqoop create-hive-table --connect jdbc:mysql://hadoop1:3306/mysql --username root --password root --table help_keyword --hive-table hk

五、Sqoop的数据导入

“导入工具”导入单个表从 RDBMS 到 HDFS。表中的每一行被视为 HDFS 的记录。所有记录 都存储为文本文件的文本数据(或者 Avro、sequence 文件等二进制数据) 

RDBMS的表必须有主键才可以导入,否则会报错

1、从RDBMS导入到HDFS中

语法格式

sqoop import (generic-args) (import-args)
 

 技术图片

 使用sqoop从mysql导入数据到hive常见坑 及其解决方法

导入: 指定分隔符和导入路径

 

技术图片
sqoop import   --connect jdbc:mysql://hadoop1:3306/mysql   --username root  --password root   --table help_keyword   --target-dir /user/hadoop11/my_help_keyword1  --fields-terminated-by ‘	‘  -m 2
技术图片

 

导入数据:带where条件

技术图片
sqoop import   --connect jdbc:mysql://hadoop1:3306/mysql   --username root  --password root   --where "name=‘STRING‘ " --table help_keyword   --target-dir /sqoop/hadoop11/myoutport1  -m 1
技术图片

 

查询指定列

技术图片
sqoop import   --connect jdbc:mysql://hadoop1:3306/mysql   --username root  --password root   --columns "name" --where "name=‘STRING‘ " --table help_keyword  --target-dir /sqoop/hadoop11/myoutport22  -m 1
selct name from help_keyword where name = "string"
技术图片

 

导入:指定自定义查询SQL

技术图片
sqoop import   --connect jdbc:mysql://hadoop1:3306/  --username root  --password root   --target-dir /user/hadoop/myimport33_1  --query ‘select help_keyword_id,name from mysql.help_keyword where $CONDITIONS and name = "STRING"‘ --split-by  help_keyword_id --fields-terminated-by ‘	‘  -m 4
技术图片

 

在以上需要按照自定义SQL语句导出数据到HDFS的情况下:
1、引号问题,要么外层使用单引号,内层使用双引号,$CONDITIONS的$符号不用转义, 要么外层使用双引号,那么内层使用单引号,然后$CONDITIONS的$符号需要转义
2、自定义的SQL语句中必须带有WHERE $CONDITIONS

指定行分隔符和列分隔符,指定hive-import,指定覆盖导入,指定自动创建hive表,指定表名,指定删除中间结果数据目录

技术图片
sqoop import  --connect jdbc:mysql://hadoop1:3306/mysql  --username root  --password root  --table help_keyword  --fields-terminated-by "	"  --lines-terminated-by "
"  --hive-import  --hive-overwrite  --create-hive-table  --delete-target-dir --hive-database  mydb_test --hive-table new_help_keyword
技术图片

增量导入

执行增量导入之前,先清空hive数据库中的help_keyword表中的数据

truncate table help_keyword;
技术图片
sqoop import   --connect jdbc:mysql://hadoop1:3306/mysql   --username root  --password root   --table help_keyword  --target-dir /user/hadoop/myimport_add  --incremental  append  --check-column  help_keyword_id --last-value 500  -m 1
技术图片















































 

四十centos安装sqoop(使用sqoop完成mysql和hdfs之间的数据互导)(代码片段)

环境准备:centos7centos可以上网hadoop,Hbase,Hive,Zookeeper正常运行环境搭建:版本:sqoop1.4.7-hadoop2.6.0一、Sqoop安装    1、直接在虚拟机浏览器下载sqoop1.4.7https://archive.apache.org/dist/sqoop/1 查看详情

大数据之非常详细sqoop安装和基本操作(代码片段)

大数据大数据之非常详细Sqoop安装和基本操作目录大数据Sqoop1、上传解压2、配置环境变量配置sqoop环境变量配置sqoop-env.sh3、加入mysql的jdbc驱动包4、验证验证是否安装成功验证启动5、导入mysql表数据到HDFS6、导出HDFS数据到mysql总结... 查看详情

sqoop的安装和验证(代码片段)

... Kafka是一个开源的分布式消息订阅系统  一、Sqoop的安装  1.http://www-eu.apache.org/dist/sqoop/1.4.7/下载sqoop-1.4.7.bin__hadoop-2.6 查看详情

sqoop安装及使用(代码片段)

SQOOP安装及使用文章目录SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数... 查看详情

sqoop安装及导入sqlserver数据(代码片段)

...用对应的sqljdbc.jar包,这里用到的是sqljdbc4.jar点我下载3.安装sqoop将下载好的压缩包解压到指定安装目录,如/opttar-zxvfsqoop-1.4.7_hadoop 查看详情

sqoop--数据库和hdfs之间的搬运工(代码片段)

...翻译出的MapReduce中对inputformat和outputformat进行定制。sqoop安装安装sqoop首先要安装java和hadoop,当然我这里已经安装好了,大数据组件的安装很简单,可以参考我的其他博客。然后我们安装sqoop,这里我采用的是1.4.5版本的,目前sqoo... 查看详情

sqoop的安装与常用抽数操作(代码片段)

sqoop简介处理sqoop环境配置处理sqoop数据导入导出处理一:sqoop简介处理-1.Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可... 查看详情

1.5sqoop安装及基本使用(代码片段)

一、安装sqoop1、解压##解压[[email protected]cdh]#tarzxfsqoop-1.4.5-cdh5.3.6.tar.gz-C/opt/cdh-5.3.6/2、/opt/cdh-5.3.6/sqoop-1.4.5-cdh5.3.6/conf/sqoop-env.sh        &n 查看详情

sqoop简单回顾总结(代码片段)

...底层调用mapreduce,换言之使用sqoop必须得开yarn。3Sqoop安装 查看详情

sqoop的介绍以及部署安装(代码片段)

1.sqoop的介绍(1)介绍:  Sqoop是Apache旗下的一款“hadoop和关系型数据库服务器之间传送数据”的工具。  导入数据:MySQL、Oracle导入数据到hadoop的hdfs、hive、HBASE等数据存储系统。  导出数据:从hadoop的文件... 查看详情

sqoop安装及使用(代码片段)

SQOOP安装及使用文章目录SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数... 查看详情

sqoop安装及使用(代码片段)

SQOOP安装及使用文章目录SQOOP安装及使用SQOOP安装1、上传并解压2、修改文件夹名字3、修改配置文件4、修改环境变量5、添加MySQL连接驱动6、测试准备MySQL数据登录MySQL数据库创建student数据库切换数据库并导入数据另外一种导入数... 查看详情

sqoop安装与简单实用(代码片段)

一,sqoop安装    1.解压源码包2.配置环境变量3.在bin目录下的  /bin/configsqoop注释掉check报错信息4.配置conf目录下  /conf/sqoop-env.sh配置hadoop和hive家目录5.导入依赖的jar包至lib目录下  mysql-connector-java-5.1.46-bin.jar/share/hadoop/... 查看详情

sqoop快速上手(代码片段)

...Sqoop简介二、Sqoop下载三、Sqoop基础使用3.1前置软件3.2Sqoop安装3.3Sqoop基础使用1、查看Sqoop的帮助信息2、单独连接数据库3、导入数据4、导出数据四、详细参数补充**1常用命令列举****2命令&参数详解****2. 查看详情

sqoop的安装(代码片段)

条件 1.启动mysql  servicemysqldstart    2.启动hadoop集群 start-all.sh1.下载jar包(:http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/)2.上传安装包sqoop-1.4.6.bin__hadoop-2.0.4-alpha 查看详情

sqoop学习之路(代码片段)

一、概述二、工作机制三、安装1、前提概述2、软件下载3、安装步骤四、Sqoop的基本命令基本操作示例五、Sqoop的数据导入1、从RDBMS导入到HDFS中2、把MySQL数据库中的表数据导入到Hive中3、把MySQL数据库中的表数据导入到hbase 正文... 查看详情

sqoop环境搭建01sqoop-1.4.7安装配置centoslinuxrelease7.5.1804(附sqoop1最新版+sqoop2最新版安装包+mysql驱动包资源)(代码片段)

...功能还没有完善,所以这里优先推荐使用Sqoop1。本次安装的文件是【Sqoop1的最新版本】sqoop-1.4.7.bin-hadoop-2.6.0.tar.gz以下内容均以此版本进行说明。1.资源分 查看详情

chd-5.3.6集群上sqoop安装(代码片段)

Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型... 查看详情