Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
Sqoop官方版本:http://apache.dataguru.cn/sqoop/1.4.2/
Sqoop CDH版本:http://archive.cloudera.com/cdh/3/sqoop-1.2.0-CDH3B4.tar.gz
Hadoop CDH版本:http://archive.cloudera.com/cdh/3/hadoop-0.20.2-CDH3B4.tar.gz
之前已经安装Hadoop-0.20.2,因sqoop官方版本不支持此版本,但可使用CDH3版本,如上面的下载链接。为了测试方便,可以通过拷贝相应的包到sqoop-1.2.0-CDH3B4/lib下,依然可以使用Hadoop-0.20.2版本。
sqoop版本: sqoop-1.2.0-CDH3B4
Hadoop版本:0.20.2
mysql版本: 5.6.11
1)解压缩sqoop安装文件
[hadoop@node01 ~]$ tar -xzvf sqoop-1.2.0-CDH3B4.tar.gz
[hadoop@node01 ~]$ cp hadoop-core-0.20.2-CDH3B4.jar sqoop-1.2.0-CDH3B4/lib
[hadoop@node01 ~]$ ls -l sqoop-1.2.0-CDH3B4/lib/hadoop-core-0.20.2-CDH3B4.jar
-rw-r--r--. 1 hadoop root 3452461 May 9 05:40 sqoop-1.2.0-CDH3B4/lib/hadoop-core-0.20.2-CDH3B4.jar
3)另外,sqoop导入mysql数据运行过程中依赖mysql-connector-java-*.jar,所以你需要下载mysql-connector-java-*.jar并复制到sqoop-1.2.0-CDH3B4/lib中
[hadoop@node01 ~]$ cp mysql-connector-java-5.1.24-bin.jar sqoop-1.2.0-CDH3B4/lib
[hadoop@node01 ~]$ ls -l sqoop-1.2.0-CDH3B4/lib/mysql-connector-java-5.1.24-bin.jar
-rw-r--r--. 1 hadoop root 846263 May 9 05:43 sqoop-1.2.0-CDH3B4/lib/mysql-connector-java-5.1.24-bin.jar
4)修改SQOOP的文件configure-sqoop,注释掉hbase和zookeeper检查(除非你准备使用HABASE等HADOOP上的组件),否则在进行hbase和zookeeper检查时,可能会卡在这里。
[hadoop@node01 bin]$ pwd
/home/hadoop/sqoop-1.2.0-CDH3B4/bin
[hadoop@node01 bin]$ vi configure-sqoop
#if [ -z "${HBASE_HOME}" ]; then
# HBASE_HOME=/usr/lib/hbase
#fi
#if [ -z "${ZOOKEEPER_HOME}" ]; then
# ZOOKEEPER_HOME=/usr/lib/zookeeper
#fi
#if [ ! -d "${HBASE_HOME}" ]; then
# echo "Error: $HBASE_HOME does not exist!"
# echo 'Please set $HBASE_HOME to the root of your HBase installation.'
# exit 1
#fi
#if [ ! -d "${ZOOKEEPER_HOME}" ]; then
# echo "Error: $ZOOKEEPER_HOME does not exist!"
# echo 'Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.'
# exit 1
#fi
5)启动Hadoop
[hadoop@node01 bin]$ start-all.sh
[hadoop@node01 bin]$ jps
2732 Jps
2478 NameNode
2665 JobTracker
2600 SecondaryNameNode
6)从MySQL导入数据到HDFS
(1)在MySQL里创建测试数据库sqooptest
[hadoop@node01 ~]$ mysql -u root -p
mysql> create database sqooptest;
Query OK, 1 row affected (0.01 sec)
(2)创建sqoop专有用户
mysql> create user 'sqoop' identified by 'sqoop';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to 'sqoop' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
(3)生成测试数据
mysql> use sqooptest;
Database changed
mysql> create table tb1 as select table_schema,table_name,table_type from information_schema.TABLES;
Query OK, 154 rows affected (0.28 sec)
Records: 154 Duplicates: 0 Warnings: 0
(4)测试sqoop与mysql的连接
[hadoop@node01 ~]$ sqoop list-databases --connect jdbc:mysql://node01:3306/ --username sqoop --password sqoop
13/05/09 06:15:01 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
13/05/09 06:15:01 INFO manager.MySQLManager: Executing SQL statement: SHOW DATABASES
information_schema
hive
mysql
performance_schema
sqooptest
test
(5)从MySQL导入数据到HDFS
[hadoop@node01 ~]$ sqoop import --connect jdbc:mysql://node01:3306/sqooptest --username sqoop --password sqoop --table tb1 -m 1
13/05/09 06:16:39 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
13/05/09 06:16:39 INFO tool.CodeGenTool: Beginning code generation
13/05/09 06:16:39 INFO manager.MySQLManager: Executing SQL statement: SELECT t.* FROM `tb1` AS t LIMIT 1
13/05/09 06:16:39 INFO manager.MySQLManager: Executing SQL statement: SELECT t.* FROM `tb1` AS t LIMIT 1
13/05/09 06:16:39 INFO orm.CompilationManager: HADOOP_HOME is /home/hadoop/hadoop-0.20.2/bin/..
13/05/09 06:16:39 INFO orm.CompilationManager: Found hadoop core jar at: /home/hadoop/hadoop-0.20.2/bin/../hadoop-0.20.2-core.jar
13/05/09 06:16:42 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-hadoop/compile/4175ce59fd53eb3de75875cfd3bd450b/tb1.jar
13/05/09 06:16:42 WARN manager.MySQLManager: It looks like you are importing from mysql.
13/05/09 06:16:42 WARN manager.MySQLManager: This transfer can be faster! Use the --direct
13/05/09 06:16:42 WARN manager.MySQLManager: option to exercise a MySQL-specific fast path.
13/05/09 06:16:42 INFO manager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql)
13/05/09 06:16:42 INFO mapreduce.ImportJobBase: Beginning import of tb1
13/05/09 06:16:43 INFO manager.MySQLManager: Executing SQL statement: SELECT t.* FROM `tb1` AS t LIMIT 1
13/05/09 06:16:45 INFO mapred.JobClient: Running job: job_201305090600_0001
13/05/09 06:16:46 INFO mapred.JobClient: map 0% reduce 0%
13/05/09 06:17:01 INFO mapred.JobClient: map 100% reduce 0%
13/05/09 06:17:03 INFO mapred.JobClient: Job complete: job_201305090600_0001
13/05/09 06:17:03 INFO mapred.JobClient: Counters: 5
13/05/09 06:17:03 INFO mapred.JobClient: Job Counters
13/05/09 06:17:03 INFO mapred.JobClient: Launched map tasks=1
13/05/09 06:17:03 INFO mapred.JobClient: FileSystemCounters
13/05/09 06:17:03 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=7072
13/05/09 06:17:03 INFO mapred.JobClient: Map-Reduce Framework
13/05/09 06:17:03 INFO mapred.JobClient: Map input records=154
13/05/09 06:17:03 INFO mapred.JobClient: Spilled Records=0
13/05/09 06:17:03 INFO mapred.JobClient: Map output records=154
13/05/09 06:17:03 INFO mapreduce.ImportJobBase: Transferred 6.9062 KB in 19.9871 seconds (353.8277 bytes/sec)
13/05/09 06:17:03 INFO mapreduce.ImportJobBase: Retrieved 154 records.
(6)在HDFS上查看刚刚导入的数据
[hadoop@node01 ~]$ hadoop dfs -ls tb1
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2013-05-09 06:16 /user/hadoop/tb1/_logs
-rw-r--r-- 2 hadoop supergroup 7072 2013-05-09 06:16 /user/hadoop/tb1/part-m-00000
原文链接:http://blog.csdn.net/u010415792/article/details/8907650
相关推荐
### Sqoop2安装与配置详解 #### 一、概述 Sqoop是一款开源工具,主要用于在Hadoop和关系型数据库之间高效地传输数据。Sqoop2是Sqoop的一个重大升级版本,它引入了全新的架构和改进的功能,使得数据迁移更加稳定...
《Sqoop组件部署详解》 Sqoop是一款专为Hadoop设计的数据迁移工具,它使得在传统的关系型数据库(如MySQL、Oracle、Postgres等)与Hadoop...在使用Sqoop过程中,务必熟悉Hadoop集群的配置,以确保数据迁移的顺利进行。
6.Sqoop的部署安装及配置 第二章:Sqoop数据导入实战开发 1.Sqoop导入开发参数详解 2.数据导入分布式文件系统HDFS 3.数据导入数据仓库Hive 4.基于复杂条件实现数据导入 5.基于订单案例实现Increment增量...
本文详细介绍了如何在Hadoop2.6伪分布环境中安装配置Sqoop1.4.6,并通过具体的实例演示了如何将数据从MySQL导入到HDFS以及从HDFS导出到MySQL的过程。通过这些步骤,您可以更深入地理解Sqoop的工作原理及其在大数据...
《Sqoop 1.4.6 在 CDH 5.5.0 中的应用与详解》 Sqoop 是 Apache Hadoop 生态系统中的一个重要组件,它主要用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop 分布式文件系统(HDFS)之间进行数据迁移。 Sqoop 的...
#### sqoopserver环境搭建详解 ##### 1. sqoopserver安装与配置 - **安装位置**:sqoopserver应该安装在Hadoop集群的一个节点上。只需要在一个节点上安装即可,而客户端可以在任意节点上使用。 - **下载与解压**:...
【Sqoop数据导入导出详解】 Sqoop是一个用于在关系型数据库和Hadoop之间传输数据的工具,它利用Hadoop的MapReduce框架实现大规模数据的高效导入和导出。本篇将详细介绍Sqoop的导入和导出过程,以及在MySQL、HDFS、...
它通过MapReduce程序将数据从关系数据库导入到Hadoop的HDFS中,同时也可以将数据从HDFS导出到关系数据库中。 在本文中,Sqoop被用于将MySQL数据库中的数据导入到HDFS上。具体的命令参数如下所示: -Dorg.apache....
- **先决条件**:包括Hadoop的正确安装与配置,以及所需的JDBC驱动程序。 - **基本用法**:介绍如何启动Sqoop,以及一些基础命令。 #### 三、Sqoop工具详解 - **命令别名**:为常用命令创建别名以简化输入。 - **...
《 Sqoop 在 Hadoop 生态系统中的应用与详解》 Sqoop 是 Apache 开源项目,专为 Hadoop 设计的一款工具,用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop HDFS 之间进行数据迁移。在这个版本 "sqoop-1.4.6-...
内容概要:本文档全面介绍了Sqoop工具及其在数据迁移过程中扮演的角色。重点讲解了如何利用 Sqoop 在 Hadoop 和关系型数据库之间进行高效的数据导入和导出操作。文档还提供了详细的实战步骤指导,覆盖了从准备工作、...
### Apache Sqoop 数据迁移工具详解 #### Sqoop 概述 Apache Sqoop 是一款开源工具,专注于实现关系型数据库管理系统(RDBMS)与Hadoop生态之间的高效数据交换。它支持将传统数据库中的数据导入Hadoop及其相关组件...
3. **安装并配置好Sqoop**:确保Sqoop可以正确地连接到Oracle数据库以及HDFS。 #### 三、具体步骤详解 ##### 步骤1:列出Oracle中的所有表 使用Sqoop命令列出Oracle数据库中的所有表,以便后续选择需要导入的表。 ...
### SQOOP 导入与导出参数详解 #### 一、概述 SQOOP(SQL to Hadoop)是一款开源工具,主要用于在Hadoop和关系型数据库之间进行数据的迁移。它通过JDBC连接到关系型数据库,并利用MapReduce作业进行高效的大规模...
### Sqoop 1.x 数据导入详解 #### 一、Sqoop 概述 Sqoop 是一款开源工具,用于高效地在 Hadoop 和关系型数据库之间传输数据。它通过 JDBC 连接到关系型数据库,并利用 MapReduce 作业并行化数据传输过程。本文将...
### Sqoop导入数据到HDFS路径详解 #### 一、Sqoop简介 Sqoop是一款开源工具,主要用于在Hadoop和关系型数据库之间高效地传输大量数据。它利用MapReduce作业来提取、转换和加载(ETL)数据。通过Sqoop,用户可以从...
### Sqoop 数据搬运手册知识点详解 #### 一、Sqoop 概述 - **定义**: - Sqoop是一款开源工具,主要用于实现Hadoop(包括Hive、HBase等)与传统关系型数据库(如MySQL、PostgreSQL、Oracle等)之间的数据传输。 -...
### Sqoop开发者中文手册知识点详解 #### 一、概述 - **定义与作用**:Sqoop(发音类似于“scoop”)是一款开源工具,用于高效地在Hadoop和关系型数据库间传输大型数据集。其核心功能在于实现数据在Hadoop HDFS与...
### Java大数据案例详解:Flume、Kafka、Sqoop、Lucene #### 一、Flume日志收集至HDFS 在大数据处理流程中,数据的收集与传输是非常关键的一环。Apache Flume是一个分布式的、可靠的、高可用的系统,用于有效地...