当前位置: 首页 > news >正文

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 目录下
通常包括了用于访问数据库表的字段、方法以及必要的数据库连接和关闭的代码。

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 参数指定如果表已存在,则覆盖它。

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 语句并显示结果。

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 表。数据字段之间用逗号分隔,行之间用换行符分隔。

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:列出可用的命令。

sqoop help

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

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。

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

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

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:列出服务器上的可用数据库。

sqoop list-databases 
--connect jdbc:mysql://localhost 
--username root --password password

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

MYSQL

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 文件路径。

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 元数据存储服务,用于保存作业和配置信息。

sqoop metastore

version:显示版本信息。

sqoop version

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • VBA学习(71):Excel VBA 访问带密码保护的Access数据库/用户窗体设置/EXCEL用户+密码登录界面(Access版)
  • vite项目配置本地开发使用https访问
  • vue3页面空白-普通函数和箭头函数提升的不同
  • 探索Python世界的趣味之旅:自制贪吃蛇游戏
  • 【Python123题库】#大学排行榜分析 #数据统计 #罗马数字转换
  • 【leetcode详解】一个小组的最大实力值【中等】
  • 如何用RoBERTa高效提取事件文本结构特征:多层次上下文建模与特征融合
  • Spring全局异常处理HandlerExceptionResolver使用
  • lambda c++/java/kotlin
  • 鸿蒙(API 12 Beta6版)图形【使用Text模块实现文本显示】方舟2D图形服务
  • 【运维监控】influxdb 2.0+telegraf 监控tomcat 8.5运行情况(1)
  • 「Python」assert 断言使用方法
  • 滚雪球学MyBatis-Plus(09):乐观锁与性能优化
  • 【js逆向专题】2.浏览器调试技巧
  • 网吧业务安全对抗(有源码)
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 08.Android之View事件问题
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Java|序列化异常StreamCorruptedException的解决方法
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • PaddlePaddle-GitHub的正确打开姿势
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • vue2.0项目引入element-ui
  • 不上全站https的网站你们就等着被恶心死吧
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 前嗅ForeSpider采集配置界面介绍
  • 实战|智能家居行业移动应用性能分析
  • 使用 @font-face
  • 使用Swoole加速Laravel(正式环境中)
  • 探索 JS 中的模块化
  • 突破自己的技术思维
  • - 转 Ext2.0 form使用实例
  • Hibernate主键生成策略及选择
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #AngularJS#$sce.trustAsResourceUrl
  • #前后端分离# 头条发布系统
  • (11)MATLAB PCA+SVM 人脸识别
  • (C语言)球球大作战
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (ibm)Java 语言的 XPath API
  • (Matlab)使用竞争神经网络实现数据聚类
  • (搬运以学习)flask 上下文的实现
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (附源码)计算机毕业设计大学生兼职系统
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (数据结构)顺序表的定义
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (一)appium-desktop定位元素原理
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)C语言家族扩展收藏 (转)C语言家族扩展