简介

SQOOP是用于对数据进行导入导出的。

(1)把MySQL、Oracle等数据库中的数据导入到HDFS、Hive、HBase中

(2)把HDFS、Hive、HBase中的数据导出到MySQL、Oracle等数据库中

安装sqoop

1.解压sqoop

tar  -zxvf  sqoop-1.4.3.bin_hadoop-1.0.0.tar.gz

2.重命名

mv  sqoop-1.4.3.bin_hadoop-1.0.0   sqoop

3.设置环境变量

vi  /etc/profile
export SQOOP_HOME=/usr/local/sqoop

将$SQOOP_HOME/bin 添加到 PATH 中

source  /etc/profile

完毕!

把mysql数据导入到hdfs或者hive中

我们主要使用的是sqoop脚本。

注:因为要连接mysql 所以需要jdbc驱动

把数据从mysql导入到hdfs(默认是/user/username)中:

sqoop import  --connect jdbc:mysql://hadoop:3306/hive  --username root --password admin --table TBLS --fields-terminated-by '\t'
--null-string  ‘**’ 

表示对于null值使用**代替 默认使用NULL ‘- -’不能使用,专有字符

Sqoop在导入时,使用4个MapReduce并行执行 ,可以指定一个如下:

sqoop import --connect jdbc:mysql://hadoop:3306/hive  --username root --password admin --table TBLS --fields-terminated-by '\t'  -m 1

hdfs不可以多次写入,解决办法:

sqoop import --connect jdbc:mysql://hadoop:3306/hive  --username root --password admin --table TBLS --fields-terminated-by '\t'  -m 1  --append

也可以导入到hive中,但前提是删除 /user/root/目录下内容:

hadoop fs -rmr  /user/root/*

因为在执行导入后,会再次在/user/root下生成 sqoop文件

sqoop import --connect jdbc:mysql://hadoop:3306/hive --username root --password admin --table TBLS --fields-terminated-by '\t' -m 1 --append --hive-import

导入增量:

sqoop import --connect jdbc:mysql://hadoop:3306/hive --username root --password admin --table TBLS --fields-terminated-by '\t' -m 1 --append --hive-import --check-column  'TBL_ID'  --incremental append  --last-value 6

避免每次麻烦输出很长的命令,创建job:

sqoop job --create myjob -- import --connect jdbc:mysql://hadoop:3306/hive --username root --password admin --table TBLS --fields-terminated-by '\t' -m 1 --append --hive-import --check-column  'TBL_ID'  --incremental append  --last-value 6

列出创建的job:

sqoop job --list

执行创建的job:

sqoop job --exec myjob (会提示让你输出mysql密码)

为了保存mysql密码,让其自动运行,要修改sqoop的配置文件sqoop-site.xml,让下面的内容生效:

<property>
    <name>sqoop.metastore.client.record.password</name>
    <value>true</value>
    <description>If true, allow saved passwords in the metastore.
    </description>
  </property>

修改后,下次执行之前,要先删除以前未修改配置文件的的myjob:

sqoop job --delete myjob

把数据从hdfs导出到mysql中

导数据得事先在mysql中存在表

导出数据必须按目录导出,不能按文件导出

导出数据

sqoop export --connect jdbc:mysql://hadoop:3306/hive --username root --password admin --table ids  --fields-terminated-by '\t'  --export-dir  '/ids'

导出可以重复进行,多次插入数据进入mysql中

注意:sqoop的导入导出事物是以Mapper任务为单位。

sqoop官网:http://sqoop.apache.org/

Sqoop工具的更多相关文章

  1. 使用sqoop工具从oracle导入数据

    sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hive.hdfs,hbase之间数据的相互导入,可以使用全表导入和增量导入 从RDBMS中抽取出的数据可以被Ma ...

  2. sqoop工具从oracle导入数据2

    sqoop工具从oracle导入数据 sqoop工具是hadoop下连接关系型数据库和Hadoop的桥梁,支持关系型数据库和hive.hdfs,hbase之间数据的相互导入,可以使用全表导入和增量导入 ...

  3. Sqoop 工具使用

    Sqoop 是什么及安装 Hadoop sqoop Apache sqoop (SQL to Hadoop) Sqoop is a tool designed to transfer data bet ...

  4. hive数据导入Sqoop工具

    下载Sqoop ,直接解压缩;然后导入2个环境变量 1.导入oracle数据库中表emp的数据到hive表中 1.导入到HDFS中 $ sqoop import --connect jdbc:mysq ...

  5. sqoop工具介绍(hdfs与关系型数据库进行数据导入导出)

    数据表 第一类:数据库中的数据导入到HDFS上 #数据库驱动jar包用mysql-connector-java--bin,否则有可能报错! ./sqoop import --connect jdbc: ...

  6. 初识sqoop

    Sqoop 产生背景 Sqoop 的产生主要源于以下几种需求: 1.多数使用 Hadoop 技术处理大数据业务的企业,有大量的数据存储在传统的关系型数据库(RDBMS)中. 2.由于缺乏工具的支持,对 ...

  7. 大数据之sqoop

    一.安装: 1 解压然后把mysql的驱动放在$SQOOP_HOME/lib 目录中2. conf/sqoop-en.sh export HADOOP_COMMON_HOME=/home/hadoop ...

  8. sqoop的安装与使用

    1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具.充分利用MapReduce并行特点以批处理的方式加快传输数据.发展至今 ...

  9. Sqoop安装与使用(sqoop-1.4.5 on hadoop 1.0.4)

    1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特点以批处理的方式加快数据传输,发展至今 ...

随机推荐

  1. [翻译] 编写高性能 .NET 代码--第二章 GC -- 减少大对象堆的碎片,在某些情况下强制执行完整GC,按需压缩大对象堆,在GC前收到消息通知,使用弱引用缓存对象

    减少大对象堆的碎片 如果不能完全避免大对象堆的分配,则要尽量避免碎片化. 对于LOH不小心就会有无限增长,但LOH使用的空闲列表机制可以减轻增长的影响.利用这个空闲列表,我们可以在两块分配区域中间找到 ...

  2. Hibernate学习(四)get和Load比较

    package cn.lonecloud.test.crud; import org.hibernate.HibernateException; import org.hibernate.Sessio ...

  3. java堆内存详解

    http://www.importnew.com/14630.htmljava堆的特点<深入理解java虚拟机>是什么描述java堆的 Java堆(Java Heap)是java虚拟机所管 ...

  4. Android开发之Android Context Menu

    1 Creatinga上下文菜单, Todefine上下文菜单的外观和行为,推翻youractivity的上下文菜单回滚方法,onCreateContextMenu()和onContextItemSe ...

  5. Android热修复技术选型——三大流派解析

    声明,本文转载自微信公众号文章 2015年以来,Android开发领域里对热修复技术的讨论和分享越来越多,同时也出现了一些不同的解决方案,如QQ空间补丁方案.阿里AndFix以及微信Tinker,它们 ...

  6. mongodb3.0分片及java代码连接操作测试(开启用户验证)

    最近抽时间搭建了一下mongodb简单的分片,整个过程还算是蛮顺利,只不过在用户验证这一块遇到了一些问题,好在最后终于搞定. 一.服务器搭建过程: 1.安装四个mongodb:一个作为config.一 ...

  7. yii学习笔记--使用gii快速创建控制器和模型

    配置gii 'gii'=>array( 'class'=>'system.gii.GiiModule', 'password'=>'123456',//使用gii的密码 // If ...

  8. My97DatePicker日历控制按日、按周和按月选择

    My97DatePicker日历控制按日.按周和按月选择 1.设计源码 <%@ page language="java" import="java.util.*&q ...

  9. 第一篇:操纵MySQL数据库(1) - 基于MySQLdb库

    前言 本文讲解在Python语言中使用MySQLdb库操纵MySQL数据库的方法. 准备工作 1. 安装Python和MySQL2. 安装MySQLdb (exe下载地址:http://sourcef ...

  10. Codeforces Round #446 (Div. 2)

    Codeforces Round #446 (Div. 2) 总体:rating涨了好多,虽然有部分是靠和一些大佬(例如redbag和ShichengXiao)交流的--希望下次能自己做出来2333 ...