服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - Sqoop的安装与使用详细教程

Sqoop的安装与使用详细教程

2022-09-02 13:53象在舞 编程技术

Sqoop是一款开源的工具,主要用于在Hadoop与传统数据库间进行数据的传递,这篇文章主要介绍了Sqoop的安装与使用详细教程,需要的朋友可以参考下

本文我们介绍一个非常好用的数据传输工具——Sqoop。Sqoop是一款开源的工具,主要用于在Hadoop与传统数据库间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。关注专栏《破茧成蝶——大数据篇》,查看更多相关的内容~

一、Sqoop的安装

1.1 下载上传安装包

1、首先下载安装包,点击此处进行下载

Sqoop的安装与使用详细教程

2、将下载的安装包上传到集群中,解压到相关目录并重命名。

  1. tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C ../modules/
  2.  
  3. mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

Sqoop的安装与使用详细教程

1.2 修改配置文件

1、首先重命名sqoop-env-template.sh文件

  1. [root@master conf]# mv sqoop-env-template.sh sqoop-env.sh

2、在sqoop-env.sh中添加各组件的路径

  1. export HADOOP_COMMON_HOME=/opt/modules/hadoop-2.7.2
  2. export HADOOP_MAPRED_HOME=/opt/modules/hadoop-2.7.2
  3. export HIVE_HOME=/opt/modules/hive
  4. export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.10
  5. export ZOOCFGDIR=/opt/modules/zookeeper-3.4.10
  6. export HBASE_HOME=/opt/modules/hbase

1.3 拷贝JDBC驱动

拷贝MySQL的驱动包到Sqoop的lib目录下:

  1. [root@master software]# cp ./mysql-connector-java-5.1.47.jar /opt/modules/sqoop/lib/

1.4 验证Sqoop是否安装成功

  1. bin/sqoop help

Sqoop的安装与使用详细教程

出现上图的内容说明安装成功。

二、Sqoop的导入导出

2.1 测试连接数据库

  1. bin/sqoop list-databases --connect jdbc:mysql://master:3306/ --username root --password p@ssw0rd

Sqoop的安装与使用详细教程

2.2 MySQL导入数据到HDFS

1、首先在MySQL数据库(xzw)中新建一张people表,如下所示:

  1. create table people(id int(4) primary key not null auto_increment, name varchar(255), sex varchar(255));
  2. insert into people(name, sex) values('xzw', 'Male');
  3. insert into people(name, sex) values('fq', 'FeMale');

Sqoop的安装与使用详细教程

2、全量导入

  1. bin/sqoop import \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --table people \
  6. --target-dir /user/sqoop/people \
  7. --delete-target-dir \
  8. --num-mappers 1 \
  9. --fields-terminated-by ","

使用如下命令查看导入的结果:

Sqoop的安装与使用详细教程

3、查询导入

  1. bin/sqoop import \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --target-dir /user/sqoop/people \
  6. --delete-target-dir \
  7. --num-mappers 1 \
  8. --fields-terminated-by "," \
  9. --query 'select name,sex from people where id <=1 and $CONDITIONS;'

查看导入结果:

Sqoop的安装与使用详细教程

这里需要注意的是,如果query后使用的是双引号,则$CONDITIONS前必须加转义符\,防止shell识别为自己的变量。如果使用的是单引号,则不需要加。

4、导入指定列

  1. bin/sqoop import \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --target-dir /user/sqoop/people \
  6. --delete-target-dir \
  7. --num-mappers 1 \
  8. --fields-terminated-by "," \
  9. --columns id,sex \
  10. --table people

查看结果:

Sqoop的安装与使用详细教程

这里需要注意的是,columns中如果涉及到多列,用逗号分隔,分隔时不要添加空格。

5、使用sqoop关键字筛选查询导入数据

  1. bin/sqoop import \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --target-dir /user/sqoop/people \
  6. --delete-target-dir \
  7. --num-mappers 1 \
  8. --fields-terminated-by "," \
  9. --table people \
  10. --where "id=1"

查看结果:

Sqoop的安装与使用详细教程

2.3 MySQL导入数据到Hive

  1. bin/sqoop import \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --table people \
  6. --num-mappers 1 \
  7. --hive-import \
  8. --fields-terminated-by "," \
  9. --hive-overwrite \
  10. --hive-table hive_people

Sqoop的安装与使用详细教程

该过程分为两步,第一步将数据导入到HDFS,第二步将导入到HDFS的数据迁移到Hive仓库。这里需要注意的是,Hive中的表不需要提前创建,Sqoop会在导数据的过程中自动创建表。

2.4 MySQL导入数据到HBase

  1. bin/sqoop import \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --table people \
  6. --columns "id,name,sex" \
  7. --column-family "info" \
  8. --hbase-create-table \
  9. --hbase-row-key "id" \
  10. --hbase-table "hbase_people" \
  11. --num-mappers 1 \
  12. --split-by id

这里需要注意的是,需要提前将HBase表建好:

  1. create 'hbase_people','info'

Sqoop的安装与使用详细教程

2.5 HDFS导出数据到MySQL

  1. bin/sqoop export \
  2. --connect jdbc:mysql://master:3306/xzw \
  3. --username root \
  4. --password p@ssw0rd \
  5. --table people \
  6. --num-mappers 1 \
  7. --export-dir /user/sqoop/people \
  8. --input-fields-terminated-by ","

Sqoop的安装与使用详细教程

这里需要注意的是,如果MySQL中不存在表,不会自动创建,简言之就是在执行导出之前需要在MySQL中创建好表。

三、Sqoop脚本打包

我们使用opt格式的文件打包Sqoop命令,然后执行,具体如下。

首先在Sqoop的安装目录新建目录opt,并编写脚本如下:

  1. export
  2. --connect
  3. jdbc:mysql://master:3306/xzw
  4. --username
  5. root
  6. --password
  7. p@ssw0rd
  8. --table
  9. people
  10. --num-mappers
  11. 1
  12. --export-dir
  13. /user/sqoop/people
  14. --input-fields-terminated-by
  15. ","

Sqoop的安装与使用详细教程

然后使用如下命令执行脚本:

  1. bin/sqoop --options-file opt/HDFSToMySQL.opt

到此这篇关于Sqoop的安装与使用详细教程的文章就介绍到这了,更多相关Sqoop安装与使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/gdkyxy2013/article/details/115536619

延伸 · 阅读

精彩推荐