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

版权声明:本文为博主原创文章,未经博主允许不得转载。

[Hadoop] Sqoop安装过程详解的更多相关文章

  1. hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解

    hadoop1.2.1+zk-3.4.5+hbase-0.94.1集群安装过程详解 一,环境: 1,主机规划: 集群中包括3个节点:hadoop01为Master,其余为Salve,节点之间局域网连接 ...

  2. TortoiseGIT的安装过程详解

    TortoiseGIT简介 TortoiseGIT 是Git版本控制系统的一个免费开源客户端,它是git版本控制的 Windows 扩展.可以使你避免使用枯燥而且不方便的命令行.它完全嵌入 Windo ...

  3. 个人用户永久免费,可自动升级版Excel插件,使用VSTO开发,Excel催化剂安装过程详解及安装失败解决方法

    因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难 ...

  4. Ubuntu19.04的安装过程详解以及操作系统初始化配置

    Ubuntu19.04的安装过程详解以及操作系统初始化配置                                                                       ...

  5. RabbitMQ 集群安装过程详解

    一.安装Erlang 1.rabbitMQ是基于erlang的,所以首先必须配置erlang环境. 从erlang官网下载 otp 18.3.下载链接:http://erlang.org/downlo ...

  6. SAP ECC6安装系列四:安装过程详解

    原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 续接上篇,我们终于按下了 “Next” ...

  7. CentOS 7下Cloudera Manager及CDH 6.0.1安装过程详解

    目录 一.概念介绍 1.CDH 概览 2.Cloudera Manager 概览 二.环境准备 1.软件版本选择 2.节点准备(四个节点) 3.配置主机名和hosts解析(所有节点) 4.关闭防火墙 ...

  8. SQL Server 2012 Enterprise Edition安装过程详解(包含每一步设置的含义)

    一.启动安装程序,点击“安装”选项卡,选择“全新SQL Server独立安装或向现有安装添加功能”.(首次安装数据库系统或向现有数据库系统添加功能,均选择此选项) 二.随后,安装程序进行“安装程序支持 ...

  9. Citrix_XenServer-6.1安装过程详解(转)

    本次为使用VirtualBox虚拟机过安装测试机过程,我们在使用Vm(无论是Vbox还是VMware等)我们的CPU都必须可支持Intel-V或AMD-V,并且在VM软件设置和BIOS设置开启虚拟化支 ...

随机推荐

  1. PHP 获取网络接口文件流

    获取网络接口里面的文件流 php开发调用各种接口在所难免,有时须要传递非常多參数. 在传递參数过程中 '&' 有时会被 解析成 '&'导致请求失败 经过查找资料和比較,发现php提供了 ...

  2. H2 应用实例1

    说明:本例子开发工具为NetBeans,jdk 1.7 进行测试说明 H2安装说明如下 1. H2数据库必要文件下载地址为: http://www.h2database.com     (1) 下载截 ...

  3. 广播、多播和IGMP的一点记录

    广播和多播:仅应用于UDP 广播分为: 1.受限的广播(255.255.255.255) 2.指向网络的广播(eg:A类网络 netid.255.255.255)主机号为全1的地址 3.指向子网的广播 ...

  4. Ajax的跨域问题

    •跨域问题概述 •出于安全考虑,浏览器不允许ajax跨域获取数据 •可以通过script的src加载js的方式传递数据 fn({"a":"1","b& ...

  5. 九度OJ 1008:最短路径问题 (最短路)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8064 解决:2685 题目描述: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费 ...

  6. svn服务器 vim 修改 authz passwd 添加用户

    进入svn服务器 vim 修改 authz passwd 添加用户 SVN服务器之------2,配置PhpStorm连接SVN服务器(其他IDE大同小异) - 学到老死 - 博客园 https:// ...

  7. svn服务的安装和使用

    更新linux软件库 cat /etc/redhat-release wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.c ...

  8. 关于Spring注解 @Service @Component @Controller @Repository 用法

    @Component 相当于实例化类的对象,其他三个注解可以理解为@Component的子注解或细化. 在annotaion配置注解中用@Component来表示一个通用注释用于说明一个类是一个spr ...

  9. Oracle数据库之SQL基础和分支循环

    一.SQL基础语言 DECLARE --声明 a ); --变量或对象 BEGIN a:='小明';-- := 表示给一个变量赋值 dbms_output.put_line(a); --输出用 dbm ...

  10. python获取当前的时间

    打印出当前的年月日时分秒 print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) 2018-09-05 09:39: ...