关键词:
数据导出/迁移的概念
在做数据导出之前,我们看一下已经完成的操作:数据分析阶段将指标统计完成,也将统计完成的指标放到Hive数据表中,并且指标数据存储到HDFS分布式文件存储系统。
指标统计完成之后,我们最终是想将我们的指标数据做成可视化大屏进行展示,Hive中的数据无法、很难直接连接到JavaWeb或者EE技术直接进行数据展示。 因此我们需要将Hive中统计出来的数据指标表迁移到我们的MySQL数据库中,由MySQL数据库连接web技术进行可视化展示。
Hive数仓指标表的数据都存储在HDFS分布式文件存储系统,如果想要将Hive的数据导出,有以下几种导出方式:
(1)使用insert命令导出数据到一个目录
(2)HDFS的相关命令:hdfs dfs -get/-move/-copyToLocalFile,将Hive数仓的数据导出到本地的文件中
(3)hive -e 和重定向 >> 命令将数据导出到一个文件中
(4)使用hive自带的export命令导出数据到一个文件夹中(主要做数据仓库的迁移 )
(5)第三方软件技术sqoop技术实现数据迁移,实现将Hive数仓中的数据迁移到MySQL中
数据迁移技术SQOOP
一、SQOOP技术的相关概念
(1) sqoop技术也是apache的顶尖项目,主要是做数据迁移的。
(2)sqoop是将数据在Hadoop和关系型数据库之间的数据传递,基于MapReduce完成。核心是对MR程序的InputFormat和OutputFormat进行定制。
(3)sqoop也是使用命令进行数据的导入和导出的,只不过底层也是会翻译成为MR程序执行。
二、sqoop中两个核心概念
导入:将关系型数据库表数据(比如MySQL)中表数据导入到大数据集群(比如Hive、HBase、HDFS)
导出:将大数据集群的数据(Hive、HBase、HDFS数据)导出到非大数据集群的关系型数据库,比如MySQL
三、SQOOP的安装
sqoop软件是基于Java和Hadoop的,所以必须先把Java和Hadoop软件配置好。
1、首先下载上传解压sqoop、再配置sqoop的相关配置文件。
配置的sqoop配置文件是sqoop-env.sh,重点需要配置Hadoop的相关依赖环境:
export HADOOP_COMMON_HOME=/opt/module/hadoop-2.8.5
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.8.5
export HIVE_HOME=/opt/module/hive-2.3.8
sqoop可以实现将Hive、HBase中表数据导出到MySQL数据库中,需要sqoop具备连接MySQL的条件——mysql-connector-java-xxxx.jar(需要把此jar包放在sqoop下)
cp /opt/module/hive-2.3.8/lib/mysql-connector-java-5.1.27.jar /opt/module/sqoop-1.4.7/lib/
2、配置sqoop的环境变量(vim /etc/profile)
四、SQOOP的使用
1、检测sqoop是否安装成功
sqoop help
sqoop version
sqoop可以用来查看某个数据库管理系统中有哪些数据库存在
2、sqoop查看MySQL数据库中有哪些数据库存在
sqoop list-databases --connect jdbc:mysql://localhost:3306 --username root --password root
list-databases代表查看所有数据库,connect代表连接哪个数据库,username代表连接数据库的用户名,password代表连接数据库密码。
这个命令执行成功的前提条件是:你已经将对应数据库的驱动jar包放到了sqoop的lib目录下。
五、sqoop实现将MySQL数据导入到Hive数据仓库
【注意】需要将hive的相关jar包放到sqoop环境下
cp /opt/module/hive-2.3.8/lib/hive-common-2.3.8.jar /opt/module/sqoop-1.4.7/lib/
将MySQL中test数据库下的test表数据导入到Hive数据仓库中。
sqoop import #导入
--connect jdbc:mysql://localhost:3306/test # 连接MySQL的那个数据库
--username root #连接MySQL的用户名
--password root #连接MySQL的密码
--table test # 指定MySQL要向Hive数据仓库导入当前数据下那张数据表的数据
--num-mappers 1 # 将导入任务转成MR程序运行 需要一个Map任务
--hive-import # 将数据导入到hive数仓
--fields-terminated-by "\\t" #指定hive数仓导入完成之后表字段之间分隔符
--hive-overwrite # 表中有数据 覆盖写
--hive-table 数据库名.表名 # 导入到Hive的那个表中 表可以不存在 会自动创建
sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table test --num-mappers 1 --hive-import --fields-terminated-by "\\t" --hive-overwrite --hive-table 数据库名.表名
将MySQL表中数据导入到Hive数仓的时候,hive数据仓库中表可以不用提前存在,会自动创建。
六、sqoop实现将Hive/HDFS数据导入到MySQL数据表中
sqoop的导入分为:将数据导入到HDFS和将数据导入到Hive数仓,或者其他。每种导入方式不一样。
sqoop的导出只有一种命令,就是将Hive/HDFS数据导出到Mysql中。因为hive存储的表数据也在HDFS上存储着,所以HDFS的导出和Hive的导出命令一致的。
案例:实现项目功能,将age_pvs的数据导出到MySQL数据库中。
将MySQL数据导入到hive表中,hive表可以不用提前存在,但是如果要将Hive数据表的数据导入到MySQL中,那么MySQL中对应的表必须提前存在,并且和hive表结构保持一致。
导出命令:
sqoop export # 导出数据
--connect jdbc:mysql://localhost:3306/project #连接MySQL数据库
--username root #连接用户名
--password 123456 #连接密码
--table staff # 导入到MySQL的那张表中
--num-mappers 1 #转成一个MR任务运行
--export-dir /user/hive/warehouse/staff_hive #hive数据表数据在HDFS上对应的路径
--input-fields-terminated-by "\\t" #hive表字段和字段之间的分隔符
sqoop的另外一种导出方式:
vim一个xxx.opt文件,然后将sqoop导出命令放到文件中。注意:sqoop关键字需要删除、而且参数和参数值需要分行写
使用 sqoop --options-file xxx.opt
sqoop实现数据迁移(导入、导出)主要是将迁移操作转换成为MR程序去运行,在表现形式上,就是将MR程序的InputFormat和OutputFormat进行重写或者自定义。
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数据迁移
1.1、概述sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;导出数据:从Hadoop的文件系统中导出数据到关系数据库mysql等 1.2... 查看详情
浅谈sqoop
...,是appche旗下的一款工具,主要是负责hadoop与RDBMS之间的数据迁移,即从hadoop文件系统导出数据到RDBMS,从RDBMS导入数据到hadoophdfs,hive,hbase等数据存储系统。b.其实就是将sqoop命令转换成MR程序来完成数据的迁移。c.本质就是执行和计... 查看详情
sqoop的安装和使用(代码片段)
一、概述sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。核心的功能有两个:导入、迁入导出、迁出导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统导出数据:从Hadoop的文件... 查看详情
sqoop
1、sqoopflume数据采集采集日志数据sqoop数据迁移hdfs->mysqlazkaban任务调度flume->hdfs->shell->hive->sql->BIsqoop数据迁移=mapreduce处理离线数据整个过程就是数据导入处理导出过程直接使用mapsqoop作用:简化开发mysql->hdfsmapreduces... 查看详情
利用sqoop将hive数据导入导出数据到mysql
...p;hivesqoop是让hadoop技术支持的clouder公司开发的一个在关系数据库和hdfs,hive之间数据导入导出的一个工具在使用过程中可能遇到的问题:sqoop依赖zookeeper,所以必须配置ZOOKEEPER_HOME到环境变量中。sqoop-1.2.0-CDH3B4依赖hadoop-core-0. 查看详情
数据迁移之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笔记整理(代码片段)
[toc]Sqoop笔记整理概述SQOOP---数据搬用工可以将外部数据迁移到hdfs目录或者hive表或者hbase表import原理从传统数据库获取元数据信息(schema、table、field、fieldtype),把导入功能转换为只有Map的Mapreduce作业,在mapreduce中有很多map,每个ma... 查看详情
使用 sqoop 将数据从 Teradata 迁移到 Hive
】使用sqoop将数据从Teradata迁移到Hive【英文标题】:DataMigrationformTeradatatoHiveusingsqoop【发布时间】:2018-02-1309:12:10【问题描述】:我正在尝试使用sqoop将数据从teradata迁移到hive,但在teradata表中有一些字段具有图形和vargraphic等数据... 查看详情
大数据:Sqoop-导出错误
】大数据:Sqoop-导出错误【英文标题】:BigData:Sqoop-ExportError【发布时间】:2015-10-0116:03:35【问题描述】:我对这个世界很陌生。使用sqoop运行导出命令时,我收到以下错误“输入路径不存在:hdfs://quickstart.cloudera:8020/home/cloudera/Te... 查看详情
大数据开发之sqoop详细介绍
...(SQL-to-Hadoop)项目旨在协助RDBMS与Hadoop之间进行高效的大数据交流。用户可以在Sqoop的帮助下,轻松地把关系型数据库的数据导入到Hadoop与其相关的系统(如HBase和Hive)中;同时也可以把数据从Hadoop系统里抽取并导出到关系型数据... 查看详情
通过sqoop工具从hive仓库中导出数据到mysql表中,只有部分数据导出,是什么原因
参考技术A输入sqoopimport的目录在哪里?如果在/usr/sqoop下输入的命令,那么在/usr/sqoop下输入hive登入,然后showtables查看。本回答被提问者采纳 查看详情
使用 Sqoop 将视图(数据库表重)从 Oracle 迁移到 Hive
】使用Sqoop将视图(数据库表重)从Oracle迁移到Hive【英文标题】:UsingSqooptomigrateviews(databasetablesheavy)fromOracletoHive【发布时间】:2017-05-2410:42:29【问题描述】:我是大数据的初学者,我们正在使用sqoop和Cloudera管理将视图从Oracle迁... 查看详情
头歌sqoop数据导出-详解(代码片段)
...点击每一关参考答案可以快速复制。目录第1关:Sqoop数据导出语法学习任务描述相关知识编程要求测试说明参考答案第2关:HDFS数据导出至Mysql内任务描述相关知识编程要求测试说明参考答案第3关:Hive数据导出至MySQL... 查看详情
sqoop
...-zkys/QQ技术交流群:299142667sqoopApacheSqoop是用来实现结构型数据(如关系数据库)和Hadoop之间进行数据迁移的工具。它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,同时也借助MapReduce实现了容错。s 查看详情
数据湖:数据库数据迁移工具sqoop
系列专题:数据湖系列文章 Sqoop(SQL-to-Hadoop)是Apache旗下的一款开源工具,该项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也... 查看详情