一、什么是sqoop

  Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

二、sqoop的特点

  Sqoop中一大亮点就是可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS。

三、Sqoop import 命令

  将Mysql的jdbc驱动放在/opt/cloudera/parcels/CDH/lib/sqoop/lib目录下。

  如下图:

  

  参考学习网址:

  http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.0/SqoopUserGuide.html

  命令详解:

  1、基本语法

 $ sqoop import (generic-args) (import-args)$ sqoop-import (generic-args) (import-args)

  2、基本命令

  查看网址:

  http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.0/SqoopUserGuide.html

  中的sqoop import的 Import control arguments

   

  3、案例

  方式一:

  将表rpt_sale_daily中数据导入到HDFS上。

  目标目录为:sqoop/rpt_sale_daily。

sqoop import --connect jdbc:mysql://master:3306/test \
--username root --password 123456 --table rpt_sale_daily \
--columns "dateid,huodong,pv,uv" \
--where "dateid='2015-08-28'" \
--target-dir sqoop/rpt_sale_daily \
-m 1

  如果提示 sqoop/rpt_sale_daily 目录已经存在,执行:

hadoop fs -rmr sqoop/rpt_sale_daily

执行结果:如下图

20条数据成功导入,开始检测吧亲。

执行代码:

hadoop fs -cat sqoop/rpt_sale_daily/part-m-00000

数据如下图:

关系数据库表rpt_sale_daily里面的数据如下:

对比,数据相同,成功导入。

方式二:

通过opt文件的方式传送:

新建test.opt文件:

 import
--connect
jdbc:mysql://192.168.0.115:3306/test
--username
root
--password --table
rpt_sale_daily
--columns
"id,huodong,pvv,uvv"
--where
"id='2015-08-28'"
--target-dir
sqoop/rpt_sale_daily
-m

执行指令:

sqoop options-file test.opt

执行过程和结果和方式一一样。

Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》的更多相关文章

  1. 【Hive学习之七】Hive 运行方式&权限管理

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...

  2. sqoop从oracle数据库抽取数据,导入到hive

    环境: hadoop-2.7.5 sqoop-1.4.7 zookeeper-3.4.10 hive-2.3.3 (使用mysql配置元数据库) jdk1.8.0_151 oracle 11.2.0. ...

  3. (MySQL里的数据)通过Sqoop Import Hive 里 和 通过Sqoop Export Hive 里的数据到(MySQL)

    Sqoop 可以与Hive系统结合,实现数据的导入和导出,用户需要在 sqoop-env.sh 中添加HIVE_HOME的环境变量. 具体,见我的如下博客: hadoop2.6.0(单节点)下Sqoo ...

  4. sqoop import mysql to hive table:GC overhead limit exceeded

    1. Scenario description when I use sqoop to import mysql table into hive, I got the following error: ...

  5. hive学习笔记之七:内置函数

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. hive学习笔记之八:Sqoop

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. Hive学习详细版

    一.概述 1.Hadoop的开发问题 只能用java语言开发,存在语言门槛 需要对Hadoop底层原理,api比较了解才能做开发 开发调试比较麻烦 2.什么是Hive Hive是基于Hadoop的一个 ...

  8. sqoop命令,mysql导入到hdfs、hbase、hive

    1.测试MySQL连接 bin/sqoop list-databases --connect jdbc:mysql://192.168.1.187:3306/trade_dev --username ...

  9. sqoop import 和export的问题

    sqoop import DB 2 hive(hdfs)是采用JDBC的过程,与传统hive区别在与多走了thrift server接口(稳定性待学习现在还比较模糊没做过大数据量测试),而export ...

随机推荐

  1. 把消息送到默认窗口函数里,并非一点用都没有,可能会产生新的消息(以WM_WINDOWPOSCHANGED为例)

    我在追踪执行: procedure TForm1.Button1Click(Sender: TObject); begin panel1.Left:=panel1.Left-; end; 并且屏蔽TW ...

  2. zabbix 添加jvm监控

    1. zabbix 服务端安装,监控jmx 需要--enable-java zabbix 客户端不需要 --enable-java 2.zabbix_server端安装jdk 安装jdk [root@ ...

  3. SORT ORDER BY STOPKEY

    select * from ( select * from ( select a.*,rownum rn from page a where object_id >1000 and owner= ...

  4. 【HDOJ】3345 War Chess

    简单BFS.注意最后一组数据,每个初始点不考虑周围是否有敌人. /* 3345 */ #include <iostream> #include <cstdio> #includ ...

  5. Codeforces 716B Complete the Word【模拟】 (Codeforces Round #372 (Div. 2))

    B. Complete the Word time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  6. Count Complete Tree Nodes ——LeetCode

    Given a complete binary tree, count the number of nodes. Definition of a complete binary tree from W ...

  7. SPBF(队列优化的Bellman-Foord)

  8. CodeForces 220(div 2)

    悲剧的div2..... A 题意:在n * m的矩形平面直角坐标系中,从(x, y)可以到四个点(x - a, y - b),(x + a, y - b),(x - a, y + b),(x + a ...

  9. poj1006

    题目大意:生物节律 一些人相信有三种循环在一个人生命中从他或者她出生的那天起,这个三个周期是,身体,情绪,智力, 并且他们有23,28,和33天的时间,在每一个周期里面都有一个周期,在一个周期的高峰期 ...

  10. do while 与while的区别!

    #include "stdio.h" main() { ,b=; do{ //在这里do while 是先完成{}里的运算在判断while()里的循环// a=a+b; b++; ...