热数据存储在HDFS,冷备数据存储于对象存储中

img

1.场景分析

生产环境均为腾讯云服务器,日志数据计划存储于HDFS中,由于日志数据较大(压缩后1T/天),不断扩充云盘成本消耗大。鉴于对象存储的存储成本较为低廉,但是日常频繁使用会产生流量费用。
鉴于此,规划将日常常用热数据采用HDFS存储(存储时间2~3个月),超过该时间段数据采用对象存储。改方案均采用同一套Hadoop架构,使用hive均可以读取到,在降低成本的同时提高数据的利用率。

2.准备条件

cos与hadoop集成特征

3.详细脚本

建表语句

CREATE EXTERNAL TABLE ods.test_dh (
`timestamp` bigint COMMENT '时间',
`offset` bigint COMMENT '偏移量',
`request_uri` string COMMENT '请求uri')
COMMENT '日志表'
PARTITIONED BY (`part_day` string,`part_hour` string)
ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.JsonSerDe'
STORED AS INPUTFORMAT'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION'hdfs://hadoopcluster/hadoop/dm_dw/on/ods/test_dh';CREATE EXTERNAL TABLE ods.test_bu (
`timestamp` bigint COMMENT '时间',
`offset` bigint COMMENT '偏移量',
`request_uri` string COMMENT '请求uri')
COMMENT '日志备份表'
PARTITIONED BY (`part_day` string,`part_hour` string)
ROW FORMAT SERDE'org.apache.hadoop.hive.serde2.JsonSerDe'
STORED AS INPUTFORMAT'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION'cosn://xxxx/hadoop/dm_dw/on/ods/test_bu';

每个月1号12点数据冷备份

#!/bin/bash
# 定义变量方便修改
APP=ods
#HDFS表
HDFS_TABLE=test_dh
#对象存储表
COS_TABLE=test_bu
HDFS_PATH1=hdfs://hadoopcluster/hadoop/dm_dw/on/$APP/$HDFS_TABLE
HDFS_PATH2=/hadoop/dm_dw/on/$APP/$HDFS_TABLE
COS_PATH=cosn://xxxx/hadoop/dm_dw/on/$APP/$COS_TABLE
# HDFS数据冷备份,将HDFS3个月前的数据按照月份移动至cos中,移动完成后删除HDFS中的数据,数据保留时间最大不超过3个月
# 执行时间为每个月1号12点do_date=$1
hr=${do_date: 8: 2}
date1=${do_date: 0: 8}
#date1=`date -d "$date1 +1 day" +%Y%m%d`
date1_month=`date -d "$date1" +%Y%m`
date3=`date -d "$[ $date1_month + 0 ]01" +%Y%m%d`
if [ "$date1" -eq "$date3" ] && [ "$hr" -eq 11 ] ; thenstart_date=`date -d "$date3 -3 month" +%Y%m%d`end_date=`date -d "$date3 -2 month" +%Y%m%d`	# 日期自增echo ================== $COS_TABLE 导入月份为 $start_date ==================while [[ $start_date != $end_date ]]dohadoop fs -test -e $HDFS_PATH2/part_day=$start_dateif [[ $? -eq 0 ]]; then#数据备份开始echo "$start_date 数据开始移动..."hadoop distcp -Dmapreduce.job.queuename=dw $HDFS_PATH1/part_day=$start_date $COS_PATHhadoop fs -test -e $COS_PATH/part_day=$start_date/part_hour=23if [[ $? -eq 0 ]]; then#数据备份完成,删除hdfs中的数据echo "路径 $COS_PATH/part_day=$start_date 数据已移动至cos,HDFS数据删除......"hadoop fs -rm -rf $HDFS_PATH2/part_day=$start_dateelseecho " $COS_PATH/part_day=$start_date HDFS数据没有移动至cos"fielseecho " $HDFS_PATH2/part_day=$start_date 文件夹中没有数据"fistart_date=$(date -d "$start_date +1 day" +%Y%m%d)doneecho ================== $COS_TABLE 导入月份为 $do_date ==================sql="MSCK REPAIR TABLE ${APP}.${COS_TABLE};"hive -e "$sql"
elseecho "$do_date 不是月初第一天的12点"
fi

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数学建模】【2024年】【第40届】【MCM/ICM】【C题 网球运动中的“动量”】【解题思路】

一、题目 (一) 赛题原文 2024 MCM Problem C: Momentum in Tennis In the 2023 Wimbledon Gentlemen’s final, 20-year-old Spanish rising star Carlos Alcaraz defeated 36-year-old Novak Djokovic. The loss was Djokovic’s first at Wimbledon…

ubuntu篇---ubuntu安装python3.9

ubuntu篇—ubuntu安装python3.9 在ubuntu上安装Python有两种方法:在线安装和源码编译安装。 方法1:使用apt在线安装 1.更新软件包列表并安装必备组件: $ sudo apt update $ sudo apt install software-properties-common2.将Deadsnakes PPA添加到系统…

leetcode(矩阵)74. 搜索二维矩阵(C++详细解释)DAY7

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中…

服务器安装Docker (centOS)

1. 卸载旧版本的Docker(如果有) 首先,如果您的系统上安装了旧版本的Docker,需要将其卸载。Docker的旧版本称为docker或docker-engine。使用以下命令来卸载旧版本: sudo yum remove docker \ docker-client \ docker-…

16-Verilog实现二线制I2C CMOS串行EEPROM的读写操作

Verilog实现二线制I2C CMOS串行EEPROM的读写操作 1,二线制I2C CMOS串行EEPROM的简单介绍2,I2C总线特征介绍3,二线制I2C、CMOS串行EEPROM的读写操作4,EEPROM的Verilog HDL程序4.1,EEPROM的行为模型思路如下:…

leetcode9. 回文数|详细深入讲解算法

前往题目有 反转一半数字 思路 映入脑海的第一个想法是将数字转换为字符串,并检查字符串是否为回文。但是,这需要额外的非常量空间来创建问题描述中所不允许的字符串。 第二个想法是将数字本身反转,然后将反转后的数字与原始数字进行比较&…

HCIA-HarmonyOS设备开发认证V2.0-3.2.轻量系统内核基础-时间管理

目录 一、时间管理1.1、时间接口 一、时间管理 时间管理以系统时钟为基础,给应用程序提供所有和时间有关的服务。系统时钟是由定时器/计数器产生的输出脉冲触发中断产生的,一般定义为整数或长整数。输出脉冲的周期叫做一个“时钟滴答”。系统时钟也称为…

防火墙安全策略及nat实验

要求一:生产区的设备在工作时间访问dmz区,仅可访问http服务器 要求二:办公区可以全天访问dmz区,其中10.0.2.20可以访问FTP服务器和HTTP服务器,10.0.2.10仅可以ping通10.0.3.10 要求三:办公区在访问服务器区时采用匿名认…

SpringCloud--Eureka注册中心服务搭建注册以及服务发现

注意springboot以及springcloud版本&#xff0c;可能有莫名其妙的错误&#xff0c;这里使用的是springboot-2.6.13&#xff0c;springcloud-2021.0.5 一&#xff0c;Eureka-Server搭建&#xff1a; 1.创建项目&#xff1a;引入依赖 <dependency><groupId>org.sp…

机器学习系列——(十八)K-means聚类

引言 在众多机器学习技术中&#xff0c;K-means聚类以其简洁高效著称&#xff0c;成为了数据分析师和算法工程师手中的利器。无论是在市场细分、社交网络分析&#xff0c;还是图像处理等领域&#xff0c;K-means都扮演着至关重要的角色。本文旨在深入解析K-means聚类的原理、实…

Javaweb之SpringBootWeb案例之事务管理的详细解析

1. 事务管理 1.1 事务回顾 在数据库阶段我们已学习过事务了&#xff0c;我们讲到&#xff1a; 事务是一组操作的集合&#xff0c;它是一个不可分割的工作单位。事务会把所有的操作作为一个整体&#xff0c;一起向数据库提交或者是撤销操作请求。所以这组操作要么同时成功&am…

并行计算导论 笔记 1

目录 并行编程平台隐式并行超标量执行/指令流水线超长指令字处理器 VLIW 内存性能系统的局限避免内存延迟的方法 并行计算平台控制结构通信模型共享地址空间平台消息传递平台对比 物理组织理想并行计算机并行计算机互联网络网络拓朴结构基于总线的网络交叉开关网络多级网络全连…

【MySQL】数据库基础 -- 详解

一、什么是数据库 存储数据用文件就可以了&#xff0c;为什么还要弄个数据库? 一般的文件确实提供了数据的存储功能&#xff0c;但是文件并没有提供非常好的数据&#xff08;内容&#xff09;的管理能力&#xff08;用户角度&#xff09;。 文件保存数据有以下几个缺点&…

常用的前端模块化标准总结

1、模块化标准出现以前使用的模块化方案&#xff1a; 1&#xff09;文件划分&#xff1a; 将不同的模块定义在不同的文件中&#xff0c;然后使用时通过script标签引入这些文件 缺点&#xff1a; 模块变量相当于是定义在全局的&#xff0c;容易造成变量名冲突&#xff08;即不…

C++入门篇(4)—— 类与对象(1)

目录 1.类的引入 2.类的定义 3.类的访问限定符 4.类的作用域 5. 类对象的存储方式 6. this指针 6.1 this指针的引入 6.2 this指针的特性 6.3有意思的面试题 1.类的引入 C语言struct 结构体中只能定义变量&#xff0c;而C中可以定义函数。 struct Date {void Init(int…

基于Skywalking开发分布式监控(二)

续上篇&#xff0c;上一篇主要是讲了为啥选skywalking&#xff0c;以及怎么有针对性改造SW Agent&#xff0c;现在我们继续看看如何构建自定义Trace跟踪链 要对SW Agent插件做适当剪裁&#xff0c;原来包括customize插件在内SW 8.9有100多个插件&#xff0c;如果没有作用也就罢…

Spring Cloud使用ZooKeeper作为注册中心的示例

简单的Spring Cloud应用程序使用ZooKeeper作为注册中心的示例&#xff1a; 1.新建模块&#xff1a; 2.勾选依赖&#xff1a; 3.在pom.xml文件中做出部分修改及添加Spring Cloud Zookeeper 依赖版本&#xff1a; 完整pom文件 <?xml version"1.0" encoding&q…

【自然语言处理-工具篇】spaCy<1>--介绍及安装指南

目录 前言 安装指南 pip conda spaCy升级 总结 前言 spaCy是一个开源的自然语言处理库,用于处理和分析文本数据。它提供了许多功能,包括分词、词性标注

ES6扩展运算符——三个点(...)用法详解

目录 1 含义 2 替代数组的 apply 方法 3 扩展运算符的应用 &#xff08; 1 &#xff09;合并数组 &#xff08; 2 &#xff09;与解构赋值结合 &#xff08; 3 &#xff09;函数的返回值 &#xff08; 4 &#xff09;字符串 &#xff08; 5 &#xff09;实现了 Iter…

npm淘宝镜像源换新地址

新的淘宝npm镜像源地址&#xff1a;https://registry.npmmirror.com 切换新的镜像源 npm config set registry https://registry.npmmirror.com然后再执行以下操作查看是否成功 npm config list如果没安装过淘宝镜像源的&#xff0c;则直接安装 npm install -g cnpm --regi…