专栏首页Albert陈凯Hadoop数据分析平台实战——160Sqoop介绍离线数据分析平台实战——160Sqoop介绍

Hadoop数据分析平台实战——160Sqoop介绍离线数据分析平台实战——160Sqoop介绍

离线数据分析平台实战——160Sqoop介绍

Sqoop介绍

Apache Sqoop(SQL-to-Hadoop) 是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 一般情况下,是将数据分析的结果导出到关系型数据库中,供其他部门使用。 Sqoop成立于2009年,刚开始是作为hadoop的一个模块而存在的,不过后来为了更好的进行部署使用,成为apache基金会组织的一个项目。 Sqoop专门为大数据而设计,可以通过分割数据集来启动多个mapreduce程序来处理每个数据块。

image.png

Sqoop安装步骤

Sqoop选择版本sqoop-1.4.5-cdh5.3.6,安装步骤如下:

  1. 下载:wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.5-cdh5.3.6.tar.gz
  2. 解压,sqoop根目录为:~/bigdater/sqoop-1.4.5-cdh5.3.6
  3. 复制相关的依赖包到lib文件夹中。
  4. 修改conf/sqoop-env.sh文件。
  5. 添加sqoop常量到用户环境变量中去。
  6. 测试是否安装成功。

Sqoop安装截图

image.png

image.png

Sqoop命令介绍

Sqoop总共有14个命令,包括:codegen,create-hive-table, eval, export, help, import, import-all-tables, import-mainframe, job, list-databases, list-tables, merge, metastore, version。其中常用命令为create-hive-table, export, import, help等。

sqoop命令格式: sqoop <command> <generic-options> <command-options>,也就是说sqoop的所有命令有公用的参数列表,除此之外每个命令都有自己特定的执行参数。

help命令

help命令主要作用是查看sqoop提供的帮助信息, 命令格式如下: sqoop help [<command>]。

help后面的参数为sqoop支持的命令名称。 如果不给定help后面的参数,那么表示显示sqoop命令的帮助信息,如果给定后面的参数,那么表示显示具体sqoop命令的帮助信息。 实例:

  1. sqoop help
  2. sqoop help list-tables

list-tables&list-databases命令

list-tables和list-databases两个命令都是针对关系型数据库(可以通过jdbc连接的数据库/数据仓库)而言的,我们一般可以通过该命令查看对应数据库中的table&database的列表。 基本命令格式为: sqoop (list-tables|list-databases) --connect jdbc_url --username user_name --password user_pwd 实例: sqoop list-tables --connect jdbc:mysql://hh:3306/hive --username hive --password hive sqoop list-databases --connect jdbc:mysql://hh:3306/hive --username hive --password hive

create-hive-table命令

create-hive-table命令根据关系型数据库中的表创建hive表,不进行数据的copy,只进行表结构的copy。如果hive中存在要创建的表,默认情况下不进行任何操作。 命令格式: sqoop create-hive-table --connect jdbc_url --username db_name --password db_pwd --table db_table_name --hive-table hive_table_name 实例: sqoop create-hive-table --connect jdbc:mysql://hh:3306/test --username hive --password hive --table test --hive-table hivetest

import命令

import命令的主要作用是将关系型数据库中的数据导入到hdfs文件系统中(或者hbase/hive中),不管是导入到hbase还是导入到hive中,都需要先导入到hdfs中,然后再导入到最终的位置。 一般情况下,只会采用将关系型数据库的数据导入到hdfs或者hive中,不会导入到hbase中。 import命令导入到hdfs中默认采用','进行分割字段值,导入到hive中默认采用'\u0001'来进行分割字段值,如果有特殊的分割方式,我们可以通过参数指定。 import命令导入到hive的时候,会先在/user/${user.name}/文件夹下创建一个同关系型数据库表名的一个文件夹作为中转文件夹,如果该文件夹存在,则报错。 可以通过命令sqoop help import查看import命令的帮助信息。

import案例

案例1:将mysql表test中的数据导入hive的hivetest表,hive的hivetest表不存在。 案例2:在案例1的基础上,分别进行overwrite导入和into导入。 案例3:在案例2的基础上,通过增加mysql的test表数据,增量导入到hive表中。 案例4:将test表中的数据导出到使用','分割字段的hive表中。 案例5:将test表的数据导入到hdfs中。 案例6:在案例4的基础上,增量导出数据到hdfs中。

export命令

export命令的主要作用是将hdfs文件数据导入到关系型数据库中,不支持从hive和hbase中导出数据,但是由于hive的底层就是hdfs的一个基本文件,所以可以将hive导出数据转换为从hdfs导出数据。 导出数据的时候,默认字段分割方式是',',所以如果hive的字段分割不是',',那么就需要设计成对应格式的分割符号。 可以通过命令:sqoop help export查看export命令的详细参数使用方式&各个参数的含义。 注意:前提条件,关系型数据库中目的表已经存在。

export案例

案例1:将hdfs上的文件导出到关系型数据库test2表中。 案例2:将hive表数据导出到关系型数据库test2表中(使用insertOrUpdate方法导入)。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • P03_Hive 安装

    安装hive包 [CDH下载地址](http://archive.cloudera.com/cdh5/cdh/5/) 1、将hive-0.13.1-cdh5.3...

    Albert陈凯
  • Hadoop数据分析平台实战——110Hive介绍和Hive环境搭建离线数据分析平台实战——110Hive介绍和Hive环境搭建

    离线数据分析平台实战——110Hive介绍和Hive环境搭建 Hive介绍 Hive是构建在Hadoop之上的数据仓库平台,设计目标就是将hadoop上的数据操...

    Albert陈凯
  • Hadoop数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过)离线数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过)

    离线数据分析平台实战——120Hive Shell命令介绍 01(熟悉Hive略过) Hive服务介绍 Hive默认提供的cli(shell)服务,如果需要启动...

    Albert陈凯
  • Hive参数调优

      大多数的Hadoop Job是需要Hadoop提供的完整的可扩展性来处理大数据集的。不过,有时Hive的输入数据量是非常小的。在这种情况下,为查询触发执行任...

    挽风
  • 在 Kubernetes 读取 Vault 中的机密信息

    在 Kubernetes 中,我们通常会使用 Secret 对象来保存密码、证书等机密内容,然而 kubeadm 缺省部署的情况下,Secret 内容是用明文方...

    崔秀龙
  • ISE14.7 和 PlanAhead 与 win8/10 系统的兼容性问题解决方案

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。...

    FPGA技术江湖
  • jquery和vue.js的区别

    1.jQuery首先要获取到dom对象,然后对dom对象进行进行值的修改等操作 2.Vue是首先把值和js对象进行绑定,然后修改js对象的值,Vue框架就会自动...

    梦_之_旅
  • 中年架构师,悲催的一天!

    主人公:大刘/某伪大厂架构师/35+,东北大汉,身高180,体重180,没有其他180了。

    macrozheng
  • IDEA 配置 maven 完美解决方案

    很久之前就配置的maven,最近使用的时候又出现问题了,我把项目用 IDEA 打开,打算使用 maven 将我需要的依赖自动导入,但是它一直卡在那里,加载了半天...

    wsuo
  • 基于大数据的客户关系管理

    利率市场化改革、宏观经济新常态、互联网金融和大数据时代的来临正从经营环境和商业模式两个维度彻底颠覆着商业银行赖以生存发展的生态环境。可以预期,内外部经营环境的变...

    华章科技

扫码关注云+社区

领取腾讯云代金券