sqoop的安装与简单使用

news/2024/9/25 20:54:47/

文章目录

  • 一、安装
    • 1、上传,解压,重命名
    • 2、修改环境变量
    • 3、修改配置文件
    • 4、上传驱动包
    • 5、拷贝jar包
  • 二、import命令
    • 1、将mysql的数据导入到hdfs上
    • 2、将mysql的数据导入到hive
    • 3、增量导入数据
  • 三、export命令


在这里插入图片描述

一、安装

1、上传,解压,重命名

sqoop下载地址
提起码:1234

cd /opt/modules
# 上传
# 解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/installs
# 重命名
mv /opt/modules/sqoop-1.4.7.bin__hadoop-2.6.0 /opt/modules/sqoop

2、修改环境变量

export SQOOP_HOME=/opt/installs/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

3、修改配置文件

# 重命名配置文件
mv sqoop-env-template.sh sqoop-env.sh#添加如下配置:
export HADOOP_COMMON_HOME=/opt/installs/hadoop
export HADOOP_MAPRED_HOME=/opt/installs/hadoop
export HIVE_HOME=/opt/installs/hive
export HCAT_HOME=/opt/installs/hive/hcatalog

4、上传驱动包

mysql8.0的驱动包放入 sqoop 的 lib 目录下

5、拷贝jar包

cp /opt/installs/hive/lib/commons-lang-2.6.jar /opt/installs/sqoop/lib/
cp /opt/installs/hive/lib/hive-common-3.1.2.jar /opt/installs/sqoop/lib/

二、import命令

mysqlhdfs_48">1、将mysql的数据导入到hdfs上

sqoop import  \--connect jdbc:mysql://node01:3306/数据库的名字  \--username root  \--password 123456 \--table emp \  # 有query 不用指定--target-dir /hdfs上的路径  \--delete-target-dir  \  #如果hdfs上存在该文件夹就删除--query 'select * from emp where empno < 7788 and $CONDITIONS'  \  # sqoop也支持sql语句--split-by empno  -m 1  

有query的时候sql语句中必须有$CONDITIONS、后面参数必须有split-by或者-m 1

mysqlhive_64">2、将mysql的数据导入到hive

sqoop import \--connect jdbc:mysql://node01:3306/数据库的名字 \--username root \--password 123456 \--table emp \--hive-import \--hive-overwrite \--hive-table emp \--hive-database hive数据库的名字  \-m 1

3、增量导入数据

两种方式:
1、sql语句加where条件
2、last-value

  sqoop import \--connect jdbc:mysql://node01:3306/数据库的名字\--username root \--password 123456 \--table emp \--target-dir /sqoop/dt=20240903 \-m 1 \--check-column empno \  # 必须写,指定检出的列--incremental append \  # 增量--last-value 0 \--fields-terminated-by '\t'  #指定导入数据的分隔符

三、export命令

mysql_99">1、从hdfs导出到mysql

mysql中的表需要提前创建出来

  sqoop export \--connect jdbc:mysql://node01:3306/mydb01 \--username root \--password 123456 \--table user \--export-dir '/sqoop/aaa.txt' \--input-fields-terminated-by ',' \--columns 'id,age'  \  # 指定mysql中的列,要与hdfs文件内容对应-m 1

hivemysql_114">2、从hive导出到mysql

sqoop export \
--connect jdbc:mysql://node01:3306/mydb01 \
--username root \
--password 123456 \
--table user \  # mysql的表
--hcatalog-database mydb01 \  # hive的数据库
--hcatalog-table par3 \  #hive的表
-m 1

sqoopjob_128">四、sqoop的job任务

sqoop job --create jjoobb --sqoop import \
# 编写import代码sqoop job --exec jjoobb
# 执行job任务sqoop job --delete jjoobb
# 删除job任务sqoop job --list
# 查看所有的job任务

http://www.ppmy.cn/news/1530445.html

相关文章

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-24

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-24 1. Enriching Datasets with Demographics through Large Language Models: What’s in a Name? K AlNuaimi, G Marti, M Ravaut, A AlKetbi, A Henschel… - arXiv preprint arXiv …, 2024 通过大型语言…

【Linux基础IO】深入解析Linux基础IO缓冲区机制:提升文件操作效率的关键

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;Linux “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;暂无 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀Linux基础IO &#x1f4d2;1. 什么是缓…

k8s中,服务的自动注册、自动感知、负载均衡,三个功能的含义及测试验证

自动感知&#xff0c;指的是客户端只用访问服务的ip&#xff0c;而不用关心pod在哪个节点&#xff0c;以及pod的ip是多少。 服务可以自动感知pod的位置及ip&#xff0c;核心是通过selector标签选择器找到pod 自动注册&#xff0c;指的是服务创建之后&#xff0c;会自动在k8s的…

高效音频格式转换实战:使用Python和FFmpeg处理MP3到WAV的转换20240918

高效音频格式转换实战&#xff1a;使用Python和FFmpeg处理MP3到WAV的转换 引言 在现代音频处理工作中&#xff0c;音频文件格式的转换已成为日常操作之一。无论是为了兼容不同设备&#xff0c;还是进行更高质量的音频编辑&#xff0c;掌握如何快速、准确地转换音频格式是必不…

pg入门5—pg有哪些系统schema

在 PostgreSQL 中&#xff0c;除了用户创建的 schema 之外&#xff0c;系统还自动创建了一些系统 schema&#xff0c;用于管理数据库的元数据、系统信息以及维护操作。以下是 PostgreSQL 中的常见系统 schema&#xff1a; 1. pg_catalog 用途&#xff1a;pg_catalog 是 Postg…

「JavaScript深入」一文说明白JS的执行上下文与作用域

JavaScript深入 — 执行上下文与作用域 上下文执行上下文生命周期创建阶段执行阶段回收阶段 执行栈作用域链作用域词法作用域&#xff08;静态作用域&#xff09; 上下文 变量或函数的上下文决定了它们可以访问哪些数据&#xff0c;以及它们的行为。 每个上下文都有一个关联的…

vuex和redux的区别

Vuex和Redux是两个流行的JavaScript状态管理库&#xff0c;它们各自有着独特的特点和适用场景。以下是它们之间的一些主要区别&#xff1a; 1. 设计初衷与生态系统 Vuex&#xff1a;专为Vue.js框架设计&#xff0c;与Vue.js的概念和语法紧密集成。因此&#xff0c;在Vue社区中…

macOS平台编译libidn2库给iOS及macOS用

1.克隆源码: git clone https://gitlab.com/libidn/libidn2.git --recursive 2.安装依赖库: pkg-config也要安装 3.启动bootstrap生成configure 配置成功 configure生成成功