sqoop数据迁移

IT-執念 IT-執念     2022-10-05     650

关键词:

sqoop 数据迁移

1 概述

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

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

  导出数据:从Hadoop的文件系统中导出数据到关系数据库。

2 工作机制

  将导入或导出命令翻译成mapreduce程序来实现。

  在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。

3 sqoop 安装

  安装sqoop的前提是已经具备java和hadoop的环境。

  3.1 下载并解压

     http://ftp.wayne.edu/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

  3.2 修改配置文件 

$ cd $SQOOP_HOME/conf

$ mv sqoop-env-template.sh sqoop-env.sh

打开sqoop-env.sh并编辑下面几行:

export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/

export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/

export HIVE_HOME=/home/hadoop/apps/hive-1.2.1

  3.3 加入mysql的jdbc驱动   

cp  ~/app/hive/lib/mysql-connector-java-5.1.28.jar   $SQOOP_HOME/lib/

  3.4 启动验证

$ cd $SQOOP_HOME/bin
$ sqoop-version

  输出:

  15/12/17 14:52:32 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6

  Sqoop 1.4.6 git commit id 5b34accaca7de251fc91161733f906af2eddbe83

  Compiled by abe on Fri Aug 1 11:19:26 PDT 2015

  到这里,整个Sqoop安装工作完成

4 数据导入

  4.1 下面的命令用于从MySQL数据库服务器中的emp表导入HDFS

$bin/sqoop import --connect jdbc:mysql://hdp-node-01:3306/test 
--username root --password root --table emp --m 1

 

  4.2 导入数据到HIVE

bin/sqoop import --connect jdbc:mysql://hdp-node-01:3306/test --username root --password root --table emp --hive-import --m 1

 

  4.3 导入到HDFS指定目录

--target-dir <new or exist directory in HDFS>

 

  下面的命令是用来导入emp_add表数据到‘/queryresult‘目录。

bin/sqoop import --connect jdbc:mysql://hdp-node-01:3306/test 
--username root --password root --target-dir /queryresult --table emp --m 1

 

  4.4 导入表数据子集

  我们可以导入表的使用Sqoop导入工具,"where"子句的一个子集。它执行在各自的数据库服务器相应的SQL查询,并将结果存储在HDFS的目标目录。

  where子句的语法如下。 

--where <condition>

 

  下面的命令用来导入emp_add表数据的子集。子集查询检索员工ID和地址,居住城市为:Secunderabad 

bin/sqoop import --connect jdbc:mysql://hdp-node-01:3306/test 
--username root --password root --where "city =‘sec-bad‘" --target-dir /wherequery --table emp_add --m 1

 

  4.5 增量导入

  增量导入是仅导入新添加的表中的行的技术。它需要添加‘incremental’, ‘check-column’, 和 ‘last-value’选项来执行增量导入。下面的语法用于Sqoop导入命令增量选项。  

--incremental <mode>
--check-column <column name>
--last value <last check column value>

 

  假设新添加的数据转换成emp表如下

  1206, satish p, grp des, 20000, GR

  下面的命令用于在EMP表执行增量导入

bin/sqoop import --connect jdbc:mysql://hdp-node-01:3306/test 
--username root --password root --table emp --m 1 --incremental append --check-column id --last-value 1205

 

5 数据导出

  将数据从HDFS导出到RDBMS数据库。

  导出前,目标表必须存在于目标数据库中。

  默认操作是从将文件中的数据使用INSERT语句插入到表中。

  更新模式下,是生成UPDATE语句更新表数据。

  语法: 

$ sqoop export (generic-args) (export-args) 

 

  5.1 将hdfs数据导出到mysql

    1)首先在mysql中创建目标表  

 CREATE TABLE employee ( 
   id INT NOT NULL PRIMARY KEY, 
   name VARCHAR(20), 
   deg VARCHAR(20),
   salary INT,
   dept VARCHAR(10));

 

    2)执行导出命令 

bin/sqoop export --connect jdbc:mysql://hdp-node-01:3306/test 
--username root --password root --table employee --export-dir /user/hadoop/emp/

 

6 sqoop 作业

  6.1创建作业

    在这里,我们创建一个名为myjob,这可以从RDBMS表的数据导入到HDFS作业。  

bin/sqoop job --create myimportjob -- import --connect jdbc:mysql://hdp-node-01:3306/test --username root --password root --table emp --m 1

 

    该命令创建了一个从db库的employee表导入到HDFS文件的作业。

  6.2 验证作业(--list) 

$ sqoop job --list

 

  它显示了保存作业列表。

  Available jobs:

    myjob

  ‘--show’ 参数用于检查或验证特定的工作,及其详细信息  

$ sqoop job --show myjob

 

  6.3 执行作业

  ‘--exec’ 选项用于执行保存的作业。下面的命令用于执行保存的作业称为myjob。 

$ sqoop job --exec myjob

 

数据迁移之sqoop

一简介ApacheSqoop(TM)是一种用于在ApacheHadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具 。官方下载地址:http://www.apache.org/dyn/closer.lua/sqoop/1.4.71. Sqoop是什么Sqoop:SQL-to-Hadoop 连接传统关系型数据... 查看详情

sqoop之数据迁移

安装sqoop的前提是已经具备java和hadoop的环境1、下载并解压最新版下载地址http://ftp.wayne.edu/apache/sqoop/1.4.6/2、修改配置文件$cd$SQOOP_HOME/conf$mvsqoop-env-template.shsqoop-env.sh打开sqoop-env.sh并编辑下面几行:exportHADOOP_COMMON_HOME=/home/h 查看详情

sqoop数据迁移

概述sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;导出数据:从Hadoop的文件系统中导出数据到关系数据库工作机制将导入... 查看详情

sqoop数据迁移

3.1概述sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;导出数据:从Hadoop的文件系统中导出数据到关系数据库   3.2工作... 查看详情

使用 sqoop 将数据从 Teradata 迁移到 Hive

】使用sqoop将数据从Teradata迁移到Hive【英文标题】:DataMigrationformTeradatatoHiveusingsqoop【发布时间】:2018-02-1309:12:10【问题描述】:我正在尝试使用sqoop将数据从teradata迁移到hive,但在teradata表中有一些字段具有图形和vargraphic等数据... 查看详情

数据导出/迁移(sqoop技术)

数据导出/迁移的概念         在做数据导出之前,我们看一下已经完成的操作:数据分析阶段将指标统计完成,也将统计完成的指标放到Hive数据表中,并且指标数据存储到HDFS分布式文件存储系统。      ... 查看详情

使用 Sqoop 将视图(数据库表重)从 Oracle 迁移到 Hive

】使用Sqoop将视图(数据库表重)从Oracle迁移到Hive【英文标题】:UsingSqooptomigrateviews(databasetablesheavy)fromOracletoHive【发布时间】:2017-05-2410:42:29【问题描述】:我是大数据的初学者,我们正在使用sqoop和Cloudera管理将视图从Oracle迁... 查看详情

数据湖:数据库数据迁移工具sqoop

         系列专题:数据湖系列文章        Sqoop(SQL-to-Hadoop)是Apache旗下的一款开源工具,该项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也... 查看详情

数据湖:数据库数据迁移工具sqoop

         系列专题:数据湖系列文章        Sqoop(SQL-to-Hadoop)是Apache旗下的一款开源工具,该项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也... 查看详情

数据湖:数据库数据迁移工具sqoop

         系列专题:数据湖系列文章        Sqoop(SQL-to-Hadoop)是Apache旗下的一款开源工具,该项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也... 查看详情

浅谈sqoop

...,是appche旗下的一款工具,主要是负责hadoop与RDBMS之间的数据迁移,即从hadoop文件系统导出数据到RDBMS,从RDBMS导入数据到hadoophdfs,hive,hbase等数据存储系统。b.其实就是将sqoop命令转换成MR程序来完成数据的迁移。c.本质就是执行和计... 查看详情

我们如何使用 SQoop 对从 RDBMS 迁移到 HDFS 的数据进行测试?

】我们如何使用SQoop对从RDBMS迁移到HDFS的数据进行测试?【英文标题】:HowwedoTestingonmigrateddatafromRDBMStoHDFSusingSQoop?【发布时间】:2017-06-0601:21:21【问题描述】:测试人员如何测试数据是否从RDBMS移动到HDFS?请仅从测试角度解释。... 查看详情

sqoop

1、sqoopflume数据采集采集日志数据sqoop数据迁移hdfs->mysqlazkaban任务调度flume->hdfs->shell->hive->sql->BIsqoop数据迁移=mapreduce处理离线数据整个过程就是数据导入处理导出过程直接使用mapsqoop作用:简化开发mysql->hdfsmapreduces... 查看详情

sqoop关系型数据迁移原理以及map端内存为何不会爆掉窥探

 序:map客户端使用jdbc向数据库发送查询语句,将会拿到所有数据到map的客户端,安装jdbc的原理,数据全部缓存在内存中,但是内存没有出现爆掉情况,这是因为1.3以后,对jdbc进行了优化,改进jdbc内部原理,将数据写入磁盘... 查看详情

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

一、概述sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。核心的功能有两个:导入、迁入导出、迁出导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统导出数据:从Hadoop的文件... 查看详情

sqoop学习

最近学习了下这个导数据的工具,但是在export命令这里卡住了,暂时排不了错误。先记录学习的这一点吧sqoop是什么sqoop(sql-on-hadoop):是用来实现结构型数据(如关系型数据库)和hadoop之间进行数据迁移的工具。它充分利用了m... 查看详情

大数据学习之sqoop框架25

...apache.org/ 2)场景传统型缺点,分布式存储。把传统型数据库数据迁移。ApacheSqoop(TM)是一种用于在ApacheHadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具。 2:Sqoop安装部署1)下载安装包2)解压tar-zx... 查看详情

sqoop

...-zkys/QQ技术交流群:299142667sqoopApacheSqoop是用来实现结构型数据(如关系数据库)和Hadoop之间进行数据迁移的工具。它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,同时也借助MapReduce实现了容错。s 查看详情