博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS搭建Sqoop环境
阅读量:5855 次
发布时间:2019-06-19

本文共 3308 字,大约阅读时间需要 11 分钟。

          Sqoop是一个用来将Hadoop(Hive、HBase)和关系型数据库中的数据相互转移的工具,可以将一个关系
型数据库(例如:MySQL ,Oracle ,Postgres等)中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据
导入到关系型数据库中。
 

Sqoop安装

1、下载Sqoop安装包

在Sqoop官网下载安装包,本次使用的是sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz安装在/usr/local目录下,下载地址为

2、解压Sqoop安装包

1 #进入sqoop安装目录2 [hadoop@BigData ~]$ cd /usr/local3 #解压sqoop安装包4 [hadoop@BigData ~]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz5 #删除sqoop安装包6 [hadoop@BigData ~]$ rm -rf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz7 #重命名sqoop目录名8 [hadoop@BigData ~]$ mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

3、配置Sqoop环境变量

1 #配置Sqoop环境变量2 [root@BigData ~]# vi /etc/profile3 export SQOOP_HOME=/usr/local/sqoop4 export PATH=$PATH:$SQOOP_HOME/bin5 #使环境变量配置生效6 [root@BigData ~]#/etc/profile

4、将关系型数据库驱动包放到sqoop/lib目录下

MySql:mysql-connector-java-5.1.30.jar
Oracle:
ojdbc14.jar

5、修改Sqoop配置文件

1 [hadoop@BigData ~]$ mv sqoop-env-template.sh sqoop-env.sh 2 [hadoop@BigData ~]$ vi sqoop-env.sh 3 #Set path to where bin/hadoop is available 4 export HADOOP_COMMON_HOME=/usr/local/hadoop 5 #Set path to where hadoop-*-core.jar is available 6 export HADOOP_MAPRED_HOME=/usr/local/hadoop 7 #set the path to where bin/hbase is available 8 export HBASE_HOME=/usr/local/hbase 9 #Set the path to where bin/hive is available10 export HIVE_HOME=/usr/local/hive11 #Set the path for where zookeper config dir is12 export ZOOCFGDIR=/usr/local/zookeeper
到此,sqoop环境就已搭建成功!

Sqoop测试

1、导入MySql数据到hdfs中

mysql数据库中sqoop库中出来test表,表结构及数据如下所示:
id username gender telephone email
1 test_01 Female 138xxxx0903 test_01@example.com
2 test_02 Male 187xxxx9364 test_02@example.com
该命令执行结束后,观察hdfs的目录/user/{USER_NAME},下面会有一个文件夹是test,
里面有个文件是part-m-00000。该文件的内容就是数据表aa的内容,字段之间是使用制表符
分割的。

2、hdfs导出数据到mysql

把上一步导入到hdfs的数据导出到mysql中。我们已知该文件使用制表符
分隔的。那么,我们现在数据库sqoop中创建一个数据表hive,其表结构和test表结构一样。然后执行
下面的命令
1 [hadoop@BigData ~]$sqoop export --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table hive --export-dir '/user/hadoop/test/part-m-00000'--fields-terminated-by '\t'
参数解释:
参数 解释
sqoop sqoop命令
export 导出操作
--connect jdbc:mysql://ip:3306/sqoop 连接mysql的url
--username 连接mysql的用户名
--password 连接mysql的密码
--table mysql中的表,即将被导入的表名称
--export-dir hive中被导出的文件
--fields-terminated-by 指定输出文件中的行的字段分隔符
查看sqoop库中的hive表中是否已经有两条数据
id username gender telephone email
1 test_01 Female 138xxxx0903 test_01@example.com
2 test_02 Male 187xxxx9364 test_02@example.com

3、Mysql数据导入到Hive

 比如把表test数据导入到Hive中,增加参数 –hive-import
1 [hadoop@BigData ~]$ sqoop import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table test --warehouse-dir /usr/local/hive/warehouse --hive-import --create-hive-table

进入Hive Client验证导入的数据:

1 [hadoop@BigData bin]$ hive client2 hive> show tables;3 user_information4 test5 login_log6 hive> select * from test;7 1   test_01 Female  138xxxx0903 test_01@example.com8 2   test_02 Male    187xxxx9364 test_02@example.com

 4、Mysql数据导入到Hbase

把表test数据导入到HBase,指定Hbase中表名为demo_sqoop2hbase的命令

1 [hadoop@BigData ~]$ sqoop  import --connect jdbc:mysql://localhost:3306/sqoop --username root --password root --table test --hbase-table demo_sqoop2hbase --hbase-create-table --hbase-row-key id --column-family url

hbase shell中验证导入的数据:

1 [hadoop@BigData bin]$ hbase shell2 hbase(main):009:0>list3 demo_sqoop2hbase

转载于:https://www.cnblogs.com/yinghun/p/6221335.html

你可能感兴趣的文章
(转)三分钟玩转jQuery.noConflict()
查看>>
python基础学习笔记第一天
查看>>
C/S和B/S 《JavaWeb开发王者归来》学习笔记
查看>>
图像分类丨浅析轻量级网络「SqueezeNet、MobileNet、ShuffleNet」
查看>>
SSM框架的Bug
查看>>
力扣题目17-22-709,832,521,788,520,35,125,58
查看>>
cURL中的超时设置
查看>>
如何保障微服务架构下的数据一致性
查看>>
软件开发过程学习笔记(四)之详细设计说明书模板 分类: 开发过程 ...
查看>>
Python操作Redis及连接方式
查看>>
vs的【warning C4996:'fopen': This function or variable may be unsafe】解决方案
查看>>
长安大学第四届ACM-ICPC“迎新杯”程序设计竞赛-重现赛 F - 打铁的箱子
查看>>
zoj 3204 Connect them
查看>>
解决BUG:Cannot change version of project facet Dynamic web module to 2.5
查看>>
2018/8/10 部分枚举(类似尺取)
查看>>
[LUOGU] P2245 星际导航
查看>>
【转】TabError:inconsistent use of tabs and spaces
查看>>
基于人脸识别的商业大数据14
查看>>
Class.forName("com.mysql.jdbc.Driver");的作用
查看>>
C# 泛型
查看>>