数据搬运组件:基于Sqoop管理数据导入和导出 |
您所在的位置:网站首页 › sqoop导出数据到oracle › 数据搬运组件:基于Sqoop管理数据导入和导出 |
本文源码:GitHub || GitEE 一、Sqoop概述Sqoop是一款开源的大数据组件,主要用来在Hadoop(Hive、HBase等)与传统的数据库(mysql、postgresql、oracle等)间进行数据的传递。 通常数据搬运的组件基本功能:导入与导出。 鉴于Sqoop是大数据技术体系的组件,所以关系型数据库导入Hadoop存储系统称为导入,反过来称为导出。 Sqoop是一个命令行的组件工具,将导入或导出命令转换成mapreduce程序来实现。mapreduce中主要是对inputformat和outputformat进行定制。 二、环境部署在测试Sqoop组件的时候,起码要具备Hadoop系列、关系型数据、JDK等基础环境。 鉴于Sqoop是工具类组件,单节点安装即可。 1、上传安装包安装包和版本:sqoop-1.4.6 [root@hop01 opt]# tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz [root@hop01 opt]# mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop1.4.62、修改配置文件文件位置:sqoop1.4.6/conf [root@hop01 conf]# pwd /opt/sqoop1.4.6/conf [root@hop01 conf]# mv sqoop-env-template.sh sqoop-env.sh配置内容:涉及hadoop系列常用组件和调度组件zookeeper。 [root@hop01 conf]# vim sqoop-env.sh # 配置内容 export HADOOP_COMMON_HOME=/opt/hadoop2.7 export HADOOP_MAPRED_HOME=/opt/hadoop2.7 export HIVE_HOME=/opt/hive1.2 export HBASE_HOME=/opt/hbase-1.3.1 export ZOOKEEPER_HOME=/opt/zookeeper3.4 export ZOOCFGDIR=/opt/zookeeper3.43、配置环境变量[root@hop01 opt]# vim /etc/profile export SQOOP_HOME=/opt/sqoop1.4.6 export PATH=$PATH:$SQOOP_HOME/bin [root@hop01 opt]# source /etc/profile4、引入MySQL驱动[root@hop01 opt]# cp mysql-connector-java-5.1.27-bin.jar sqoop1.4.6/lib/5、环境检查关键点:import与export 查看帮助命令,并通过version查看版本号。sqoop是一个基于命令行操作的工具,所以这里的命令下面还要使用。 6、相关环境此时看下sqoop部署节点中的相关环境,基本都是集群模式: 这里是查看MySQL数据库的命令,如图结果打印正确: 指定数据库的表,全量导入Hadoop系统,注意这里要启动Hadoop服务; sqoop import --connect jdbc:mysql://hop01:3306/sq_import \ --username root \ --password 123456 \ --table tb_user \ --target-dir /hopdir/user/tbuser0 \ -m 13、Hadoop查询查询的SQL语句中必须带有WHERE$CONDITIONS: sqoop import --connect jdbc:mysql://hop01:3306/sq_import \ --username root \ --password 123456 \ --target-dir /hopdir/user/tbname0 \ --num-mappers 1 \ --query 'select user_name from tb_user where 1=1 and $CONDITIONS;'查看导出结果: [root@hop01 ~]# hadoop fs -cat /hopdir/user/tbname0/part-m-000005、导入Hive组件在不指定hive使用的数据库情况下,默认导入default库,并且自动创建表名称: sqoop import --connect jdbc:mysql://hop01:3306/sq_import \ --username root \ --password 123456 \ --table tb_user \ --hive-import \ -m 1执行过程,这里注意观察sqoop的执行日志即可: 第一步:MySQL的数据导入到HDFS的默认路径下; 第二步:把临时目录中的数据迁移到hive表中; 当前hbase的集群版本是1.3,需要先创建好表,才能正常执行数据导入: sqoop import --connect jdbc:mysql://hop01:3306/sq_import \ --username root \ --password 123456 \ --table tb_user \ --columns "id,user_name" \ --column-family "info" \ --hbase-table tb_user \ --hbase-row-key id \ --split-by id查看HBase中表数据: 新建一个MySQL数据库和表,然后把HDFS中的数据导出到MySQL中,这里就使用第一个导入脚本生成的数据即可: 再次查看MySQL中数据,记录完全被导出来,这里,是每个数据字段间的分隔符号,语法规则对照脚本一HDFS数据查询结果即可。 五、源代码地址GitHub·地址 https://github.com/cicadasmile/big-data-parent GitEE·地址 https://gitee.com/cicadasmile/big-data-parent阅读标签 【Java基础】【设计模式】【结构与算法】【Linux系统】【数据库】 【分布式架构】【微服务】【大数据组件】【SpringBoot进阶】【Spring&Boot基础】 【数据分析】【技术导图】【 职场】 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |