Linux定时备份异常处理
问题场景
为了FineReport数据决策平台服务器的安全性,前段时间做了定时备份,使用Linux的crontab定时任务每天凌晨将整个FineReport项目打包然后备份一份到挂载的公司共享 NAS 1.3 云盘。
# Crontab定时任务列表查询crontab -l# Crontab定时任务编辑crontab -e
处理过程
今天突然想起来去看看备份的情况,发现挂载的 1.3 云盘没有备份文件,赶忙去看了下crontab执行日志:
cat /var/log/cron | grep 'webroot'
感觉是打包有点问题,接着看了下系统邮件检查异常信息:
cat /var/spool/mail/root
看起来是打包的后缀在加date拼接的问题,网上找了找,看到一个解决方式:
加上之后,果然可以了。重新修改定时任务:
0 3 * * * tar -cf - /usr/local/tomcat-8.5.55/webapps/webroot | pigz > /data/FineReport/webroot_$(date +'\%Y-\%m- ...
使用Git系统搭建GitLab
Git、GitHub与GitLab区别
首先我们要知道的是,Git与GitLab不是一个东西,git是一个可以进行版本控制的操作工具,而GitLab则是一个用来托管文件的远程仓库。
GitLab与GitHub最大的区别就是可以使用自己的服务器进行托管,相比GitHub来说更安全高效,适合团队内部开发。
具体步骤
第一步:新建小组以及项目
首先登录GitLab官网:http://git.lzops.com,输入账号密码然后开始进入。初始的有两个框框,新建项目和新建小组。
我已经建好了小组:lz_bigdata,还有一个项目:lzjr_first。
第二步:进行远程仓库GitLab与Git版本控制系统的关联
在GitLab空的项目中我们会发现一些系统中给出的提示操作,例如本地Git如何连接远程仓库的一些命令
第三步:安装Git分布式版本控制系统,与远程仓库GitLab进行连接
去Git官网:https://git-scm.com 下载Window版64位的安装包,然后安装成功后,在桌面点击鼠标右键会发现多出两行命令。
点击Git Bash Here,会出来一个黑窗口,便是G ...
新浪微博图床迁移
前不久,微博图床挂了,这对于众多使用 Markdown 写技术博客的人简直太残忍了!看来,图片迁移真的是刻不容缓了,在我准备迁移图片的时候,发现了几个平台对图片不同的处理方式,觉得很有意思,所以记录一下。
本人强烈推荐使用方法五,亲测有效。
补救措施
一、在标头添加代码
<meta name="referrer" content="no-referrer" />
头部添加以上代码,防止获取敏感信息,这个作用是:在页面引入图片、JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,浏览器一般都会给这些请求头加上表示来源的 Referrer 字段。Referrer 在分析用户来源时很有用,有着广泛的使用。但 URL 可能包含用户敏感信息,如果被第三方网站拿到很不安全(例如之前不少 Wap 站把用户 SESSION ID 放在 URL 中传递,第三方拿到 URL 就可以看到别人登录后的页面)。之前浏览器会按自己的默认规则来决定是否加上 Referrer。
二、利用大佬写的工具进行迁移
php写的小程序,扫描网站目录提取 ...
SQLServer中文乱码及查询异常
记录一次工作中SQLServer查询异常的经历。
由于直连供应商那边要求使用sqlserver接收数据,故我们又在207安装了SQLServer数据库,我这边正常建表,然后导入数据,刚开始客户类型,厂家等字段使用常用字符串类型varchar,但是导入发现除数字和字母外,中文部分乱码,后来网上了解到,中文需用到Unicode字符集,故如果含有中文需要用nvarchar,以下是网上查找到varchar与nvarchar的区别:
改成nvarchar后,立马就正常了。
但是今天,同事突然找我说,这几个中文字段有些问题,无论是精准查询还是模糊匹配都查不到。以为是同步问题,我去海豚后台去看,同步条数都正常。
Navicat查询结果:
海豚后台同步日志:
然后直接去数据库中查找也的确有这个厂家的数据。这就很奇怪,后来在网上查到了原因,原来是SQLServer 排序规则的问题,以下是网上给出的解释:
然后我在字符串前加上N测试,果然是这个原因:
将数据库排序规则更改为 Chinese_PRC_CI_AS 后,不加N也可以查询的到了:
最后附上更改数据库排序规则的SQL语句:
alter ...
记录一次生产数据库紧急恢复经历
事情经过
前天晚上(2024年3月31日)20点21分,钉钉突然报警,一看是任务调度平台海豚挂了一个节点,因为是集群部署有三个节点,想着挂一个也不影响,但快10点的时候突然又崩出大量报警信息,一看同步到StarRocks的任务全部报错,这个问题明显就严重很多,自从StarRocks迁移到公司集群后,已经稳定运行了七个多月,从来没有发生过这种情况。
海豚集群钉钉报警截图:
StarRocks同步任务钉钉报警截图:
StarRocks报错日志截图:
Linux后台查看StarRocks集群进程:
**结论:**这里基本确定,StarRocks集群225和226两台节点都挂了。
处理方式
起初,我尝试使用常规的方式,重启三台StarRocks节点的FE和BE进程,但225和226两台节点FE启不起来,起来秒挂,于是紧急联系了线上技术支持。
于是,在线上技术的指导下,我按照文档,先将三天节点的元数据进行备份,然后找出最新的元数据节点,再以最新的这台节点作为 LEADER 节点,将另外两台节点踢出集群,并清空这两台节点元数据,然后重新将这两台节点再加进集群。
步骤一:寻找 ...
流式框架Flink(一)
Apache Flink是一个用于对无边界和有边界数据流进行有状态计算的框架和分布式处理引擎。Flink设计为运行在所有常见的集群环境中,并且以内存速度和任意规模执行计算。
官网:https://flink.apache.org
Flink体系架构
Flink 是一个 Stateful Computations Over Streams,即数据流上的有状态的计算。
这里面有两个关键字,一个是Streams,Flink认为有界数据集是无界数据流的一种特例,所以说有界数据集也是一种数据流,事件流也是一种数据流。Everything is streams,即Flink可以用来处理任何的数据,可以支持批处理、流处理、AI、MachineLearning等等。
另外一个关键词是Stateful,即有状态计算。有状态计算是最近几年来越来越被用户需求的一个功能。举例说明状态的含义,比如说一个网站一天内访问UV数,那么这个UV数便为状态。Flink提供了内置的对状态的一致性的处理,即如果任务发生了Failover,其状态不会丢失、不会被多算少算,同时提供了非常高的性能。
处理无边界和有边界数据
任 ...
流式框架Flink(二)
Apache Flink是一个用于对无边界和有边界数据流进行有状态计算的框架。
我们来谈谈 Flink 的编程模型与部署。
第一部分:Flink 编程模型
Flink 分层架构
Flink提供不同级别的抽象来开发流/批处理应用程序。
Stateful Stream Processing
位于最底层, 只提供有状态流,是 core API 的底层实现。
通过 Process Function 嵌入到 DataStream API中。
利用低阶,构建一些新的组件(比如:利用其定时做一定情况下的匹配和缓存)。
灵活性高,但开发比较复杂。
Core APIs(DataStream API/DataSet API)
在实践中,大多数应用程序不需要上述低级抽象,而是针对Core API 编程,如 DataStream API (有界/无界流)和 DataSet API(有界数据集)。这些流畅的API提供了用于数据处理的通用构建块,例如各种形式的用户指定的转换,连接,聚合,窗口,状态等。在这些 API 中处理的数据类型在相应的编程语言中表示为类。
DataStream:流处理
DataSe ...
SparkMLlib 随机森林
一种非线性有监督分类模型
一种非线性有监督分类模型
随机森林是一种非线性有监督的分类模型。随机森林的决策树的升级版,由多个随机数据集的决策树组合而成。
决策树
决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。
决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。
决策树算法目的:
利用数据的一些规则来尽可能的降低数据集的不确定性,即给定一些特征来降低数据的不确定性。
决策树的核心思想:
就是在一个数据集中找到一个最优特征,根据这个最优特征将数据集分为多个子数据集,然后递归操作,直到满足指定条件为止。
案例:判断一个人是否有偿还能力
决策树是一种非线性有监督的分类模型。
线性分类模型比如说逻辑回归,可能会存在不可分问题,但是非线性分类就不存在这个问题。
如下图,决策树的非线性分割:
决策树案例分析
例如:我们来判断车祸与天气的关系。
数据离散化:
决策树是通过固定的条件来对类别进行判断:
决策树的生成:
数据不断分裂的递归过程,每一次分裂,尽可能让类别一样的数据在树的一边,当树的叶子节点的数据都是一类 ...