Shell定时上传日志到HDFS
Shell定时上传日志到HDFS
- 一、任务需求
- 二、实现思路
- 三、具体实现流程
- 3.1 规划文件上传目录
- 3.2 开发 shell 脚本
- 3.3 授予 shell 可执行权限
- 3.4 手动执行查看
- 3.4 定时执行 shell 脚本
一、任务需求
公司在线服务器每天都会产生网站运行日志,为了避免志文件过大,日志文件需按照群,后期再使用MapReduce计每小时进行回滚,现在要求每小时定时上传日志文件到算框架定时处理日志文件。
二、实现思路
在线服务器每小时滚动生成的访问日志文件名称为access.log,历史访问日志文件以时间为后缀精确到小时名称为access.log.2021-10-27-10。当前access.log会继续写入访问日志等待日志回滚,历史访问日志access.log.2021-10-27-10满足上传条件,可以先移动到待上传区间,然后再将待上传区间的文件上传至HDFS集群
三、具体实现流程
3.1 规划文件上传目录
- 原始日志存放目录
[root@hadoop1 hadoop]# mkdir -p /usr/local/hadoop/data/tomcat/log/

- 待传日志存放目录
[root@hadoop1 hadoop]# mkdir -p /usr/local/hadoop/data/unupload/log/

3.2 开发 shell 脚本
#!/bin/bash
#使得环境变量生效
source ~/.bashrc
#hadoop根目录
hadoop_home=/usr/local/hadoop/bin
#原始目录
log_src_dir=/usr/local/hadoop/data/tomcat/logs/
#待传目录
log_unupload_dir=/usr/local/hadoop/data/unupload/logs/
#hdfs日志存放路径
curDay=`date +%Y%m%d`
curHour=`date -d "1 hour ago" +"%H"`
hdfs_root_dir=/warehouse/web/ods/o_web_access_log_d/$curDay/$curHour/
#测试hdfs目录是否存在
$hadoop_home/hdfs dfs -test -e $hdfs_root_dir
if [ $? -eq 0 ] ;thenecho 'directory is exist'
else$hadoop_home/hdfs dfs -mkdir -p $hdfs_root_dir
fi#第一步:将原始目录访问日志移动到待上传目录
ls $log_src_dir | while read logName
doif [[ "$logName" == access.log.* ]]; thensuffix=`date +%Y_%m_%d_%H_%M_%S`#将原始目录文件移动到待上传目录mv $log_src_dir$logName $log_unupload_dir#将待上传文件路径写入文件logUploadPath中echo $log_unupload_dir"$logName" >> $log_unupload_dir"logUploadPath."$suffixfi
done
#第二步:将待上传目录中的访问日志上传至HDFS
ls $log_unupload_dir | grep logUploadPath |grep -v "_Ready_" | grep -v "_Done_" | while read logName
do#将待上传logUploadPath文件更名为logUploadPath_Ready_mv $log_unupload_dir$logName $log_unupload_dir$logName"_Ready_"#循环将logUploadPath_Ready_文件内容,上传至hdfscat $log_unupload_dir$logName"_Ready_" |while read logNamedo$hadoop_home/hdfs dfs -put $logName $hdfs_root_dirdone #将准备上传logUploadPath_Ready_文件名,改为logUploadPath_Done_mv $log_unupload_dir$logName"_Ready_" $log_unupload_dir$logName"_Done_"
done
3.3 授予 shell 可执行权限
[root@hadoop1 bin]# chmod u+x uploadAccessLogToHDFS.sh

3.4 手动执行查看
[root@hadoop1 bin]# ./uploadAccessLog2HDFS.sh

3.4 定时执行 shell 脚本
[root@hadoop1 bin]# crontab -e
添加内容如下所示:
5 * * * * /usr/locl/shell/bin/uploadLog2HDFS.sh
相关文章:
Shell定时上传日志到HDFS
Shell定时上传日志到HDFS 一、任务需求二、实现思路三、具体实现流程3.1 规划文件上传目录3.2 开发 shell 脚本3.3 授予 shell 可执行权限3.4 手动执行查看3.4 定时执行 shell 脚本 一、任务需求 公司在线服务器每天都会产生网站运行日志,为了避免志文件过大&#…...
前端day3-表格
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>day3-表格</title> </head> <body&g…...
多进程系列:一个进程对应一个函数
多进程系列:一个进程对应一个函数 这里展示创建两个进程,一个进程用于执行分类模型,另外一个进程用于执行分割模型,以及获取结果的示例。 import multiprocessing import time def classify_data(data):# 这里放置分类任务的代…...
数据清洗与预处理:确保数据质量的关键步骤
数据清洗与预处理:确保数据质量的关键步骤 引言 在大数据时代,数据已成为企业最宝贵的资产。然而,数据的质量直接影响到分析结果和决策的准确性。数据清洗与预处理是确保数据质量的关键步骤,它们包括识别和处理数据中的错误、缺…...
《PostgreSQL 数据库在国内的发展前景》
从DB-engines这张2024年8月的最新排名图上可以看出,PostgreSQL数据库的发展趋势还是非常好的,在国内,PostgreSQL数据库也展现出令人振奋的发展前景,非常明显的一种表现就是腾讯云、人大金仓、阿里云、华为等众多厂商都有基于Postg…...
LVS部署DR集群
介绍 DR(Direct Routing):直接路由,是LVS默认的模式,应用最广泛. 通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址. 整个…...
《Linux运维总结:etcd 3.5.15集群数据备份与恢复》
总结:整理不易,如果对你有帮助,可否点赞关注一下? 更多详细内容请参考:《Linux运维篇:Linux系统运维指南》 一、备份恢复说明 通常, 只需在其中一个节点上对 Etcd 进行快照,即可完成数据备份。但是, 数据恢复时必须要在每个节点上进行。 注意:即便是高可用 Etcd 集群…...
我在杭州的Day30_进程间通信(IPC)——20240805
一、相关练习 1.使用有名管道实现,一个进程用于给另一个进程发消息,另一个进程收到消息后,展示到终端上,并且将消息保存到文件上一份 1.1> 01homework.c #include <myhead.h>int main(int argc, const char *argv[]) …...
FFmpeg推流
目录 一. 环境准备 二. 安装FFmpeg 三. 给docker主机安装docker服务 四. 使用 FFmpeg 进行推流测试 FFmpeg是一个非常强大的多媒体处理工具,它可以用于视频和音频的录制、转换以及流处理。在流处理方面,FFmpeg可以用来推流,即将本地媒体…...
【Rust光年纪】简化文件操作流程:深度剖析多款文件系统操作库
文件系统操作利器:介绍常用的文件操作库 前言 在现代软件开发中,文件系统操作是一个十分常见的需求。为了更加高效地进行文件系统操作,开发人员经常会使用各种文件系统操作库来简化开发流程、提高代码可维护性。本文将介绍几个常用的文件系…...
FFmpeg实现文件夹多视频合并
使用FFmpeg合并文件夹中的多个视频文件,可以通过多种方式来实现,具体取决于你希望如何合并这些视频文件。下面介绍两种常见的方法: 按顺序拼接多个视频文件: 适用于希望将多个视频文件按顺序合并成一个视频文件的情况。 将多个视…...
[设备] 关于手机设备中几种传感器的研究
一、手机设备中三位坐标系概念 X轴的方向:沿着屏幕水平方向从左到右,如果手机如果不是是正方形的话,较短的边需要水平 放置,较长的边需要垂直放置。Y轴的方向:从屏幕的左下角开始沿着屏幕的的垂直方向指向屏幕的顶端Z轴…...
C#通过Modbus读取温度和湿度
使用 C# 通过 RS-485 接口读取温湿度数据并在电脑上显示,需要使用串口通信。假设你的温湿度传感器使用 Modbus RTU 协议,这里提供一个示例代码,使用 System.IO.Ports 命名空间进行串口通信,并使用 Modbus 协议库 NModbus 进行通信…...
海量数据处理商用短链接生成器平台 - 9
第二十六章 短链服务-冗余双写架构删除和更新消费者开发实战 第1集 冗余双写架构-更新短链消费者开发实战 简介: 短链服务-更新短链-消费者开发实战 具体步骤见代码 第2集 冗余双写架构-更新短链消费者链路测试 简介: 冗余双写架构-更新短链消费者链…...
从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化
在大数据时代,企业对数据的依赖程度越来越高。然而,随着业务的不断发展和技术的快速迭代,大数据平台的集群迁移已成为企业数据中台发展途中无法回避的需求。在大数据平台发展初期,国内数据中台市场主要以国外开源 CDH、商业化 CDP…...
【Mysql】第十二章 视图特性(概念+使用)
文章目录 一、概念二、使用1.创建视图2.修改视图会影响基表3.修改基表会影响视图4.删除视图 一、概念 视图不能添加索引,也不能有关联的触发器或者默认值。由于视图和基表用的本质是同一份数据,因此对视图的修改会影响到基表,对基表的修改也…...
【颠覆数据处理的利器】全面解读Apache Flink实时大数据处理的引擎-上篇
什么是 Apache Flink? Apache Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink 被设计为在所有常见的集群环境中运行,以内存速度和任何规模执行计算。 如何理解无界和有界数据? 无界数据&#…...
【C++】C++11(可变参数模板、lambda表达式、包装器)
文章目录 1. 可变参数模板1.1 介绍1.2 emplace系列接口实现 2. lambda表达式2.1 语法介绍2.2 原理 3. 包装器4. bind 1. 可变参数模板 1.1 介绍 可变参数我们在C语言阶段已经了解过了,C语言中叫做可变参数列表,其中使用 ... 代表可变参数。 C语言中的可…...
矩阵获客时代,云微客让你一个人成就一支队伍
短视频利用大家碎片化的时间让自身得到广泛的应用和发展,因此很多公司纷纷布局短视频赛道。但是一个账号的曝光量有限,并且能够出的爆款视频更是少之又少,这个时候就需要增加账号的数量,布局形成账号矩阵。 做账号矩阵,…...
浅谈基础的图算法——Tarjan求强联通分量算法(c++)
文章目录 强联通分量SCC概念例子有向图的DFS树代码例题讲解[POI2008] BLO-Blockade题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 思路AC代码 【模板】割点(割顶)题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
【实施指南】Android客户端HTTPS双向认证实施指南
🔐 一、所需准备材料 证书文件(6类核心文件) 类型 格式 作用 Android端要求 CA根证书 .crt/.pem 验证服务器/客户端证书合法性 需预置到Android信任库 服务器证书 .crt 服务器身份证明 客户端需持有以验证服务器 客户端证书 .crt 客户端身份…...
Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
[C++错误经验]case语句跳过变量初始化
标题:[C错误经验]case语句跳过变量初始化 水墨不写bug 文章目录 一、错误信息复现二、错误分析三、解决方法 一、错误信息复现 write.cc:80:14: error: jump to case label80 | case 2:| ^ write.cc:76:20: note: crosses initialization…...
DL00871-基于深度学习YOLOv11的盲人障碍物目标检测含完整数据集
基于深度学习YOLOv11的盲人障碍物目标检测:开启盲人出行新纪元 在全球范围内,盲人及视觉障碍者的出行问题一直是社会关注的重点。尽管技术不断进步,许多城市的无障碍设施依然未能满足盲人出行的实际需求。尤其是在复杂的城市环境中ÿ…...
分布式光纤声振传感技术原理与瑞利散射机制解析
分布式光纤传感技术(Distributed Fiber Optic Sensing,简称DFOS)作为近年来迅速发展的新型感知手段,已广泛应用于边界安防、油气管道监测、结构健康诊断、地震探测等领域。其子类技术——分布式光纤声振传感(Distribut…...
