Hadoop学习笔记: sqoop配置与使用
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配置与使用的更多相关文章
- Hadoop学习笔记—22.Hadoop2.x环境搭建与配置
自从2015年花了2个多月时间把Hadoop1.x的学习教程学习了一遍,对Hadoop这个神奇的小象有了一个初步的了解,还对每次学习的内容进行了总结,也形成了我的一个博文系列<Hadoop学习笔 ...
- Hadoop学习笔记系列
Hadoop学习笔记系列 一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼 ...
- Hadoop学习笔记(7) ——高级编程
Hadoop学习笔记(7) ——高级编程 从前面的学习中,我们了解到了MapReduce整个过程需要经过以下几个步骤: 1.输入(input):将输入数据分成一个个split,并将split进一步拆成 ...
- Hadoop学习笔记(6) ——重新认识Hadoop
Hadoop学习笔记(6) ——重新认识Hadoop 之前,我们把hadoop从下载包部署到编写了helloworld,看到了结果.现是得开始稍微更深入地了解hadoop了. Hadoop包含了两大功 ...
- Hadoop学习笔记(3)——分布式环境搭建
Hadoop学习笔记(3) ——分布式环境搭建 前面,我们已经在单机上把Hadoop运行起来了,但我们知道Hadoop支持分布式的,而它的优点就是在分布上突出的,所以我们得搭个环境模拟一下. 在这里, ...
- Hadoop学习笔记(1) ——菜鸟入门
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
- Hadoop学习笔记(两)设置单节点集群
本文描写叙述怎样设置一个单一节点的 Hadoop 安装.以便您能够高速运行简单的操作,使用 Hadoop MapReduce 和 Hadoop 分布式文件系统 (HDFS). 參考官方文档:Hadoo ...
- Hadoop学习笔记(1)(转)
Hadoop学习笔记(1) ——菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序. ...
- Hadoop学习笔记(9) ——源码初窥
Hadoop学习笔记(9) ——源码初窥 之前我们把Hadoop算是入了门,下载的源码,写了HelloWorld,简要分析了其编程要点,然后也编了个较复杂的示例.接下来其实就有两条路可走了,一条是继续 ...
- Hadoop学习笔记(4) ——搭建开发环境及编写Hello World
Hadoop学习笔记(4) ——搭建开发环境及编写Hello World 整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclip ...
随机推荐
- [办公自动化]如何对Excel表格顶部设计
领导有一个excel要完成如下功能:顶部要包含企业LOGO,还要包含设计图号.版次等表格,还要包含类似“第 页 of 页” 总体思路: 1.利用顶端标题行完成除了页码以外的所有事情:(当然也可以利 ...
- [ZZ] KlayGE 游戏引擎 之 Order Independent Transparency(OIT)
转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2233 http://dogasshole.iteye.com/blog/1429665 ht ...
- 【翻译】CEDEC2012 SQUARE ENIX GPGPU实现高速GI烘培工具的方法
虽然实时GI技术已经趋于成熟了,但出于对不同平台的性能和质量的考虑, 更倾向搭配一些预计算的渲染技术来实现,如给静态物体提供GI的LightMap, 给动态物体提供GI的Irradiance Vol ...
- sqlserver log
DBCC LOGINFODBCC log('QSSys', TYPE=2)goselect * from sys.fn_dblog(null,null)select [Dirty Pages],[Mi ...
- P1003 铺地毯
水题 #include <bits/stdc++.h> using namespace std; const int maxn = 10005; int n; int x, y, i; s ...
- Mysql操作笔记(持续更新)
1.mysqldump备份导出 备份成sql mysqldump -hlocalIp -uuserName -p --opt --default-character-set=utf8 --hex-bl ...
- android studio无法关联源码
1.查看源码的时候报这个, 说找不到API 23的源码 2.本地的SDK 3.google stackoverflow 给出解决方案 http://stackoverflow.com/questio ...
- nginx生产配置
user www www; worker_processes 8; error_log /data/logs/nginx_error.log crit; pid /usr/local/webserve ...
- 【转】Unity3D中Layers和LayerMask解析
http://blog.csdn.net/yupu56/article/details/50441151 Unity中是用int32来表示32个Layer层.int32表示二进制一共有32位(0-31 ...
- 【转】如何使php的MD5与C#的MD5一致?
有c#生成MD5的代码如下: class CreateMD5 { static void Main(string[] args) { string source = "提问指南"; ...