sqoop导入关系型数据库-解密Sqoop

Sqoop作为Hadoop与传统数据库之间的桥梁,对于数据的导入导出有着重要作用。通过对Sqoop基本语法以及功能的阐述,深刻解密Sqoop的作用和价值。

 一、什么是Apache Sqoop?

Cloudera开发的Apache开源项目,是SQL-to-Hadoop的缩写。主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如: MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。在导入数据的时候,既可以导入整个数据库,也可以导入单个表、所有表或表的部分数据到HDFS,在导入数据的同时可以导成各种格式。除此之外,Sqoop可以从HDFS导出数据到数据库,所以sqoop它拥有双向的作用。

二、Sqoop如何工作?

Sqoop工作也是基于计算框架MapReduce,MapReduce会把提交的SQL导数转换成MapReduce作业,然后提交到集群。总体来说分成三个步骤:

1、检查表详情

2、创建和提交作业到集群

3、获取表记录并写入数据到HDFS

三、基本语法:

Sqoop是一个带很多子命令的命令行工具,有很多用来导入、导出、列出数据库内容等工具。通常我们先列出数据库有哪些表,然后再去导相应的表。如果想要去看sqoop所有的工具,可以运行sqoop help来查看所有工具列表,在这里也建议大家习惯使用help,去查找一些使用参数。另外,也可以运行sqoop help tool-name来查看特定工具的帮助(如import,export)。

Sqoop调用的基本语法

四、使用Sqoop探索数据库:

通常在导数据之前我们先要探索一下数据库,去了解数据库里面都有哪些表,一般有两种方式:

1、List-tables:列出所有MySQL中loudacre数据库的表

2.eval:执行数据库查询

Sqoop作为Hadoop家族重要的一员,我们需要着重认知和把握,对于我们了解和学习大数据有着重要的帮助。平常大家也可以关注一些大数据的资讯,了解大数据发展的趋势和一些行业经典案例。尤其是现在网络媒体兴盛,信息传播迅速,比如微信服务号,我自己平时就喜欢从上面找一些案例,像大数据cn就很不错。但是技术永远都是有门槛的,只有不断学习交流才可以不断进步,最近我在大数据时代学习中心这个服务号也学到了一些其他人分享的经验,对于我个人帮助也很大。

时间: 2024-07-30 03:09:29

sqoop导入关系型数据库-解密Sqoop的相关文章

Sqoop2入门之导入关系型数据库数据到HDFS上(sqoop2-1.99.4版本)

sqoop2-1.99.4和sqoop2-1.99.3版本操作略有不同:新版本中使用link代替了老版本的connection,其他使用类似. sqoop2-1.99.4环境搭建参见:Sqoop2环境搭建 sqoop2-1.99.3版本实现参见:Sqoop2入门之导入关系型数据库数据到HDFS上 启动sqoop2-1.99.4版本客户端: $SQOOP2_HOME/bin/sqoop.sh client set server --host hadoop000 --port 12000 --web

使用sqoop 在关系型数据库和Hadoop之间实现数据的抽取

(一)从关系型数据库导入至HDFS 1.将下面的参数保持为 import.script import --connectjdbc:mysql://192.168.1.14:3306/test--username root--password 1234 -m1--null-string''--table user--columns "id,username,age"--target-dir/user/root/sqoop_test  -- 此目录不能存在 2. 执行sqoop --opt

sqoop实现关系型数据库与hadoop之间的数据传递-import篇

由于业务数据量日益增长,计算量非常庞大,传统的数仓已经无法满足计算需求了,所以现在基本上都是将数据放到hadoop平台去实现逻辑计算,那么就涉及到如何将oracle数仓的数据迁移到hadoop平台的问题. 这里就不得不提到一个很实用的工具--sqoop,它是一款开源的工具,主要用于实现关系型数据库与hadoop中hdfs之间的数据传递,其中用的最多的就是import,export了. sqoop的安装配置也是非常简单的,这里就不说明了,本文主要针对如何使用sqoop实现oracle到hive(h

SQOOP导入mysql数据库乱码

一.mysql中的编码 mysql> show variables like 'collation_%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | latin1_swedish_ci | | collation_database | latin1_swedi

Sqoop2入门之导入关系型数据库数据到HDFS上

需求:将hive数据库中的TBLS表导出到HDFS之上: $SQOOP2_HOME/bin/sqoop.sh client sqoop:000> set server --host hadoop000 --port 12000 --webapp sqoop Server is set successfully 创建connection: sqoop:000> create connection --cid 1 Creating connection for connector with id

关系型数据库导入导出绝招出炉

Sqoop作为数据传输的工具,对于Hadoop与传统数据库之间数据的传输起着桥梁作用,那么到底如何导入导出数据呢? 第一:使用MapReduce作业来执行导入: (1)Sqoop首先检查将要导入的表 1.确定主键(如果有的话),调用mapreduce,根据主键分割map 2.没有主键,运行边界查询确定导入的记录数(找到一个min和一个max,确定边界进行划分) 3.通过任务数来划分边界查询的结果,使得他们有相同的负载 (2)Sqoop为每个将导入的表生成Java源文件 1.在导入过程中编译和使用

Sqoop导入导出的几个例子

Sqoop导入导出的几个例子 http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html#_importing_data_into_hive node2 Sqoop参数介绍_其他命令_导入导出 导入 例一:从DBMS到HDFS 1.node4下启动mysql service mysqld start mysql -u root -p 输入密码:123   2.node4下创建test数据库 create database test; 创建psn表

解决sqoop导入关系库更新联合主键的问题

[Author]: kwu sqoop导入关系库更新联合主键的问题,把数据从hive中导入关系库,如果关系库表有联合主键的情况,且需要把新导入的数据更新原来的数据. 1.创建关系库表 CREATE TABLE test123 ( id INT NOT NULL, name VARCHAR(25) NOT NULL, age INT, PRIMARY KEY (id, name) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 2.创建hive表 drop table d

使用sqoop将MySQL数据库中的数据导入Hbase

使用sqoop将MySQL数据库中的数据导入Hbase 前提:安装好 sqoop.hbase. 下载jbdc驱动:mysql-connector-java-5.1.10.jar 将 mysql-connector-java-5.1.10.jar 拷贝到 /usr/lib/sqoop/lib/ 下 MySQL导入HBase命令: sqoop import --connect jdbc:mysql://10.10.97.116:3306/rsearch --table researchers --h