文档章节

sqoop 完成与关系型数据库的互导

gulf
 gulf
发布于 2018/06/26 11:11
字数 767
阅读 66
收藏 2

一.安装SQOOP后可使用如下命令列出mysql数据库中的所有数据库,与检验是否安装成功。
     #  sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 123456

二. hive与mysql数据互导

    一. 使用命令范例:

  1. sqoop import --connect jdbc:mysql://192.168.137.1:3306/test  
  2. --username root --password 123456 --table mytabs --fields-terminated-by  
  3. '\t' -m 1 [--hive-import] --append --check-column 'id'  --incremental  
  4. append --last-value 5 --where 'id>2 and id<5'  

        参数详解:

       1.--fields-terminated-by '\t',表示将数据导入到hadoop中列记录之间的间隔符,默认符号为英文逗号。这里通常使用制表符\t来间隔数据,避免数据再次从HDFS到入到关系数据库时引起分割混乱
        2.-m 1,是--num-mappers的缩写,表示指定MapReduce的个数为1个(默认会自动开启多个),sqoop转化的MR程 序不包含reduce
        3.--append,表示数据导入到hadoop的方式为追加,否则不允许重复导入
        4.--check-column '主键列名' --incremental append --last-value 5,表示数据为增量导入,根据--last-value的值来判断,有大于这个值的记录则执行导入,否则不执行导入操作
        5.表示数据为增量导入,根据--last-value的值来判断, 有大于这个值的记录则执行导入,否则不执行导入操作
        6.--hive-import,表示将数据导入到Hive中;
        7.--where '',数据筛选条件
        8.-e 或--query 'select * from table where id>5 and $CONDITIONS',自定义导入数据的sql语句。使用自定义sql语句 需要注意:
           ① 使用了自定义sql就不能指定--table;
           ② 自定义sql语句的where条件中必须包含字符串"$CONDITIONS",$CONDITIONS是一个变量,用于给多个map任务划分任务范 围;
           ③ 使用自定义sql时,如果通过参数-m指定多个map任务,由于自定义sql中可能存在多表查询,因此必须使用参数“--split-by 表名.字段名”指定多个map任务分割数据的根据字段,如--split-by users.id;
        9. --target-dir,显示指定数据导入到HDFS中的位置,默认保存路径为:/user/{当前用户}/{表名}/表数据文件,
           如果导入时需要将已存在的HDFS文件删除,可使用--delete-target-dir

    二. hive数据导入导出数据到mysql 

  1. sqoop export -connect jdbc:mysql://localhost:3306/sqoop  
  2. -username root -password hadoop -table hive_student -export-dir  
  3. /hive/student/student --input-fields-terminated-by '\t'  

    三.mysql数据库数据导入hive中

  1. sqoop import --connect jdbc:mysql://localhost:3306/sqoop  
  2. -username root -password hadoop -table test -hive-import -m 1  

三.hbase与关系型数据库数据互导
    从Mysql导入到Hbase中
    参数说明:
    test 为mysql中要传入到hbase表中的表名。
    mysql_sqoop_test 传入hbase中的表名
     --column-family hbase表中的列族
    --hbase-row-key 在hbase中那一列作为rowkey
    使用范例:

  1. sqoop import --connect jdbc:mysql://10.120.10.11:3306/sqoop  
  2. --username sqoop --password sqoop --table test --hbase-create-table  
  3. --hbase-table mysql_sqoop_test --column-family info --hbase-row-key id -m 1  

© 著作权归作者所有

上一篇: java使用锁
gulf
粉丝 15
博文 278
码字总数 157028
作品 0
广州
程序员
私信 提问
HDFS Everywhere——RDBMS on HDFS

关系型数据库和HDFS的结合 ** 目录 ** 简介: – 题目: – 摘要: – 背景: 思路和计划: – 目标: 分工: 已有解决方案: – Sqoop: Solution: sqoop与loading对比: 项目简介: – 题目...

dukeke
2015/06/25
0
0
Sqoop1和Sqoop2简介

主要来源: http://www.linuxidc.com/Linux/2014-10/108337.htm 1.什么是Sqoop Sqoop即 SQL to Hadoop ,是一款方便的在传统型数据库与Hadoop之间进行数据迁移的工具,充分利用MapReduce并行特...

强子大叔的码田
2015/12/23
1K
0
京东大数据工程师教你怎样用Sqoop

Sqoop是什么 Sqoop:SQL-to-Hadoop 连接 传统关系型数据库 和 Hadoop 的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS HBase 和 Hive) 中; 把数据从 Hadoop 系统里抽取并导出到关...

JAVA丶学习
2018/04/16
0
0
Sqoop 架构解析及Sqoop1与Sqoop2比较

概述 Sqoop是Hadoop和关系数据库服务器之间传送数据的一种工具。它是用来从关系数据库如:MySQL,Oracle到Hadoop的HDFS,并从Hadoop的文件系统导出数据到关系数据库。 传统的应用管理系统,也...

PeakFang-BOK
2018/10/12
568
0
大数据(hadoop-数据入库系统Sqoop原理架构)

Sqoop是什么 Sqoop:SQL-to-Hadoop 连接传统关系型数据库和Hadoop的桥梁 把关系型数据库的数据导入到 Hadoop 系统 ( 如 HDFS、HBase 和 Hive) 中; 把数据从 Hadoop 系统里抽取并导出到关系型...

这很耳东先生
06/17
34
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
16
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
18
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部