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

Sqoop安装过程详解

阅读更多

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



原文链接:http://blog.csdn.net/u010415792/article/details/8907650

分享到:
评论

相关推荐

    sqoop2安装文档

    ### Sqoop2安装与配置详解 #### 一、概述 Sqoop是一款开源工具,主要用于在Hadoop和关系型数据库之间高效地传输数据。Sqoop2是Sqoop的一个重大升级版本,它引入了全新的架构和改进的功能,使得数据迁移更加稳定...

    sqoop组件部署.doc

    《Sqoop组件部署详解》 Sqoop是一款专为Hadoop设计的数据迁移工具,它使得在传统的关系型数据库(如MySQL、Oracle、Postgres等)与Hadoop...在使用Sqoop过程中,务必熟悉Hadoop集群的配置,以确保数据迁移的顺利进行。

    Sqoop企业级大数据迁移方案全方位实战视频教程

    6.Sqoop的部署安装及配置 第二章:Sqoop数据导入实战开发 1.Sqoop导入开发参数详解 2.数据导入分布式文件系统HDFS 3.数据导入数据仓库Hive 4.基于复杂条件实现数据导入 5.基于订单案例实现Increment增量...

    sqoop配置.docx

    本文详细介绍了如何在Hadoop2.6伪分布环境中安装配置Sqoop1.4.6,并通过具体的实例演示了如何将数据从MySQL导入到HDFS以及从HDFS导出到MySQL的过程。通过这些步骤,您可以更深入地理解Sqoop的工作原理及其在大数据...

    sqoop-1.4.6-cdh5.5.0.tar.gz

    《Sqoop 1.4.6 在 CDH 5.5.0 中的应用与详解》 Sqoop 是 Apache Hadoop 生态系统中的一个重要组件,它主要用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop 分布式文件系统(HDFS)之间进行数据迁移。 Sqoop 的...

    sqoop2 java API从oracle导数据到HDFS开发总结

    #### sqoopserver环境搭建详解 ##### 1. sqoopserver安装与配置 - **安装位置**:sqoopserver应该安装在Hadoop集群的一个节点上。只需要在一个节点上安装即可,而客户端可以在任意节点上使用。 - **下载与解压**:...

    23-Sqoop数据导入导出1

    【Sqoop数据导入导出详解】 Sqoop是一个用于在关系型数据库和Hadoop之间传输数据的工具,它利用Hadoop的MapReduce框架实现大规模数据的高效导入和导出。本篇将详细介绍Sqoop的导入和导出过程,以及在MySQL、HDFS、...

    hue平台oozie工作流操作sqoop,把mysql.pdf

    它通过MapReduce程序将数据从关系数据库导入到Hadoop的HDFS中,同时也可以将数据从HDFS导出到关系数据库中。 在本文中,Sqoop被用于将MySQL数据库中的数据导入到HDFS上。具体的命令参数如下所示: -Dorg.apache....

    Sqoop用户指南

    - **先决条件**:包括Hadoop的正确安装与配置,以及所需的JDBC驱动程序。 - **基本用法**:介绍如何启动Sqoop,以及一些基础命令。 #### 三、Sqoop工具详解 - **命令别名**:为常用命令创建别名以简化输入。 - **...

    sqoop-1.4.6-cdh5.14.0

    《 Sqoop 在 Hadoop 生态系统中的应用与详解》 Sqoop 是 Apache 开源项目,专为 Hadoop 设计的一款工具,用于在关系型数据库(如 MySQL、Oracle 等)与 Hadoop HDFS 之间进行数据迁移。在这个版本 "sqoop-1.4.6-...

    sqoop工具_202006041735481.docx

    ### Apache Sqoop 数据迁移工具详解 #### Sqoop 概述 Apache Sqoop 是一款开源工具,专注于实现关系型数据库管理系统(RDBMS)与Hadoop生态之间的高效数据交换。它支持将传统数据库中的数据导入Hadoop及其相关组件...

    Sqoop导Oracle数据到Hive

    3. **安装并配置好Sqoop**:确保Sqoop可以正确地连接到Oracle数据库以及HDFS。 #### 三、具体步骤详解 ##### 步骤1:列出Oracle中的所有表 使用Sqoop命令列出Oracle数据库中的所有表,以便后续选择需要导入的表。 ...

    SQOOP导入和导出参数.pdf

    ### SQOOP 导入与导出参数详解 #### 一、概述 SQOOP(SQL to Hadoop)是一款开源工具,主要用于在Hadoop和关系型数据库之间进行数据的迁移。它通过JDBC连接到关系型数据库,并利用MapReduce作业进行高效的大规模...

    sqoop1.x 导入数据

    ### Sqoop 1.x 数据导入详解 #### 一、Sqoop 概述 Sqoop 是一款开源工具,用于高效地在 Hadoop 和关系型数据库之间传输数据。它通过 JDBC 连接到关系型数据库,并利用 MapReduce 作业并行化数据传输过程。本文将...

    sqoop导入数据到hdfs路径

    ### Sqoop导入数据到HDFS路径详解 #### 一、Sqoop简介 Sqoop是一款开源工具,主要用于在Hadoop和关系型数据库之间高效地传输大量数据。它利用MapReduce作业来提取、转换和加载(ETL)数据。通过Sqoop,用户可以从...

    Sqoop数据搬运手册.docx

    ### Sqoop 数据搬运手册知识点详解 #### 一、Sqoop 概述 - **定义**: - Sqoop是一款开源工具,主要用于实现Hadoop(包括Hive、HBase等)与传统关系型数据库(如MySQL、PostgreSQL、Oracle等)之间的数据传输。 -...

    sqoop开发者中文手册

    ### Sqoop开发者中文手册知识点详解 #### 一、概述 - **定义与作用**:Sqoop(发音类似于“scoop”)是一款开源工具,用于高效地在Hadoop和关系型数据库间传输大型数据集。其核心功能在于实现数据在Hadoop HDFS与...

    java大数据案例_7Flume、Kafka、Sqoop、Lucene

    ### Java大数据案例详解:Flume、Kafka、Sqoop、Lucene #### 一、Flume日志收集至HDFS 在大数据处理流程中,数据的收集与传输是非常关键的一环。Apache Flume是一个分布式的、可靠的、高可用的系统,用于有效地...

    大数据平台-Sqoop培训.pdf

    《大数据平台-Sqoop培训详解》 Sqoop,作为大数据平台中的重要工具,主要用于实现Hadoop与关系型数据库之间的数据迁移。它允许用户方便地将数据导入到Hadoop的HDFS(Hadoop分布式文件系统)中,同时也支持将HDFS中...

Global site tag (gtag.js) - Google Analytics