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

Sqoop的安装配置及使用

Sqoop安装前需要检查之前是否安装了Tez,否则会产生版本或依赖冲突,我们需要移除tez-site.xml,并将hadoop中的mapred-site.xml配置文件中的mapreduce驱动改回成yarn,然后分发到其他节点,hive里面配置的tez也要移除,然后重启hive元数据

Sqoop的安装:

#上传解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /usr/local/soft/#配置环境变量
vim /etc/profileexport SQOOP_HOME=/usr/local/soft/sqoop-1.4.7/
export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile# 切换到sqoop配置文件目录
cd /usr/local/soft/sqoop-1.4.7/conf
# 复制配置文件并重命名
cp sqoop-env-template.sh sqoop-env.sh
# vim sqoop-env.sh 编辑配置文件,并加入以下内容export HADOOP_COMMON_HOME=/usr/local/soft/hadoop-3.1.1
export HADOOP_MAPRED_HOME=/usr/local/soft/hadoop-3.1.1
export HIVE_HOME=/usr/local/soft/hive-3.1.3
export HIVE_CONF_DIR=/usr/local/soft/hive-3.1.3/conf
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
export HBASE_HOME=/usr/local/soft/hbase-2.2.7
export ZOOCFGDIR=/usr/local/soft/zookeeper-3.8.4/conf
export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.8.4# 切换到bin目录
cd /usr/local/soft/sqoop-1.4.7/bin
# vim configure-sqoop 修改配置文件,注释掉没用的内容(就是为了去掉警告信息)

 注释警告信息

安装成功

sqoop version

 

Sqoop的使用:

Sqoop基于MapReduce,必须先启动hadoop才能使用

添加Mysql的驱动连接

# 从HIVE中复制MySQL连接驱动到$SQOOP_HOME/lib
cp /usr/local/soft/hive-1.2.1/lib/mysql-connector-java-5.1.49.jar /usr/local/soft/sqoop-1.4.7/lib/# 测试MySQL连通性
sqoop list-databases -connect jdbc:mysql://master:3306?useSSL=false -username root -password 123456

准备MySQL数据

1、登录MySQL数据库
mysql -u root -p123456;
2、创建student数据库
create database student;
3、切换数据库并导入数据
# mysql shell中执行
use student;
source /root/student.sql;
source /root/score.sql;
4、另外一种导入数据的方式
# linux shell中执行
mysql -u root -p123456 student</root/student.sql
mysql -u root -p123456 student</root/score.sql
5、使用Navicat运行SQL文件

         使用navicat导入文件

6、导出MySQL数据库
mysqldump -u root -p123456 数据库名>任意一个文件名.sql
7、import

从传统的关系型数据库导入HDFS、HIVE、HBASE......


MySQLToHDFS

编写脚本,保存为MySQLToHDFS.conf

import
--connect
jdbc:mysql://master:3306/bigdata31?useSSL=false
--username
root
--password
123456
--table
students
--m
2
--split-by
id
--target-dir
/data/students_sqoop
--fields-terminated-by
','
执行脚本
sqoop --options-file MySQLToHDFS.conf
注意事项:

1、--m 表示指定生成多少个Map任务,不是越多越好,因为MySQL Server的承载能力有限

2、当指定的Map任务数>1,那么需要结合--split-by参数,指定分割键,以确定每个map任务到底读取哪一部分数据,最好指定数值型的列,最好指定主键(或者分布均匀的列=>避免每个map任务处理的数据量差别过大)

3、如果指定的分割键数据分布不均,可能导致数据倾斜问题

4、分割的键最好指定数值型的,而且字段的类型为int、bigint这样的数值型

5、编写脚本的时候,注意:例如:--username参数,参数值不能和参数名同一行

--username root  // 错误的// 应该分成两行
--username
root

6、实际上sqoop在读取mysql数据的时候,用的是JDBC的方式,所以当数据量大的时候,效率不是很高

7、sqoop底层通过MapReduce完成数据导入导出,只需要Map任务,不需要Reduce任务

8、每个Map任务会生成一个文件

MySQLToHive

先会将MySQL的数据导出来并在HDFS上找个目录临时存放,默认为:/user/用户名/表名

然后再将数据加载到Hive中,加载完成后,会将临时存放的目录删除

编写脚本,并保存为MySQLToHIVE.conf文件

import 
--connect
jdbc:mysql://master:3306/bigdata31?useSSL=false
--username
root
--password
123456
--table
students
--fields-terminated-by
","
--lines-terminated-by 
"\n"
--m
3
--split-by
id
--hive-import
--hive-overwrite
--create-hive-table
--hive-database
default
--hive-table
students_hive
--delete-target-dir
--direct
将HADOOP_CLASSPATH加入环境变量中
vim /etc/profile
# 加入如下内容
export HADOOP_CLASSPATH=$HADOOP_HOME/lib:$HIVE_HOME/lib/*# 重新加载环境变量
source /etc/profile
将hive-site.xml放入SQOOP_HOME/conf/
cp /usr/local/soft/hive-3.1.3/conf/hive-site.xml /usr/local/soft/sqoop-1.4.7/conf/
--direct

加上这个参数,可以在导出MySQL数据的时候,使用MySQL提供的导出工具mysqldump,加快导出速度,提高效率,需要将master上的/usr/bin/mysqldump分发至 node1、node2的/usr/bin目录下

#分发
scp /usr/bin/mysqldump node1:/usr/bin/
scp /usr/bin/mysqldump node2:/usr/bin/
-e参数的使用
import 
--connect 
jdbc:mysql://master:3306/bigdata31 
--username 
root 
--password 
123456 
--fields-terminated-by 
"\t" 
--lines-terminated-by 
"\n" 
--m 
2 
--split-by 
id 
--e 
"select id,name,age,gender,clazz from students where $CONDITIONS" 
--hive-import 
--hive-overwrite 
--create-hive-table 
--hive-database 
default 
--hive-table 
students_hive1
--target-dir
/data/students_hive1

MySQLToHBase

编写脚本,并保存为MySQLToHBase.conf

import 
--connect 
jdbc:mysql://master:3306/bigdata31?useSSL=false
--username 
root 
--password 
123456
--table 
students
--hbase-table 
students_sqoop
--hbase-create-table
--hbase-row-key 
id 
--m 
1
--column-family 
info

在HBase中创建student表
create 'students_sqoop','info'
执行脚本
sqoop --options-file MySQLToHBase.conf

export

HDFSToMySQL

编写脚本,并保存为HDFSToMySQL.conf

export
--connect
jdbc:mysql://master:3306/bigdata31?useSSL=false
--username
root
--password
123456
--table
students_sqoop
-m
1
--columns
id,name,age,gender,clazz
--export-dir
/data/students_sqoop
--fields-terminated-by 
','

先清空MySQL student表中的数据,不然会造成主键冲突

执行脚本

sqoop --options-file HDFSToMySQL.conf

查看sqoop help

# 查看import的详细帮助
sqoop import --help
sqoop help21/04/26 15:50:36 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
usage: sqoop COMMAND [ARGS]Available commands:codegen            Generate code to interact with database recordscreate-hive-table  Import a table definition into Hiveeval               Evaluate a SQL statement and display the resultsexport             Export an HDFS directory to a database tablehelp               List available commandsimport             Import a table from a database to HDFSimport-all-tables  Import tables from a database to HDFSimport-mainframe   Import datasets from a mainframe server to HDFSjob                Work with saved jobslist-databases     List available databases on a serverlist-tables        List available tables in a databasemerge              Merge results of incremental importsmetastore          Run a standalone Sqoop metastoreversion            Display version informationSee 'sqoop help COMMAND' for information on a specific command.

相关文章:

Sqoop的安装配置及使用

Sqoop安装前需要检查之前是否安装了Tez,否则会产生版本或依赖冲突&#xff0c;我们需要移除tez-site.xml&#xff0c;并将hadoop中的mapred-site.xml配置文件中的mapreduce驱动改回成yarn&#xff0c;然后分发到其他节点&#xff0c;hive里面配置的tez也要移除&#xff0c;然后…...

R语言机器学习算法实战系列(十三)随机森林生存分析构建预后模型 (Random Survival Forest)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程加载R包案例数据数据预处理数据描述构建randomForestSRC模型评估模型C-indexBrier score特征重要性构建新的随机森林生存模型风险打分高低风险分组的生存分析时间依赖的ROC(Ti…...

三款计算服务器配置→如何选择科学计算服务器?

科学计算在众多领域都扮演着关键角色&#xff0c;无论是基础科学研究还是实际工程应用&#xff0c;强大的计算能力都是不可或缺的。而选择一台合适的科学计算服务器&#xff0c;对于确保科研和工作的顺利进行至关重要。 首先&#xff0c;明确自身需求是重中之重。要仔细考虑计算…...

Oracle 19c RAC删除多余的PDB的方式

文章目录 一、删除PDB并删除数据文件二、删除PDB并保留数据文件三、插拔PDB 一、删除PDB并删除数据文件 所删除的pdb必须是mount的状态才可以删除&#xff1a; #1、关闭pdb alter pluggable database pdb_name close immediate instancesall; #2、删除pdb以及数据文件 drop p…...

什么是云渲染?云渲染有什么用?一篇看懂云渲染意思

你知道云渲染是怎么回事吗&#xff1f; 其实就是把3D模型变成2D图像的过程&#xff0c;只不过这个过程是在云端完成的。我们在本地啥都不用做&#xff0c;只需要等结果就行。 现在云渲染主要有两种类型&#xff1a;一种是物理机房云渲染&#xff0c;另一种是服务器机房云渲染。…...

MATLAB中 exist函数用法

目录 语法 说明 示例 检查工作区变量是否存在 检查文件夹是否存在 检查 MATLAB 函数是否为内置函数 exist函数的功能是检查变量、脚本、函数、文件夹或类的存在情况。 语法 exist name exist name searchType A exist(___) 说明 exist name 以数字形式返回 name 的类…...

在银河麒麟系统中Qt连接达梦数据库

解决在银河麒麟系统中使用Qt连接达梦数据库提示&#xff1a;project Error library odbc is not defined问题 一、编译ODBC 下载解压unixODBC&#xff08;http://www.unixodbc.org/unixODBC-2.3.1.tar.gz&#xff09; 打开终端&#xff0c;切换到unixODBC-2.3.1目录下&#x…...

nodejs 服务器实现负载均衡

server.js const express require(express); const { createProxyMiddleware } require(http-proxy-middleware); const axios require(axios);const app express();// 定义后端服务列表 const services [{ target: http://localhost:3001 },{ target: http://localhost:…...

今日总结10.29

常见序列化协议有哪些 序列化&#xff08;serialization&#xff09;是将对象序列化为二进制形式&#xff08;字节数组&#xff09;&#xff0c;一般也将序列化称为编码&#xff08;Encode&#xff09;&#xff0c;主要用于网络传输、数据持久化等。常见的序列化协议包括以下几…...

使用 FastGPT 工作流实现 AI 赛博算卦,一键生成卦象图

最近那个男人写的汉语新解火遍了全网&#xff0c;那个男人叫李继刚&#xff0c;国内玩 AI 的同学如果不知道这个名字&#xff0c;可以去面壁思过了。 这个汉语新解的神奇之处就在于它只是一段几百字的提示词&#xff0c;效果却顶得上几千行代码写出来的应用程序。 这段提示词…...

vue3+ts实时播放视频,视频分屏

使用vue3以及播放视频组件Jessibuca Jessibuca地址 使用循环个数来实现分屏 效果图&#xff0c;四屏 九屏 dom代码 <div class"icon"><div class"icon-box"><span class"text">分屏&#xff1a;</span><el-icon …...

【网页设计】学成在线案例

Demo 典型的企业级网站&#xff0c;目的是为了整体感知企业级网站的布局流程&#xff0c;复习以前知识。 集合代码见文章最后。 5.1 准备素材和工具 学成在线 PSD 源文件。开发工具 PS&#xff08;切图&#xff09; sublime&#xff08;代码&#xff09; chrome&#xff0…...

一篇文章总结 SQL 基础知识点

1. 官方文档 MySQL&#xff1a;https://dev.mysql.com/doc/refman/8.4/en/ SQL Server&#xff1a;What is SQL Server? - SQL Server | Microsoft Learn Oracle&#xff1a;https://docs.oracle.com/en/database/oracle/oracle-database/23/lnpls/loe.html 2. 术语 SQL S…...

vue Element U 解决表格数据不更新问题

最近在使用 Vue 和 Element UI 开发后台管理系统时&#xff0c;操作表单数据重新请求表格接口后遇到表格数据不更新的问题。后面查阅了些资料&#xff0c;这通常是由于 Vue 的响应式系统没有检测到数据的变化&#xff0c;或者数据更新后没有正确地触发视图的重新渲染。以下是一…...

PeView 命令行PE文件解析工具

PeView 是一款基于C/C开发的命令行版PE文件解析工具&#xff0c;专门用于解析Windows可执行文件并提供详尽的文件结构和交互式查询功能&#xff0c;帮助用户理解和分析目标程序的内部构成&#xff0c;是逆向分析和软件调试中的重要工具&#xff0c;本次分享工具源代码及使用方法…...

微信小程序25__实现卡片变换

先看效果图 实现代码如下&#xff1a; <view class"page" style"filter:hue-rotate({{rotation}}deg)"><view class"prev" catchtap"toPrev">《《《</view><view class"next" catchtap"toNext&q…...

使用Git进行团队协作开发

使用Git进行团队协作开发 Git简介 安装Git 在Windows上安装Git 在macOS上安装Git 在Linux上安装Git 设置Git用户信息 创建Git仓库 基本Git命令 添加文件 提交更改 查看状态 克隆仓库 推送更改 获取更改 分支管理 创建分支 切换分支 合并分支 删除分支 解决合并冲突 检查冲突…...

期货跟单、量化交易模拟演示系统

一、跟单下单 在“排行榜”中选择要跟单的用户&#xff0c;合约可以跟全部&#xff0c;也可以指定跟该用户的某一合约操作&#xff0c;选定跟单的倍数&#xff08;操作手数的倍数&#xff09;/手数&#xff08;指定手数&#xff0c;可以不是对方的倍数&#xff09;&#xff0c;…...

Python小白学习教程从入门到入坑------第十八课 异常模块与包【下】(语法基础)

一、内置全局变量__name__ 在Python中&#xff0c;有一些内置的全局变量和特殊变量&#xff0c;它们是由Python解释器预定义的&#xff0c;可以在代码的任何地方直接使用。 这些变量通常用于提供关于当前解释器状态的信息&#xff0c;或者用于控制解释器的行为 在Python中&a…...

arcgis pro 3.3.1安装教程

一、获取方式&#xff1a; http://dt4.8tupian.net/2/29913a61b1500.pg3二、软件目录&#xff1a; 三、安装步骤&#xff1a; &#xff08;1&#xff09;安装软件运行环境windowsdesktop-runtime 8.0.4; &#xff08;2&#xff09;选中安装文件arcgispro_33zh_cn_190127.exe&…...

构建第二大脑的实战框架:Obsidian模板如何实现知识管理效率倍增

构建第二大脑的实战框架&#xff1a;Obsidian模板如何实现知识管理效率倍增 【免费下载链接】obsidian-template Starter templates for Obsidian 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-template 在信息过载的时代&#xff0c;知识工作者面临的核心挑战…...

告别环境报错!保姆级教程:从JRE到STM32CubeMX 6.10.0的完整安装与配置

从零搭建STM32开发环境&#xff1a;CubeMX 6.10.0避坑全指南 刚拿到STM32开发板时的兴奋&#xff0c;往往在环境配置阶段就被各种报错消磨殆尽。作为过来人&#xff0c;我深刻理解那种看着红色错误提示却无从下手的挫败感。本文将带你用最稳妥的方式完成从Java环境到CubeMX的全…...

APK安装器完整指南:在Windows上轻松安装安卓应用的终极方案

APK安装器完整指南&#xff1a;在Windows上轻松安装安卓应用的终极方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否想在Windows电脑上直接运行手机应用&…...

Windows APK安装工具终极指南:轻松在电脑上安装Android应用

Windows APK安装工具终极指南&#xff1a;轻松在电脑上安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 您是否曾经希望在Windows电脑上直接安装Android…...

如何在Blender中实现工程级精确建模:CAD_Sketcher完全指南 [特殊字符]

如何在Blender中实现工程级精确建模&#xff1a;CAD_Sketcher完全指南 &#x1f680; 【免费下载链接】CAD_Sketcher Constraint-based geometry sketcher for blender 项目地址: https://gitcode.com/gh_mirrors/ca/CAD_Sketcher 你是否曾经在Blender中尝试创建精确的机…...

国产能量阀品牌推荐

在国产能量阀品牌中&#xff0c;天津水阀机械有限公司&#xff08;简称“天津水阀”&#xff09;无疑是一颗耀眼的明星。它以卓越的产品品质、先进的技术和广泛的应用案例&#xff0c;在行业内树立了良好的口碑。下面&#xff0c;让我们深入了解一下这个值得推荐的品牌。 一、…...

傅里叶变换加速视觉模型:频域卷积与FiT架构实战

1. 项目概述&#xff1a;用傅里叶变换为视觉模型“减负”在计算机视觉的模型炼金术里&#xff0c;我们总在追求一个看似矛盾的平衡&#xff1a;既要模型“看得更清”&#xff08;更高的精度和更强的特征提取能力&#xff09;&#xff0c;又要它“跑得更快”&#xff08;更低的计…...

AI编码助手技能开发:基于Agent Skills打造智能命令行速查工具

1. 项目概述&#xff1a;一个能“听懂人话”的开发者命令行技能如果你和我一样&#xff0c;每天在终端和代码编辑器里花费大量时间&#xff0c;那你肯定对“命令遗忘症”深有体会。明明上周才用过git worktree来并行处理两个功能分支&#xff0c;今天突然想不起来具体的参数顺序…...

5分钟搞定Windows风扇控制:FanControl让你的电脑散热更智能更安静

5分钟搞定Windows风扇控制&#xff1a;FanControl让你的电脑散热更智能更安静 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…...

无人机雷达与LiDAR协同监测土壤湿度技术解析

1. 无人机雷达与LiDAR协同监测土壤湿度的技术原理在精准农业领域&#xff0c;土壤湿度监测一直面临着植被遮挡带来的技术挑战。传统的地面传感器网络虽然精度较高&#xff0c;但存在部署成本高、维护困难等问题&#xff1b;而光学遥感又难以穿透茂密的作物冠层。无人机载雷达与…...