前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sqoop集群环境搭建 | MySQL数据导出HDFS测试

Sqoop集群环境搭建 | MySQL数据导出HDFS测试

作者头像
大数据小禅
发布2022-05-31 10:05:08
9130
发布2022-05-31 10:05:08
举报
文章被收录于专栏:YO大数据

1.Sqoop简介

Apache Sqoop是在Hadoop生态体系和*RDBMS体系之间传送数据的一种工具。来自于Apache软件基金会提供。,主要用于在Hadoop(Hive)与传统的数据库间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Sqoop工作机制是将导入或导出命令翻译成mapreduce程序来实现。在翻译出的mapreduce中主要是对inputformat和outputformat进行定制。

Hadoop生态系统包括:HDFS、Hive、Hbase等

RDBMS体系包括:Mysql、Oracle等关系型数据库

Sqoop可以理解为:“SQL 到 Hadoop 和 Hadoop 到SQL”

2.Sqoop安装

1.sqoop安装包解压

对应安装包可以私聊获取,在主节点node1上进行安装。

代码语言:javascript
复制
#解压
tar -xf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /app
#修改安装包名字
mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6

2.修改配置文件

Sqoop的运行依赖于Hadoop,导入Hive的环境变量是因为MySQL导入到Hive需要用到Hive依赖。具体搭建流程可以再环境搭建专栏进行查看。

ZK的环境变量可以用于将数据导入到HBase。这个根据个人情况进行配置。

代码语言:javascript
复制
 vim /app/sqoop-1.4.6/sqoop-env.sh 
 
 #增加如下内容
export HADOOP_COMMON_HOME=/app/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/app/hadoop-3.1.3
export HIVE_HOME=/app/hive
export ZOOKEEPER_HOME=/app/zookeeper-3.5.7
export ZOOCFGDIR=/app/zookeeper-3.5.7/conf

3.添加JDBC驱动

代码语言:javascript
复制
#将mysql-connector-java-5.1.48.jar上传到sqoop的lib的目录
cp mysql-connector-java-5.1.48.jar /app/sqoop-1.4.6/lib

3.Sqoop运行测试

代码语言:javascript
复制
#使用bin/sqoop help 可以看到一些提示命令
#测试Sqoop是否可以连接到数据库运行如下命令,注意你机器的数据库密码与端口根据情况修改。可以看到如下的数据库信息输出
bin/sqoop list-databases --connect jdbc:mysql://node1:3306/ --username root --password 123456
image.png
image.png

4.MySQL数据导出到HDFS

在mysql建立个表,两个字段id 与name 用于测试

代码语言:javascript
复制
mysql> insert into mysql_hdfs values(1,"test");
Query OK, 1 row affected (0.00 sec)

mysql> insert into mysql_hdfs values(2,"tes2");
Query OK, 1 row affected (0.00 sec)

mysql> insert into mysql_hdfs values(3,"te3s");
Query OK, 1 row affected (0.00 sec)
代码语言:javascript
复制
#运行如下的命令导出数据到HDFS
#前三个字段用于配置基本的连接信息     

参数解释:
--table:mysql的表   
--columns:导出的列
--target-dir:到HDFS的目标路径
--split-by:指的是map端的切片操作,按照id进行切片
--fields-terminated-by '\t':mysql中的是结构化数据,导入HDFS指定分隔符

bin/sqoop import \
--connect jdbc:mysql://node1:3306/test \
--username root \
--password 123456 \
--table mysql_hdfs \
--columns id,name \
--target-dir /sql_hdfs \
--delete-target-dir \
--fields-terminated-by '\t' \
--num-mappers 2 \
--split-by id

这里解释一下 --split-by的分片规则

切片规则:假如说id的最大值为20,最小值是1,那么切片的时候就会分成两份1-10,10-20,之后每个部分一个map。

运行上面的命令后可以在HDFS对应的路径查看生成的内容。

image.png
image.png
image.png
image.png

到这里sqoop的正常使用测试完成

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/05/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.Sqoop简介
  • 2.Sqoop安装
  • 3.Sqoop运行测试
  • 4.MySQL数据导出到HDFS
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档