WHCSRL 技术网

四十、centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)

环境准备:

centos 7

centos 可以上网

hadoop,Hbase,Hive,Zookeeper正常运行

环境搭建:

版本:

 sqoop1.4.7-hadoop2.6.0

一、Sqoop安装

        1、直接在虚拟机浏览器下载sqoop1.4.7

https://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gzhttps://archive.apache.org/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz

 

        2、解压安装包

        3、重命名为Sqoop

 mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

        4、配置sqoop-env.sh

                (1)复制配置文件并重命名为sqoop-env.sh

cat sqoop-env-template.sh >> sqoop-env.sh

 

                  (2)修改配置文件

        编辑sqoop-env.sh文件,分别将Hadoop、HBase、Hive、ZooKeeper的安装目录添加到文件中。

 

        5、配置环境变量

vim /etc/profile

        使环境变量立即生效:

source /etc/profile

        6、配置MySQL连接

                (1)添加MySQL的JAR包到Sqoop安装目录中。

                 (2)测试Sqoop与MySQL之间的连接

                         A、启动MySQL服务:

                         B、测试Sqoop与MySQL之间的连接是否成功:

 sqoop list-databases --connect jdbc:mysql://localhost:3306 --username root -password dang

         注:如果可以看到MySQL数据库中的数据库列表,则表示Sqoop安装成功

centos安装Sqoop完成


Sqoop的使用:

二、使用Sqoop完成MySQL和HDFS之间的数据互导

        1、上传准备好的测试数据到MySQL中

                (1)登录MySQL:

               (2)创建测试数据库

                (3)创建表test1,用于存放本地测试数据

  1. create table test1(
  2. ip varchar(100) not null,
  3. time varchar(100) not null,
  4. url varchar(100) not null);

                (4)新建测试数据文件

                写入:

         注意:此 txt 文件字段之间需要用Tab键隔开,空格是不可行的,遇到datatime日期的,年月日,时分秒之间需用空格隔开,不需要添加引号

                 (5)将本地的测试数据上传到test1表中

load data local infile "/opt/linshi/test.txt" into table test1(ip,time,url);

               

                (6)上传完成后,查看test1表中的数据:   

select * from test1;

        2、上传数据到HDFS中

        (1)启动hadoop集群                

        (2)将test1中的数据上传到HDFS中:

./sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password dang --table test1 -m 1

        (3)查看导入的数据

hdfs dfs -cat /user/root/test1/part-m-00000

 

        (4)登录HDFS网页查看

        HDFS的web端:localhost:50070

 

         (5)将HDFS数据导入MySQL中

        注:在导出前需要先创建导出表的结构,如果导出的表在数据表中不存在,则系统会报错;若重复导出数据,则表中的数据会重复

                 A、 在test数据库中创建表test2,可以直接复制表test1的结构:

create table test2 as select * from test1 where 1=2;

                B、查看表test1,表test2:

 

 

                C、使用sqoop将HDFS中的数据导入MySQL的test2中:

sqoop export --connect jdbc:mysql://192.168.231.105:3306/test --username root --password dang --table test2 --export-dir /user/root/test1/part-m-00000 -m 1

         注:localhost最好写成本机地址,之前写的localhost报错了

        (6)再次查看test2表:

 

        HDFS的数据成功导入test2

一条华丽的分割线


centos安装sqoop(使用Sqoop完成MySQL和HDFS之间的数据互导)案例完成

其他环境搭建参见:

Hadoop伪分布式的搭建详情icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/118650350?spm=1001.2014.3001.5502Hadoop完全分布式的搭建详情icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/118851554?spm=1001.2014.3001.5502Zookeeper集群的搭建(单机、伪分布式、集群)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/119059186?spm=1001.2014.3001.5502Spark的安装与部署详情(Local模式,Standalone模式,Spank on YARN模式)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/119005751?spm=1001.2014.3001.5502HadoopHA环境搭建(保姆篇,手把手搭建)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/119838463?spm=1001.2014.3001.5502hbase集群的搭建(HBase Shell)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/120787788?spm=1001.2014.3001.5502Centos安装mysql(rpm终结版)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/120476116?spm=1001.2014.3001.5502centos安装hive3.1.2(精讲篇)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/120554242?spm=1001.2014.3001.5502Centos安装yum,wegt(完全配置篇)icon-default.png?t=L9C2https://blog.csdn.net/m0_54925305/article/details/120467143?spm=1001.2014.3001.5502

推荐阅读