sqoop即SQL-to-Hadoop,是一个把数据从关系型数据库导入到Hadoop系统中的工具(HDFS,HIVE和HBase),也可以将数据从Hadoop导入到关系型数据库。本文以sqoop 1.99.6版本为例演示如何配置和使用sqoop。

一. 安装配置sqoop

1. 从Apache网上下载sqoop http://apache.fayea.com/sqoop/1.99.6/

2. 将压缩包放置到指定目录后,运行tar -zxvf sqoop-1.99.6-bin-hadoop200.tar.gz 解压缩文件

3. 配置sqoop环境变量

  • 修改/etc/profile

   export SQOOP_HOME=/usr/local/sqoop-1.99.6
   export CATALINA_BASE=$SQOOP_HOME/server
   export LOGDIR=$SQOOP_HOME/logs
   export PATH=$SQOOP_HOME/bin:$PATH

  • 修改server/conf/catalina.properties,找到common.loader行,把/usr/lib/hadoop/lib/*.jar改成你的hadoop jar包目录,或者在$SQOOP_HOME中建个文件夹例如hadoop_lib,然后将这些jar包cp到此文件夹中,最后将此文件夹路径添加到common.loader属性中。
  • 修改server/conf/sqoop.properties,找到Hadoop configuration directory,将其修改为Hadoop配置文件所在目录,并且替换@LOGDIR@ 和@BASEDIR@为sqoop相对应目录

4. 下载mysql JDBC驱动程序 http://dev.mysql.com/downloads/connector/j/, 将其拷贝到$SQOOP_HOME/Server/lib下。

5. 在终端中验证sqoop配置

sqoop2-tool verify

出现以下信息说明sqoop配置成功

Verification was successful.
Tool class org.apache.sqoop.tools.tool.VerifyTool has finished correctly

6.在终端中启动sqoop服务

sqoop.sh server start

7.进入sqoop命令行

sqoop.sh client
or sqoop2-shell

8. 查看sqoop版本

show version --all

如果出现如下类似信息说明安装配置成功

client version:
Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8
Compiled by root on Wed Apr 29 10:40:43 CST 2015
server version:
Sqoop 1.99.6 source revision 07244c3915975f26f03d9e1edf09ab7d06619bb8
Compiled by root on Wed Apr 29 10:40:43 CST 2015
API versions:
[v1]

二. 使用sqoop

mysql数据库脚本如下

create database hadoop;

create table hadoop.widgets(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
widget_name VARCHAR(64) NOT NULL,
price DECIMAL(10,2),
design_date DATE,
version INT,
design_comment VARCHAR(100)); INSERT INTO hadoop.widgets VALUES (NULL, 'sprocket', 0.25, '2010-02-10',1, 'Connects two gizmos');
INSERT INTO hadoop.widgets VALUES (NULL, 'gizmo', 4.00, '2009-11-30', 4, NULL);
INSERT INTO hadoop.widgets VALUES (NULL, 'gadget', 99.99, '1983-08-13', 13, 'Our flagship product');

1. 创建link object

查看已经在sqoop server上注册的connector

创建指向mysql的link

创建指向hadoop的link

2. 创建job对象

3. 执行job

如果执行时出错,可以设置打开verbose模式以得到更详细的错误信息

set option --name verbose --value true

查看结果,发现目标目录中生成了10个文件,其中两个包含了源数据库中的3行纪录,其余为空文件。

如果想要将数据从hadoop导入mysql中,只要在创建job时将上述案例的link交换即可。

参考资料:http://sqoop.apache.org/docs/1.99.6/index.html

Hadoop学习笔记: sqoop配置与使用的更多相关文章

  1. Hadoop学习笔记—22.Hadoop2.x环境搭建与配置

    自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...

  2. Hadoop学习笔记系列

    Hadoop学习笔记系列   一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼 ...

  3. Hadoop学习笔记(7) ——高级编程

    Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...

  4. Hadoop学习笔记(6) ——重新认识Hadoop

    Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功 ...

  5. Hadoop学习笔记(3)——分布式环境搭建

    Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...

  6. Hadoop学习笔记(1) ——菜鸟入门

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

  7. Hadoop学习笔记(两)设置单节点集群

    本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoo ...

  8. Hadoop学习笔记(1)(转)

    Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...

  9. Hadoop学习笔记(9) ——源码初窥

    Hadoop学习笔记(9) ——源码初窥 之前我们把Hadoop算是入了门,下载的源码,写了HelloWorld,简要分析了其编程要点,然后也编了个较复杂的示例.接下来其实就有两条路可走了,一条是继续 ...

  10. Hadoop学习笔记(4) ——搭建开发环境及编写Hello World

    Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...

随机推荐

  1. js性能优化的小知识

    避免全局查找 function search() { //当我要使用当前页面地址和主机域名 alert(window.location.href + window.location.host); } ...

  2. 使用HIBERNATE的SQL查询并将结果集自动转换成POJO

    在某些场合下,我们可能想使用HIBERNATE的框架提供的SQL查询接口,但是,由于实体没有做映射,HIBERNATE不能把结果集转换成你想要的List<POJO>,本文讨论如何在这种情况 ...

  3. php实现多任务并发探讨

    如果是后台任务,需要通过队列转换为异步执行 如果是网络任务,可以使用socket_select 或者stream_select来执行(基于select模型) 如果一定要使用多线程可以安装多线程扩展,用 ...

  4. material design——设计文档

    http://www.uisdc.com/comprehensive-material-design-note

  5. delphi动态数组指针问题

    就一个button事件 procedure TForm1.btn7Click(Sender: TObject); Type TMyArr = array of array of array of In ...

  6. Android 网络连接判断与处理

    Android网络连接判断与处理  获取网络信息需要在AndroidManifest.xml文件中加入相应的权限. <uses-permission android:name="and ...

  7. DefaultHttpClient使用

    转自:http://username2.iteye.com/blog/1664995 博客分类:  java 工具类 javaio  ]; } json = JSONObject.fromObject ...

  8. 使用JSONP跨域请求数据

    下面代码,可以使用JSONP进行跨域请求数据,Insus.NET记录以下,以备忘记.

  9. Yii2 捕获错误日志

    在技术开发中,捕获程序框架错误,是非常必要的一件事情,我们公司使用Yii2框架,简单说下Yii2的错误捕获处理 Yii2 web应用 1 配置如下 其中errorHandler就是错误处理配置,执行E ...

  10. nRF51822之WDT浅析

    看门狗定时器 NRF51822 的看门狗定时器是倒计数器, 当计数值减少到 0 时产生 TIMEOUT 事件. 通过 START task 来启动看门狗定时器. 看门狗定时器启动时,如没有其他 32. ...