Hadoop学习笔记(21)Sqoop的应用开发(一个ETL工具)

一、Sqoop下载

1、输入网址http://sqoop.apache.org/,点击下载
在这里插入图片描述
2、选择版本
在这里插入图片描述
3、开始下载
在这里插入图片描述

二、Sqoop安装

1、上传sqoop安装文件
在这里插入图片描述
2、解压安装sqoop

[admin@master ~]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

在这里插入图片描述
3、安装后检查目录

[admin@master ~]$ cd sqoop-1.4.6.bin__hadoop-2.0.4-alpha/
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ ll
总用量 1800
drwxr-xr-x. 2 admin admin    4096 4月  27 23:36 bin
-rw-rw-r--. 1 admin admin   59010 4月  27 2015 build.xml
-rw-rw-r--. 1 admin admin   35614 4月  27 2015 CHANGELOG.txt
-rw-rw-r--. 1 admin admin    9880 4月  27 2015 COMPILING.txt
drwxr-xr-x. 2 admin admin     168 4月  27 23:36 conf
drwxr-xr-x. 5 admin admin     169 4月  27 23:36 docs
drwxr-xr-x. 2 admin admin      96 4月  27 23:36 ivy
-rw-rw-r--. 1 admin admin   17031 4月  27 2015 ivy.xml
drwxr-xr-x. 2 admin admin    4096 4月  27 23:36 lib
-rw-rw-r--. 1 admin admin   15319 4月  27 2015 LICENSE.txt
-rw-rw-r--. 1 admin admin     505 4月  27 2015 NOTICE.txt
-rw-rw-r--. 1 admin admin   18772 4月  27 2015 pom-old.xml
-rw-rw-r--. 1 admin admin    1096 4月  27 2015 README.txt
-rw-rw-r--. 1 admin admin 1014151 4月  27 2015 sqoop-1.4.6.jar
-rw-rw-r--. 1 admin admin    6554 4月  27 2015 sqoop-patch-review.py
-rw-rw-r--. 1 admin admin  632600 4月  27 2015 sqoop-test-1.4.6.jar
drwxr-xr-x. 7 admin admin      73 4月  27 2015 src
drwxr-xr-x. 4 admin admin     114 4月  27 23:36 testdata
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ cd conf
[admin@master conf]$ ll
总用量 28
-rw-rw-r--. 1 admin admin 3895 4月  27 2015 oraoop-site-template.xml
-rw-rw-r--. 1 admin admin 1404 4月  27 2015 sqoop-env-template.cmd
-rwxr-xr-x. 1 admin admin 1345 4月  27 2015 sqoop-env-template.sh
-rw-rw-r--. 1 admin admin 5531 4月  27 2015 sqoop-site-template.xml
-rw-rw-r--. 1 admin admin 5531 4月  27 2015 sqoop-site.xml
[admin@master conf]$ 

三、配置Sqoop环境变量

进入conf目录找到示例sqoop-env-template.sh文件,并复制生成sqoop-env.sh文件

[admin@master ~]$ cd sqoop-1.4.6.bin__hadoop-2.0.4-alpha/
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ ll
总用量 1800
drwxr-xr-x. 2 admin admin    4096 4月  27 23:36 bin
-rw-rw-r--. 1 admin admin   59010 4月  27 2015 build.xml
-rw-rw-r--. 1 admin admin   35614 4月  27 2015 CHANGELOG.txt
-rw-rw-r--. 1 admin admin    9880 4月  27 2015 COMPILING.txt
drwxr-xr-x. 2 admin admin     168 4月  27 23:36 conf
drwxr-xr-x. 5 admin admin     169 4月  27 23:36 docs
drwxr-xr-x. 2 admin admin      96 4月  27 23:36 ivy
-rw-rw-r--. 1 admin admin   17031 4月  27 2015 ivy.xml
drwxr-xr-x. 2 admin admin    4096 4月  27 23:36 lib
-rw-rw-r--. 1 admin admin   15319 4月  27 2015 LICENSE.txt
-rw-rw-r--. 1 admin admin     505 4月  27 2015 NOTICE.txt
-rw-rw-r--. 1 admin admin   18772 4月  27 2015 pom-old.xml
-rw-rw-r--. 1 admin admin    1096 4月  27 2015 README.txt
-rw-rw-r--. 1 admin admin 1014151 4月  27 2015 sqoop-1.4.6.jar
-rw-rw-r--. 1 admin admin    6554 4月  27 2015 sqoop-patch-review.py
-rw-rw-r--. 1 admin admin  632600 4月  27 2015 sqoop-test-1.4.6.jar
drwxr-xr-x. 7 admin admin      73 4月  27 2015 src
drwxr-xr-x. 4 admin admin     114 4月  27 23:36 testdata
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ cd conf
[admin@master conf]$ ll
总用量 28
-rw-rw-r--. 1 admin admin 3895 4月  27 2015 oraoop-site-template.xml
-rw-rw-r--. 1 admin admin 1404 4月  27 2015 sqoop-env-template.cmd
-rwxr-xr-x. 1 admin admin 1345 4月  27 2015 sqoop-env-template.sh
-rw-rw-r--. 1 admin admin 5531 4月  27 2015 sqoop-site-template.xml
-rw-rw-r--. 1 admin admin 5531 4月  27 2015 sqoop-site.xml

输入复制命令

[admin@master conf]$ cp sqoop-env-template.sh sqoop-env.sh

查看sqoop-env.sh文件

[admin@master conf]$ ll
总用量 32
-rw-rw-r--. 1 admin admin 3895 4月  27 2015 oraoop-site-template.xml
-rwxr-xr-x. 1 admin admin 1345 5月  12 22:46 sqoop-env.sh
-rw-rw-r--. 1 admin admin 1404 4月  27 2015 sqoop-env-template.cmd
-rwxr-xr-x. 1 admin admin 1345 4月  27 2015 sqoop-env-template.sh
-rw-rw-r--. 1 admin admin 5531 4月  27 2015 sqoop-site-template.xml
-rw-rw-r--. 1 admin admin 5531 4月  27 2015 sqoop-site.xml
[admin@master conf]$ 

编辑sqoop-env.sh文件(此处只配置hadoop、mapreduce、hive的安装路径)

[admin@master conf]$ vim sqoop-env.sh

在这里插入图片描述

四、配置mysql连接器(安装驱动)

在环境变量中,配置了sqoop连接hadoop、mapreduce、hive。但没有配置连接mysql。
1、那如何配置连接mysql?
将mysql的java connector复制到sqoop的依赖库中。
2、上传好connector驱动
在这里插入图片描述

3、sqoop的依赖库在哪?
sqopp的依赖库即是lib目录。可以看到目前lib目录中没有connector。

[admin@master ~]$ cd sqoop-1.4.6.bin__hadoop-2.0.4-alpha/
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ cd lib
[admin@master lib]$ ll
总用量 15728
-rw-rw-r--. 1 admin admin  224277 4月  27 2015 ant-contrib-1.0b3.jar
-rw-rw-r--. 1 admin admin   36455 4月  27 2015 ant-eclipse-1.0-jvm1.2.jar
-rw-rw-r--. 1 admin admin  400680 4月  27 2015 avro-1.7.5.jar
-rw-rw-r--. 1 admin admin  170570 4月  27 2015 avro-mapred-1.7.5-hadoop2.jar
-rw-rw-r--. 1 admin admin   58160 4月  27 2015 commons-codec-1.4.jar
-rw-rw-r--. 1 admin admin  241367 4月  27 2015 commons-compress-1.4.1.jar
-rw-rw-r--. 1 admin admin  109043 4月  27 2015 commons-io-1.4.jar
-rw-rw-r--. 1 admin admin  267634 4月  27 2015 commons-jexl-2.1.1.jar
-rw-rw-r--. 1 admin admin   60686 4月  27 2015 commons-logging-1.1.1.jar
-rw-rw-r--. 1 admin admin  706710 4月  27 2015 hsqldb-1.8.0.10.jar
-rw-rw-r--. 1 admin admin   35058 4月  27 2015 jackson-annotations-2.3.0.jar
-rw-rw-r--. 1 admin admin  197986 4月  27 2015 jackson-core-2.3.1.jar
-rw-rw-r--. 1 admin admin  232248 4月  27 2015 jackson-core-asl-1.9.13.jar
-rw-rw-r--. 1 admin admin  914311 4月  27 2015 jackson-databind-2.3.1.jar
-rw-rw-r--. 1 admin admin  780664 4月  27 2015 jackson-mapper-asl-1.9.13.jar
-rw-rw-r--. 1 admin admin 2141463 4月  27 2015 kite-data-core-1.0.0.jar
-rw-rw-r--. 1 admin admin 1799126 4月  27 2015 kite-data-hive-1.0.0.jar
-rw-rw-r--. 1 admin admin 1765864 4月  27 2015 kite-data-mapreduce-1.0.0.jar
-rw-rw-r--. 1 admin admin 1764982 4月  27 2015 kite-hadoop-compatibility-1.0.0.jar
-rw-rw-r--. 1 admin admin   19827 4月  27 2015 opencsv-2.3.jar
-rw-rw-r--. 1 admin admin   29555 4月  27 2015 paranamer-2.3.jar
-rw-rw-r--. 1 admin admin   41943 4月  27 2015 parquet-avro-1.4.1.jar
-rw-rw-r--. 1 admin admin  724377 4月  27 2015 parquet-column-1.4.1.jar
-rw-rw-r--. 1 admin admin   11368 4月  27 2015 parquet-common-1.4.1.jar
-rw-rw-r--. 1 admin admin  272946 4月  27 2015 parquet-encoding-1.4.1.jar
-rw-rw-r--. 1 admin admin  471470 4月  27 2015 parquet-format-2.0.0.jar
-rw-rw-r--. 1 admin admin   10385 4月  27 2015 parquet-generator-1.4.1.jar
-rw-rw-r--. 1 admin admin  152325 4月  27 2015 parquet-hadoop-1.4.1.jar
-rw-rw-r--. 1 admin admin 1029033 4月  27 2015 parquet-jackson-1.4.1.jar
-rw-rw-r--. 1 admin admin   25496 4月  27 2015 slf4j-api-1.6.1.jar
-rw-rw-r--. 1 admin admin 1251514 4月  27 2015 snappy-java-1.0.5.jar
-rw-rw-r--. 1 admin admin   94672 4月  27 2015 xz-1.0.jar

4、将mysql的connector复制到sqoop的依赖库中

[admin@master lib]$ cp /home/admin/mysql-connector-java-5.1.28.jar ./

在这里插入图片描述

五、启动并验证Sqoop

切换到bin目录

[admin@master conf]$ cd ..
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ ll
总用量 1800
drwxr-xr-x. 2 admin admin    4096 4月  27 23:36 bin
-rw-rw-r--. 1 admin admin   59010 4月  27 2015 build.xml
-rw-rw-r--. 1 admin admin   35614 4月  27 2015 CHANGELOG.txt
-rw-rw-r--. 1 admin admin    9880 4月  27 2015 COMPILING.txt
drwxr-xr-x. 2 admin admin     188 5月  12 22:56 conf
drwxr-xr-x. 5 admin admin     169 4月  27 23:36 docs
drwxr-xr-x. 2 admin admin      96 4月  27 23:36 ivy
-rw-rw-r--. 1 admin admin   17031 4月  27 2015 ivy.xml
drwxr-xr-x. 2 admin admin    4096 4月  27 23:36 lib
-rw-rw-r--. 1 admin admin   15319 4月  27 2015 LICENSE.txt
-rw-rw-r--. 1 admin admin     505 4月  27 2015 NOTICE.txt
-rw-rw-r--. 1 admin admin   18772 4月  27 2015 pom-old.xml
-rw-rw-r--. 1 admin admin    1096 4月  27 2015 README.txt
-rw-rw-r--. 1 admin admin 1014151 4月  27 2015 sqoop-1.4.6.jar
-rw-rw-r--. 1 admin admin    6554 4月  27 2015 sqoop-patch-review.py
-rw-rw-r--. 1 admin admin  632600 4月  27 2015 sqoop-test-1.4.6.jar
drwxr-xr-x. 7 admin admin      73 4月  27 2015 src
drwxr-xr-x. 4 admin admin     114 4月  27 23:36 testdata
[admin@master sqoop-1.4.6.bin__hadoop-2.0.4-alpha]$ cd bin
[admin@master bin]$ ll
总用量 88
-rwxr-xr-x. 1 admin admin 6770 4月  27 2015 configure-sqoop
-rwxr-xr-x. 1 admin admin 6533 4月  27 2015 configure-sqoop.cmd
-rwxr-xr-x. 1 admin admin 3133 4月  27 2015 sqoop
-rwxr-xr-x. 1 admin admin 1055 4月  27 2015 sqoop.cmd
-rwxr-xr-x. 1 admin admin  950 4月  27 2015 sqoop-codegen
-rwxr-xr-x. 1 admin admin  960 4月  27 2015 sqoop-create-hive-table
-rwxr-xr-x. 1 admin admin  947 4月  27 2015 sqoop-eval
-rwxr-xr-x. 1 admin admin  949 4月  27 2015 sqoop-export
-rwxr-xr-x. 1 admin admin  947 4月  27 2015 sqoop-help
-rwxr-xr-x. 1 admin admin  949 4月  27 2015 sqoop-import
-rwxr-xr-x. 1 admin admin  960 4月  27 2015 sqoop-import-all-tables
-rwxr-xr-x. 1 admin admin  959 4月  27 2015 sqoop-import-mainframe
-rwxr-xr-x. 1 admin admin  946 4月  27 2015 sqoop-job
-rwxr-xr-x. 1 admin admin  957 4月  27 2015 sqoop-list-databases
-rwxr-xr-x. 1 admin admin  954 4月  27 2015 sqoop-list-tables
-rwxr-xr-x. 1 admin admin  948 4月  27 2015 sqoop-merge
-rwxr-xr-x. 1 admin admin  952 4月  27 2015 sqoop-metastore
-rwxr-xr-x. 1 admin admin  950 4月  27 2015 sqoop-version
-rwxr-xr-x. 1 admin admin 3987 4月  27 2015 start-metastore.sh
-rwxr-xr-x. 1 admin admin 1564 4月  27 2015 stop-metastore.sh

输入命令,出现如图则说明执行成功。(图中的一些Warning信息是因为zookeeper未进行配置,可先不管)

[admin@master bin]$ ./sqoop help

在这里插入图片描述

六、【export】通过Sqoop export命令把Hive中的数据导出到关系型数据库(MySql)中

1、登录mysql

[admin@master ~]$ mysql -uhadoop -phadoop

2、进入到test库中,并创建一个表

mysql> create table test.table_export(name varchar(255),age int);
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+------------------+
| Tables_in_test   |
+------------------+
| table_export     |
| table_sougou     |
| tmall_recommend2 |
+------------------+
3 rows in set (0.00 sec)

mysql> desc table_export;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| name  | varchar(255) | YES  |     | NULL    |       |
| age   | int(11)      | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
2 rows in set (0.02 sec)

3、把(HDFS)Hive中的数据导出到关系型数据库(MySql)中

[admin@master bin]$ ./sqoop export --connect jdbc:mysql://master:3306/test --username hadoop --password hadoop --table table_export --export-dir '/user/hive/warehouse/test_02.db/table_02' --fields-terminated-by '\t';

在这里插入图片描述

七、【import】通过Sqoop import命令把关系型数据库(MySql)中的数据导入到Hive中

注:-m 1代表使用mapreduce的个数,此处指1个。

[admin@master bin]$ ./sqoop import --connect jdbc:mysql://master:3306/test --username hadoop --password hadoop --table table_export --target-dir '/user/hive/warehouse/test_02.db/test_inport' --fields-terminated-by '\t' -m 1;

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值