您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页Hadoop之Sqoop详解

Hadoop之Sqoop详解

来源:华佗小知识

sqoop数据迁移
1简介
  sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
  导入数据:MySQL,Oracle导入数据到Hadoop的HDFS、HIVE、HBASE等数据存储系统;
  导出数据:从Hadoop的文件系统中导出数据到关系数据库

2工作机制
  将导入或导出命令翻译成mapreduce程序来实现
  在翻译出的mapreduce中主要是对inputformat和outputformat进行定制

3Sqoop的数据导入
  “导入工具”导入单个表从RDBMS到HDFS。表中的每一行被视为HDFS的记录。所有记录都存储为文本文件
  的文本数据(或者Avro、sequence文件等二进制数据)


4、语法
  下面的语法用于将数据导入HDFS。
    $ sqoop import (generic-args) (import-args)

5、导入表表数据到HDFS
  下面的命令用于从MySQL数据库服务器中的emp表导入HDFS。
  $bin/sqoop import \
  --connect jdbc:mysql://hdp-node-01:3306/test \
  --username root \
  --password root \
  --table emp --m 1

  为了验证在HDFS导入的数据,请使用以下命令查看导入的数据
  $ $HADOOP_HOME/bin/hadoop fs -cat /user/hadoop/emp/part-m-00000

  它会用逗号(,)分隔emp_add表的数据和字段。
  1201, 288A, vgiri, jublee
  1202, 108I, aoc, sec-bad
  1203, 144Z, pgutta, hyd
  1204, 78B, oldcity, sec-bad
  1205, 720C, hitech, sec-bad

  导入表数据子集

  增量导入


6、Sqoop的数据导出
  将数据从HDFS导出到RDBMS数据库
  导出前,目标表必须存在于目标数据库中。
  #默认操作是从将文件中的数据使用INSERT语句插入到表中
  #更新模式下,是生成UPDATE语句更新表数据
  语法
  以下是export命令语法。
    $ sqoop export (generic-args) (export-args)

  1、首先需要手动创建mysql中的目标表
    $ mysql
    mysql> USE db;
    mysql> CREATE TABLE employee (
      id INT NOT NULL PRIMARY KEY,
      name VARCHAR(20),
      deg VARCHAR(20),
      salary INT,
      dept VARCHAR(10));

  2、然后执行导出命令
    bin/sqoop export \
    --connect jdbc:mysql://hdp-node-01:3306/test \
    --username root \
    --password root \
    --table emp2 \
    --export-dir /user/hadoop/emp/

  3、验证表mysql命令行。
    mysql>select * from employee;
    如果给定的数据存储成功,那么可以找到数据在如下的employee表。

7、Sqoop的原理
  概述
    Sqoop的原理其实就是将导入导出命令转化为mapreduce程序来执行,sqoop在接收到命令后,都要生成mapreduce程序

    使用sqoop的代码生成工具可以方便查看到sqoop所生成的java代码,并可在此基础之上进行深入定制开发

 

转载于:https://www.cnblogs.com/atomicbomb/p/9904935.html

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务