Sqoop部署和基本操作

目录

一、说明

数据导入(Import):

Sqoop可以从关系型数据库(如MySQL、PostgreSQL、Oracle等)中抽取数据,并将其导入到Hadoop的HDFS中,存储为各种格式(如文本文件、Avro、Parquet等)供后续处理和分析使用。

导入过程中,Sqoop支持将数据直接导入到Hive表中,从而方便地进行SQL查询和分析。

数据导出(Export):

Sqoop可以将Hadoop HDFS中的数据导出回关系型数据库中,使得经过处理和分析的数据能够被传统的业务系统所使用。

导出过程支持将Hive表或者HDFS中的文件数据写入到指定的关系型数据库表中。

数据同步(Synchronization):

Sqoop支持增量数据导入和导出,可以基于时间戳或主键等机制识别并同步发生变化的数据,从而减少不必要的数据传输,提高同步效率

本质上是执行MapReduce任务

二、部署

  1. 解压安装包
  2. 设置环境变量
  3. SQOOP_HOME=/root/training/sqoop-1.4.5.bin__hadoop-0.23
    export SQOOP_HOME
    PATH=$SQOOP_HOME/bin:$PATH
    export PATH

三、常用命令

codegen:生成与数据库记录交互的代码。

这个命令会生成 Java 代码,用于与 MySQL 数据库中的 tablename 表交互。生成的代码会存储在 /path/to/generated/code 目录下

通常包括了用于访问数据库表的字段、方法以及必要的数据库连接和关闭的代码。

bash 复制代码
sqoop codegen 
--connect jdbc:mysql://localhost/dbname
 --username root --password password 
 --table tablename 
 --outdir /path/to/generated/code 

create-hive-table:根据关系型数据库表结构创建Hive的表结构

这个命令会在 Hive 中创建一个名为 hivetablename 的表,其结构与 MySQL 数据库中的 tablename 表相同。数据字段之间用逗号分隔,行之间用换行符分隔。--hive-overwrite 参数指定如果表已存在,则覆盖它。

bash 复制代码
sqoop create-hive-table 
--connect jdbc:mysql://localhost/dbname 
--username root --password password 
--table tablename --hive-table hivetablename --fields-terminated-by ',' --lines-terminated-by '\n' --hive-overwrite

eval:评估 SQL 语句并显示结果。

bash 复制代码
sqoop eval 
--connect jdbc:mysql://localhost/dbname 
--username root --password password 
--query 'SELECT * FROM tablename WHERE id = 1'

export:将 HDFS导出到数据库表中。

这个命令会将 HDFS 目录 /path/to/hdfs/data 中的数据导出到 MySQL 数据库中的 tablename 表。数据字段之间用逗号分隔,行之间用换行符分隔。

bash 复制代码
sqoop export 
--connect jdbc:mysql://localhost/dbname 
--username root --password password 
--table tablename --export-dir /path/to/hdfs/data --input-fields-terminated-by ',' --input-lines-terminated-by '\n'

help:列出可用的命令。

bash 复制代码
sqoop help

import:从数据库导入表到 HDFS。

这个命令会将 MySQL 数据库中的 tablename 表导入到 HDFS 的 /path/to/hdfs/target 目录。columns参数表示只导入SAL这个列

bash 复制代码
sqoop import 
--connect jdbc:mysql://localhost/dbname 
--username root --password password 
--table tablename 
--columns SAL
--target-dir /path/to/hdfs/target 

import-all-tables:从数据库导入所有表到 HDFS。

bash 复制代码
sqoop import-all-tables 
--connect jdbc:mysql://localhost/dbname 
--username root --password password 
--target-dir /path/to/hdfs/target

job:管理与保存的作业。

这两个命令分别用于创建和执行一个名为 myjob 的保存作业。作业包含了一个从 MySQL 数据库导入表到 HDFS 的任务。

bash 复制代码
sqoop job 
--create myjob 
-- import 
--connect jdbc:mysql://localhost/dbname 
--username root --password password --table tablename --target-dir/path/to/hdfs/target  
sqoop job 
--exec myjob

list-databases:列出服务器上的可用数据库。

bash 复制代码
sqoop list-databases 
--connect jdbc:mysql://localhost 
--username root --password password

list-tables:列出数据库中的可用表。

MYSQL

bash 复制代码
sqoop list-tables 
--connect jdbc:mysql://localhost/dbname 
--username root --password password

merge:合并增量导入的结果。

这个命令会将 HDFS 目录 /path/to/hdfs/newdata 中的新数据与 /path/to/hdfs/existingdata 中的现有数据合并,并将结果存储在 /path/to/hdfs/mergeddata 目录中。需要指定包含合并逻辑的 Java 类名和 JAR 文件路径。

bash 复制代码
sqoop merge 
--class-name MyClassName 
--jar-file /path/to/myjar.jar 
--new-data /path/to/hdfs/newdata 
--onto /path/to/hdfs/existingdata 
--target-dir /path/to/hdfs/mergeddata

metastore:运行一个独立的 Sqoop 元数据存储。

这个命令会启动一个独立的 Sqoop 元数据存储服务,用于保存作业和配置信息。

bash 复制代码
sqoop metastore

version:显示版本信息。

bash 复制代码
sqoop version
相关推荐
Q26433650233 小时前
【有源码】基于Hadoop+Spark的起点小说网大数据可视化分析系统-基于Python大数据生态的网络文学数据挖掘与可视化系统
大数据·hadoop·python·信息可视化·数据分析·spark·毕业设计
yumgpkpm12 小时前
CMP(类Cloudera CDP 7.3 404版华为泰山Kunpeng)和Apache Doris的对比
大数据·hive·hadoop·spark·apache·hbase·cloudera
yumgpkpm2 天前
Doris 并入CMP7(类Cloudera CDP 7.3.1 404华为鲲鹏ARM版)的方案和实施源代码
大数据·oracle·sqlite·sqoop·milvus·cloudera
yumgpkpm2 天前
Doris在CMP7(类Cloudera CDP 7 404版华为Kunpeng)启用 Kerberos部署Doris
大数据·hive·hadoop·python·oracle·flink·cloudera
数据牧羊人的成长笔记2 天前
Hadoop 分布式计算MapReduce和资源管理Yarn
hadoop·eclipse·mapreduce
新疆嘉博智选科技有限公司2 天前
Macos系统上搭建Hadoop详细过程
大数据·hadoop·分布式
计算机编程-吉哥2 天前
大数据毕业设计项目推荐 基于大数据的广西药店数据可视化分析系统 1.65w条数据【大数据毕业设计项目选题】
大数据·hadoop·毕业设计·计算机毕设·大数据毕业设计选题推荐
小湘西3 天前
在 Hive 中NULL的理解
数据仓库·hive·hadoop
牛奶咖啡133 天前
zabbix实现监控Hadoop、Docker、SSL证书过期时间应用的保姆级实操流程
hadoop·zabbix·docker-ce引擎安装·监控docker容器·监控ssl证书的过期时间·监控hadoop·安装配置agent2
小鹿学程序3 天前
搭建hadoop集群
大数据·hadoop·分布式