热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Sqooop-使用Sqoop进行数据的导入导出

Sqoop是Apache旗下的一个开源框架,专门用来做数据的导入和导出。官网:https:sqoop.apache.orgSqoop的安装非常简单,只需要把下载下来的tar包解压设置两个

Sqoop是Apache旗下的一个开源框架,专门用来做数据的导入和导出。

官网:https://sqoop.apache.org/

Sqoop的安装非常简单,只需要把下载下来的tar包解压设置两个环境变量就可以了

1.安装部署

  下载版本:sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

  官网:http://mirror.bit.edu.cn/apache/sqoop/1.4.6/

1.1把tar包解压到/usr/sqoop 

tar -xvzf   sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz  /usr/    //解压到指定路径
 mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz     sqoop      //重命名,可选可不选

1.2设置环境变量

  把Sqoop添加到PATH文件, vim /etc/profile ,设置

export SQOOP_HOME=/usr/sqoop export PATH=$PATH:$SQOOP_HOME/bin

 

source /etc/profile

  因为Sqoop需要用到hadoop下面的jar包进行操作,所以需要设置HADOOP_COMMON_HOME 来指明hadoop安装在那个目录下。

[root@srv01 ~]# export HADOOP_COMMON_HOME=/usr/hadoop    //指明hadoop安装路径
[root@srv01 ~]# export HADOOP_MAPRED_HOME=/usr/hadoop  //因为hadoop最终把它的作业转换成mapreduce进行提交执行,实际上和hadoop home目录相同

  也可以用另一种方式,配置sqoop/conf目录下的sqoop-env.sh

vim   sqoop-env.sh

 把jdbc驱动包放到sqoop的lib目录下,如果里面有就不需要加(里面有个MySQL驱动包)。

1.3验证安装完成

输入  sqoop help  ,如下面所示,表示安装正常,另,没有设置PATH变量的需要到sqoop/bin执行  ./sqoop help 

[root@srv01 ~]# sqoop help Warning: /usr/sqoop/../hcatalog does not exist! HCatalog jobs will fail. Please set $HCAT_HOME to the root of your HCatalog installation. Warning: /usr/sqoop/../accumulo does not exist! Accumulo imports will fail. Please set $ACCUMULO_HOME to the root of your Accumulo installation. 17/08/12 03:49:43 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6 usage: sqoop COMMAND [ARGS] Available commands: codegen Generate code to interact with database records create-hive-table Import a table definition into Hive eval Evaluate a SQL statement and display the results export Export an HDFS directory to a database table help List available commands import Import a table from a database to HDFS import-all-tables  Import tables from a database to HDFS import-mainframe   Import datasets from a mainframe server to HDFS job Work with saved jobs list-databases List available databases on a server list-tables        List available tables in a database merge Merge results of incremental imports metastore Run a standalone Sqoop metastore version Display version information See 'sqoop help COMMAND' for information on a specific command.

 

2.使用Sqoop进行数据迁移

下面通过6个例子展示使用Sqoop进行数据迁移

2.1使用Sqoop导入MySQL数据到HDFS

[root@srv01 ~]# sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table user --columns 'uid,uname' -m 1 -target-dir '/sqoop/user'; //-m 指定map进程数,-target-dir指定存放目录

2.2使用Sqoop导入MySQL数据到Hive中

[root@srv01 ~]# sqoop import --hive-import --connect jdbc:mysql://localhost:3306/test --username root --password root --table user --columns 'uid,uname' -m 1 

2.3使用Sqoop导入MySQL数据到Hive中,并且指定表名

[root@srv01 ~]# sqoop import --hive-import --connect jdbc:mysql://localhost:3306/test --username root --password root --table user --columns 'uid,uname' -m 1 --hive-table user1; //如果hive中没有这张表,则创建这张表保存对应数据

2.4使用Sqoop导入MySQL数据到Hive中,并使用where条件

[root@srv01 ~]# sqoop import --hive-import --connect jdbc:mysql://localhost:3306/test --username root --password root --table user --columns 'uid,uname' -m 1 --hive-table user2 where uid=10;

2.5使用Sqoop导入MySQL数据到Hive中,并使用查询语句

[root@srv01 ~]# sqoop import --hive-import --connect jdbc:mysql://localhost:3306/test --username root --password root -m 1 --hive-table user6 --query 'select * from user where uid<10 and $conditions' --target-dir /sqoop/user5;
//
and $conditions 必须加在查询语句中,不加报错
 

2.6使用Sqoop将Hive中的数据导出到MySQL中

[root@srv01 ~]# sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root -m 1 --table user5 --export-dir /sqoop/user5 //两张表的列的个数和类型必须相同

 

 

 使用Sqoop测试与数据库的联通性

sqoop list-databases  --connect jdbc:mysql://localhost:3308/ --username guesttest --password guesttest

 

 注意:在使用sqoop的时候用jdbc连接数据库的时候尽量不要使用localhost或127.0.0.1,应该用主机的IP,为什么呢?因为在使用sqoop底层是会调用mapreduce去做数据的迁移,采用localhost时,resourcemanager把task分到每个worker的时候,他们的jdbc也是连接localhost或127.0.0.1,是无法与远程的数据通信的,这时候跑mapreduce就会报错。


推荐阅读
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
author-avatar
mobiledu2502919967
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有