`
zhb8015
  • 浏览: 399173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

Sqoop--Hadoop和关系型数据库中的数据相互转移的工具

阅读更多

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
 
2)sqoop-1.2.0-CDH3B4依赖hadoop-core-0.20.2-CDH3B4.jar,所以你需要下载hadoop- 0.20.2-CDH3B4.tar.gz,解压缩后将hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2- CDH3B4.jar复制到sqoop-1.2.0-CDH3B4/lib中。
 
[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
分享到:
评论

相关推荐

    sqoop-1.4.6-hadoop-2.6最小资源包

    Sqoop 是一个在 Hadoop 生态系统中用于数据导入导出的工具,它允许用户将关系型数据库(如 MySQL、Oracle 等)中的数据高效地导入到 Hadoop 的 HDFS 中,或者从 HDFS 导回到关系型数据库。这个"sqoop-1.4.6-hadoop-...

    sqoop-1.4.7.bin__hadoop-2.6.0.tar

    在 Hadoop 生态系统中,Sqoop 提供了一种高效、可扩展的方式,用于将大量结构化数据导入到 Hadoop 分布式文件系统(HDFS)中,或者将数据导出回传统的关系型数据库。这使得 Hadoop 能够处理来自企业级数据库的数据,...

    sqoop-1.4.6.bin-hadoop-2.0.4-alpha版本的压缩包,直接下载到本地,解压后即可使用

    Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,...

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.zip

    Sqoop 是一个开源工具,主要用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop 的 HDFS(Hadoop Distributed File System)之间进行数据迁移。这个压缩包 "sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.zip" 包含了 ...

    sqoop-1.4.5.tar.zip

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

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

    Sqoop 是一个用于在 Apache Hadoop 和传统关系型数据库之间高效传输数据的工具。这个压缩包 "sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz" 包含了 Sqoop 的 1.4.6 版本,它已针对 Hadoop 2.0.4-alpha 版本进行了...

    sqoop-1.4.2.bin__hadoop-2.0.0-alpha.tar

    Sqoop 是 Apache Hadoop 生态系统中的一个工具,主要用于在关系型数据库(如 MySQL、Oracle 等)和 Hadoop 分布式文件系统(HDFS)之间高效地传输数据。这个压缩包 "sqoop-1.4.2.bin__hadoop-2.0.0-alpha.tar" 提供...

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.zip

    总的来说,"sqoop-1.4.6.bin__hadoop-2.0.4-alpha.zip" 提供了一个完整的Sqoop版本,用于在Hadoop和关系型数据库之间高效地转移数据,对于需要在大数据分析中集成RDBMS的企业来说,这是一个非常重要的工具。...

    sqoop-1.4.5.bin__hadoop-2.0.4-alpha.tar

    Sqoop是一款开源的数据迁移工具,它主要用于在关系型数据库(如MySQL、Oracle等)和Hadoop之间进行数据的导入导出。在大数据处理中,Sqoop扮演着至关重要的角色,它提供了高效、灵活且方便的数据传输方式。本文将...

    sqoop-1.4.6.bin__hadoop-2.0.4-alpha

    Sqoop 是一个开源工具,主要用于在关系型数据库(如MySQL、Oracle等)和Apache Hadoop之间进行数据迁移。它的全称是"SQL to Hadoop",由Cloudera公司开发,首次发布于2009年,现在已经成为了Hadoop生态系统中的重要...

    Sqoop-sqlserver-hdfs.rar

    Sqoop是Apache Hadoop生态中的一个工具,专门用于在关系型数据库(如SQL Server)与Hadoop Distributed File System(HDFS)之间传输数据。在这个"Sqoop-sqlserver-hdfs.rar"压缩包中,我们有两个关键文件:sqljdbc....

    sqoop-1.4.6-cdh5.5.0.tar.gz

    Sqoop 是 Apache Hadoop 生态系统中的一个重要组件,它主要用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop 分布式文件系统(HDFS)之间进行数据迁移。 Sqoop 的设计目标是提供高效率、大规模的数据导入和导出...

    sqoop-1.4.6.bin__hadoop-1.0.0.tar.gz

    Sqoop 是一个开源工具,主要用于在关系型数据库(如 MySQL、Oracle 等)与 Apache Hadoop 之间进行数据迁移。这个压缩包 "sqoop-1.4.6.bin__hadoop-1.0.0.tar.gz" 包含了 Sqoop 的 1.4.6 版本,该版本是针对 Apache ...

    sqoop-1.4.7(可直接下载学习使用)附有安装配置教程!

    安装配置 sqoop 链接:https://blog.csdn.net/m0_69097184/article/details/134153494Sqoop 是一款用于在 Apache Hadoop 和结构化数据存储(如关系型数据库)之间进行大规模数据迁移的工具。它提供了命令行界面,...

    sqoop-1.4.3.bin__hadoop-1.0.0.tar.gz

    Sqoop是Apache Hadoop生态中的一个工具,专门用于在关系型数据库(如MySQL、Oracle等)和Hadoop之间进行数据的导入导出。这个压缩包"sqoop-1.4.3.bin__hadoop-1.0.0.tar.gz"是Sqoop 1.4.3版本针对Hadoop 1.0.0的二...

    sqoop-1.4.6.bin__hadoop-0.23.tar.gz

    Sqoop 是一个开源工具,主要用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop 分布式文件系统(HDFS)之间高效地导入和导出数据。它弥补了传统 ETL 工具在大数据处理场景下的不足,提供了一种简单、灵活的方式来...

    sqoop1.4.7

    Sqoop是Apache Hadoop生态体系中的一个重要工具,主要用于在关系型数据库管理系统(RDBMS)与Hadoop Distributed File System(HDFS)之间高效地导入和导出数据。标题中的"sqoop1.4.7"指的是该版本的Sqoop,它是针对...

    sqoop-1.4.6-cdh5.12.0.tar.gz

    1. 数据提取: Sqoop 提供了命令行接口,允许用户从传统的关系型数据库管理系统(如 MySQL、Oracle、PostgreSQL 等)中抽取数据。它支持多种 JDBC 驱动,因此可以轻松连接到各种 RDBMS。 2. 数据转换:在导入数据到...

    sqoop-1.2.0-CDH3B4.tar.gz下载

    Sqoop是Apache Hadoop生态中的一个工具,专门用于在关系型数据库(如MySQL、Oracle等)与Hadoop的HDFS之间进行数据迁移。Sqoop-1.2.0-CDH3B4是Cloudera Distribution Including Apache Hadoop(CDH)的一个版本,CDH...

Global site tag (gtag.js) - Google Analytics