Sqoop学习笔记

数据转移工具Sqoop

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Apache框架Hadoop是一个越来越通用的分布式计算环境,主要用来处理大数据。随着云提供商利用这个框架,更多的用户将数据集在Hadoop和传统数据库之间转移,Sqoop这个帮助数据传输的工具变得更加重要。

在这里插入图片描述
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(Mysql、Oracle…)间进行数据的传递,可以将一个关系型数据库中的数据导入到Hadoop的HDFS中,也可以将HDFS的数据导入到关系型数据库中。

特点:

  • 可导入单个或者所有数据库中的表格
  • 可以通过WHERE指定导入的行 列
  • 可以提供任意的SELECT语句
  • 可以自动生成一个Hive表格, 根据输入的数据
  • 可以支持增长性的数据导入
  • 可以将HDFS导出到其他数据库
  • 支持文本文件(–as-textfile)、avro(–as-avrodatafile)、SequenceFiles(–as-sequencefile)。

工作原理

Sqoop检查每一个table并且自动生成一个Java class来导入数据到HDFS

Sqoop会产生和运行一个Map-only的MapReduce job来导入数据

默认会有4个Mapper连接到RDBMS, 每一个导入1/4数据
在这里插入图片描述

Sqoop Connectors

自定义Sqoop connectors提供更高速的访问;
目前支持Netezza, Teradata, Oracle Database

Sqoop2:

在这里插入图片描述

sqoop和sqoop2的区别:

在这里插入图片描述

当HDFS有数据写入时, NameNode会把文件标记为存在, 但是size = 0
当每一份block写入后, 其他的clients会看到block
为了避免多人同时访问同一份数据, 最好是先将数据导入到一个临时目录;
当文件完全写入后, 将其一直目标文件夹(atomic操作), 因为这个操作只需要NameNode更新一下metaData, 所以也很快;
一些机构标准的注释方式:
./incoming/...
./for_processing/...
./completed/...

REST接口也可以访问HDFS
WebHDFS, HttpFS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值