Sqoop笔记
Sqoop 概述
Sqoop 是一款开源的工具,主要用于在 Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres 等)中的数据导进到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
Sqoop 项目开始于 2009 年,最早是作为 Hadoop 的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop 独立成为一个 Apache项目。
最新的稳定版本是 1.4.6。Sqoop2 的最新版本是 1.99.7。请注意,1.99.7 与 1.4.6 不兼容,且没有特征不完整,它并不打算用于生产部署。
sqoop下载与安装
1)Sqoop 官网地址:
http://sqoop.apache.org/
2)文档查看地址:
http://sqoop.apache.org/docs/1.4.6/index.html
3)下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.6/
Sqoop 安装部署
- 把 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz上传到 linux 的/opt/software 目录下
-
解压 sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 到/opt/module/目录下
[hadoop@hadoop102 software]$ tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/
-
修改 sqoop-1.4.6.bin__hadoop-2.6.0 的名称为 sqoop
[hadoop@hadoop102 module]$ mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop
-
修改/opt/module/sqoop/conf 目录下的 sqoop-env-template.sh 名称为 sqoop-env.sh
[hadoop@hadoop102 sqoop]$ cd conf/ [hadoop@hadoop102 conf]$ ls oraoop-site-template.xml sqoop-env-template.sh sqoop-site.xml sqoop-env-template.cmd sqoop-site-template.xml [hadoop@hadoop102 conf]$ mv sqoop-env-template.sh sqoop-env.sh
-
配置 sqoop-env.sh 文件
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.3 export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3 export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin export ZOOKEEPER_HOME=/opt/module/zzookeeper-3.4.5-cdh5.12.1 export ZOOCFGDIR=/opt/module/zookeeper-3.4.5-cdh5.12.1 #export HBASE_HOME=/opt/module/hbase
-
拷贝 JDBC 驱动
拷贝 jdbc 驱动到 sqoop 的 lib 目录下,如:
[hadoop@hadoop102 software]$ cp mysql-connector-java-5.1.37.jar /opt/module/sqoop/lib/
-
测试验证
[hadoop@hadoop102 sqoop]$ ./bin/sqoop list-databases --connect jdbc:mysql://hadoop102:3306/ --username root --password 123456 Warning: /opt/module/sqoop/bin/../../hbase does not exist! HBase imports will fail. Please set $HBASE_HOME to the root of your HBase installation. Warning: /opt/module/sqoop/bin/../../hcatalog does not exist! HCatalog jobs will fail. Please set $HCAT_HOME to the root of your HCatalog installation. Warning: /opt/module/sqoop/bin/../../accumulo does not exist! Accumulo imports will fail. Please set $ACCUMULO_HOME to the root of your Accumulo installation. 2021-09-23 10:26:05,224 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6 2021-09-23 10:26:05,257 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead. 2021-09-23 10:26:05,431 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset. information_schema metastore mysql performance_schema sys [hadoop@hadoop102 sqoop]$