学习大数据DAY43 Sqoop 安装,配置环境和使用

news2024/9/26 1:15:41

目录

sqoop 安装

配置 mysql

sqoop 安装

sqoop 指令集

sqoop 使用

sqoop 创建 hive 表

sqoop 全量导入表

sqoop 增量导入表

sqoop 全量导出表

sqoop 分区表导入表

sqoop 分区表导出表

上机练习


sqoop 安装

配置 mysql

create database test
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;
-- 创建数据库
show databases;
-- 创建账号
Create user 'test'@'%' identified by 'test';
Grant all privileges on test.*
to test@'%'
identified by 'test' with grant option;
-- 刷新权限配置
flush privileges;

sqoop 安装

# 1. 拷贝安装包以及 mysql jar /root 目录 并解压
tar
-zvxf
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
-C
/opt/module/
# 2. 配置环境变量
vim /etc/profile.d/my_env.sh
# 加入 sqoop 路径
#SQOOP_HOME
export
SQOOP_HOME=/opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha
export PATH=$PATH:$SQOOP_HOME/bin
# 刷新环境变量
source /etc/profile
# 3. 配置 sqoop
cd $SQOOP_HOME/conf
cp sqoop-env-template.sh sqoop-env.sh
vim sqoop-env.sh
# 配置信息
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3
export HIVE_HOME=/opt/module/apache-hive-3.1.2-bin
#export ZOOKEEPER_HOME=/opt/module/zookeeper-3.4.10
# 拷贝 jdbc 驱动到 sqoop lib 目录下
cp
mysql-connector-java-5.1.27-bin.jar
/opt/module/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib/
# 连接测试
sqoop list-databases --connect jdbc:mysql://localhost:3306/
--username root --password root

sqoop 指令集

sqoop 使用

sqoop 创建 hive 表

$ bin/sqoop create-hive-table \
--connect jdbc:mysql://hadoop102:3306/company \
--username test \
--password test \
--table test \
--hive-table test

sqoop 全量导入表

#!/bin/bash
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--table student2 \
--hive-import \
--delete-target-dir \
--hive-database db_hive \
--fields-terminated-by "\t" \
--target-dir "/user/hive/warehouse/db_hive.db/student2_sqoop" \
--hive-table student2_sqoop \
-m 1

sqoop 增量导入表

bin/sqoop import \
--connect jdbc:mysql://hadoop102:3306/test \
--username root \
--password root \
--table emp \
--check-column deptno \
--incremental lastmodified \
--last-value "10" \
--m 1 \
--append

sqoop 全量导出表

#!/bin/bash
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
-m 1 \
--table student2 \
--input-fields-terminated-by ',' \

--export-dir '/user/hive/warehouse/db_hive.db/student2'

sqoop 分区表导入表

#!/bin/bash
sqoop_import(){
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--query
"select * from maket_p where cast(year(ord_date) as
decimal)='$part' and \$CONDITIONS" \
--hive-import \
--create-hive-table \
--hive-overwrite \
--fields-terminated-by "\t" \
--hive-database db_hive \
--hive-table market_sqoop \
--target-dir
"/user/hive/warehouse/db_hive.db/market_sqoop/type_p=$part/" \
--hive-partition-key type_p \
--hive-partition-value "$part" \
-m 1
}
for part in `mysql -uroot -proot --database=test -N -e \
"select distinct cast(year(ord_date) as decimal) from maket_p
order by cast(year(ord_date) as decimal) "`
do echo "$part 年数据 导入 ..."
sqoop_import
done
beeline -u jdbc:hive2://hadoop100:10000/db_hive \
-n root -p root --outputformat=csv2 --showHeader=false \
-e 'msck repair table market_sqoop;'

sqoop 分区表导出表

#!/bin/bash
sqoop_maket(){
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
-m 1 \
--table maket_p \
--input-fields-terminated-by '\t' \
--export-dir "/user/hive/warehouse/db_hive.db/maket_p/$val/"
}
part=`beeline -u jdbc:hive2://hadoop100:10000/db_hive \
-n root -p root --outputformat=csv2 --showHeader=false \
-e 'show partitions maket_p;'`
for val in $part
do
echo $val
sqoop_maket
done

上机练习

1 全表数据导出表自选
选择 hive 数据库的一张表导出到 mysql 的一张表里:
#!/bin/bash
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \--table student2 \
--export-dir /user/hive/warehouse/db_hive.db/student2 \
--fields-terminated-by "," \
-m 1
结果展示:
2 全表数据导入
#!/bin/bash
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--table student2 \
--delete-target-dir \
--create-hive-table \
--hive-import \
--hive-database db_hive \
--hive-overwrite \
--hive-table student2_sqoop \
--target-dir /user/hive/warehouse/db_hive.db/student2_sqoop \
--input-fields-terminated-by ',' \
-m 1

3 分区表数据导出
#!/bin/bash
sqoop_comm(){
sqoop export \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--table log_ \
--export-dir /user/hive/warehouse/db_hive.db/log/$part \
--fields-terminated-by '\t' \
-m 1
}
for part in \
`beeline -u "jdbc:hive2://hadoop100:10000/db_hive" \
--showHeader=False --outputformat=csv2 \
-n root -p 123456 -e 'show partitions log'`
do
echo "-----------$part-----------"
sqoop_comm
done

4 分区表数据导入
#!/bin/bash
sqoop_comm(){
sqoop import \
--connect
"jdbc:mysql://hadoop100:3306/test?useUnicode=true&characterEnc
oding=utf-8" \
--username test \
--password test \
--query "select * from log_ where date_format(cast(date_ as
date),'%Y%m%d')=$part and \$CONDITIONS" \
--delete-target-dir \
--create-hive-table \
--hive-import \
--hive-overwrite \
--hive-table sqoop_log \
--hive-database db_hive \
--hive-partition-key load_date \
--hive-partition-value $part \
--target-dir
/user/hive/warehouse/db_hive.db/sqoop_log/load_date=$part \
--input-fields-terminated-by '\t' \
-m 1
}
for part in \
`mysql -utest -ptest --database=test -Ne \"select distinct DATE_FORMAT(cast(date_ as date),'%Y%m%d')from
log_"`
do
echo "---------$part---------"
sqoop_comm
done
beeline -u "jdbc:hive2://hadoop100:10000/db_hive" \
--showHeader=False --outputformat=csv2 \
-n root -p 123456 -e 'msck repair table sqoop_log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2067422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

汇编语言:adc指令 和 sbb指令

一. abc 指令 adc (add carry)是带向假想的更高位进位加法指令,它利用了标志寄存器上 CF 标志位记录的进位值。 指令格式:adc 操作对象1, 操作对象2 功能:操作对象1 操作对象1 操作对象2 CF 比如,指令…

Vue2升级Vue3填坑笔记

背景 前段时间使用Vue2完成一个流量回放的前端开发,实现了流量回放的基本功能。开发过程中,发现现主流的插件都在适配Vue3,奈何为了赶进度,只能先用自己熟悉的Vue2先顶上。恰巧最近有些许空余时间,就把项目代码逐步变…

基于单片机的人体健康监测系统的设计

本设计以STM32F103C8T6单片机作为主控,通过MAX30102采集心率、血氧值,通过MSP20血压采集模块检测血压值,通过MLX90614红外体温采集模块检测体温值。OLED屏可以显示以上检测的信息,并可以通过蓝牙模块将信息发送给手机APP。当检测值…

【QAMISRA】解决永久license文件替换后未生效的问题

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决浮动版永久license文件替换后未生效的问题。 2、 问题场景 客户替换永久版license文件且重启lserv服务后,license信息还是原来临时license的信息。 3、软硬件环境 1、软件版本: QA-MIS…

Android车载蓝牙音乐实例(附Demo源码):实现手机播放音乐后车机应用显示音乐名称,歌手,专辑名。且可控制上一曲下一曲,暂停播放功能

一、功能需求 功能需求是在Android10以上设备上实现蓝牙音乐功能,细分为两个功能点: 1、手机和车载设备实现蓝牙连接 (本Demo文只做监听蓝牙连接状态,需手动到设置中连接蓝牙) 2、连接蓝牙成功后手机播放音乐时车载…

【python报错已解决】“IndexError: list index out of range”

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引言 你是否在处理Python列表时遇到了“IndexError: list index out of range”的错误?这个错误可能会让你的程序中…

51单片机最快能生成多高频率的方波?

前言 在嵌入式系统开发中,51 单片机作为一种非常非常非常经典,贯穿上下几十年的微控制器,被广泛应用于各种电子项目中。其中,生成特定频率的方波信号是一项常见的需求。 那么,51 单片机究竟能以多快的速度生成方波呢&…

STM32——GPS模块(GY-NEO-6M)

1连接 1-1 使用 USB-TTL 工具,安装好驱动,可以在”设备管理器看到对应COM”按照如下链接测试模块: USB-TTL GPS 模块 3.3V--------------------------------->VCC GND------------------------------>GND RXD--------------------…

应用程自定义协议与序列化反序列化

本篇将主要介绍在应用层中自定义的协议,自定义协议的同时还需要将我们的数据继续序列化和反序列化,所以本篇的重点为序列化、反序列化的原因以及如何自定义协议,接着探讨了关于为什么 tcp 协议可以支持全双工协议。还根据用户自定义协议结合 …

⼆⼿⻋交易系统前景分析

二手车交易系统开发小程序在当前市场中具有显著的优势和潜力。以下是对二手车交易系统小程序功能的综合分析: 车辆信息展示:小程序应提供详细的车辆信息展示,包括车辆的图片、品牌、型号、年份、里程数、价格等关键信息,方便用户…

Python爬虫—常用的网络爬虫工具推荐

以下列举几个常用的网络爬虫工具 1. 八爪鱼(Bazhuayu) 简介: 八爪鱼是一款面向非技术用户的桌面端爬虫软件,以其可视化操作和强大的模板库而受到青睐。它支持从各种网站上抓取数据,包括文本、图片、文档等&#xff…

特殊类设计和类型转换

前言 这一篇博客我们讲特殊类设计和类型转换 1. 特殊类设计 1.1 请设计一个类,不能被拷贝 这个比较简单 第一种方法就是将赋值和拷贝构造只定义不声明然后设置为私有就可以了 第二种方法就是直接令它为delete 1.2 请设计一个类,只能在堆上创建对象 …

自学成才:通过自学成为软件开发者——之入行成为软件开发者

一些优秀的程序员,可能以前从事的是其他职业,他们大都发现工作中的很多固定化的流程内容,如果可以实现自动化,不仅效率能够得到提高和保证,提高自己的生成力,同时自己也会从中释放出来,有更多的…

Go使用MongoDB应用指南

Go使用MongoDB应用指南 MongoDB 是一种高性能、开源、文档型的 NoSQL 数据库,广泛应用于 Web 应用、大数据以及云计算领域。Go 语言则以其快速、开发效率高、代码可维护性强著称。本指南将详细介绍如何在 Go 语言中使用 MongoDB 进行数据库操作,包括连接…

鸿蒙HarmonyOS开发知识:命令行工具Command Line Tools

该命令行工具集合了HarmonyOS应用开发所用到的系列工具,包括代码检查codelinter、三方库的包管理ohpm、命令行解析hstack、编译构建hvigorw。 命令行工具获取 请前往下载中心获取并下载命令行工具Command Line Tools。 配置环境变量 Windows 将解压后command-l…

英语四六级有多重要你不知道

卷出天际 IT业内卷严重大家都知道 因此也就打击了很多想入行的新人 到底什么是核心竞争力 放在十年前 稍微会Spring, CRUD 就能达到入门的台阶 那也是培训机构最繁荣的一段时期 而今顶峰已经过去 IT业从含金量上 已经大不如前 在野蛮发展期 如果不太挑的话 大专也是…

云轴科技ZStack AIOS平台智塔亮相FDS金融领袖峰会

人工智能(AI)正以前所未有的速度渗透到金融系统,推动着金融服务的创新和变革。这种深度融合不仅可以提高金融服务的效率和准确性,未来还可催生全新的金融产品和服务模式。尤其是生成式人工智能(GenAI)的出现…

算法的学习笔记—复杂链表的复制(牛客JZ35)

😀前言 在许多实际应用中,我们会遇到复杂链表的复制问题。复杂链表不同于一般的单链表,不仅每个节点有指向下一个节点的指针,还有一个特殊的指针 random,可以指向链表中的任意节点或 null。如何高效地复制这样一个复杂…

CACTER直播预告:聚焦EDLP邮件数据防泄露实战重点

在信息高速流通的今天,邮件作为商务沟通的桥梁,不仅承载着日常沟通,更是企业机密和知识产权的重要载体。然而,邮件系统的开放性也使其成为网络攻击的主要目标。数据泄露不仅会导致商业损失,还可能对企业声誉造成不可逆…

【请安全下载】黑神话:悟空 单机游戏 它是如何保证安全的 怎样防破解的?安全措施:D加密,反外挂,代码加密,资源保护

单机 《黑神话:悟空》是一款单机游戏,由游戏科学开发,并于2024年8月20日全球同步上线。游戏以其独特的暗黑国风、深度的故事背景以及精致的游戏画面,重塑了西游题材,为玩家呈现了一个前所未有的悟空传奇。 黑神话&…