自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 nginx配置挂载html

很多软件的官方文档,在国内打开很慢,每次都得等很久,看到官方同时提供了html的包,所以想着挂载到本地nginx下,查看会方便很多。想添加新的文档也是一样,放到这个目录下就下,刷新页面后就能在页面上访问了。下载官方html文档包,解压到documentation_htmls下,这个location 配置实现了自动加载。

2024-04-23 14:53:41 179 1

原创 记录一个python面试题【字符串切分】

对字符串s进行切分,保证每一个切片尽量短,且当前切片字母在后续的s中没有出现。

2024-04-18 13:38:42 109 1

原创 win docker clickhouse 挂载本地目录到容器后无法写入数据问题解决

volumes:data:services:ports:volumes:docker的数据卷只在docker环境下管理,在本地路径中找不到,可以通过下面命令查看具体数据在win下docker的 绑定挂载(bind mount)模式可以将宿主机上的特定目录映射到容器内的指定目录,但是不能支持有大量文件创建的目录绑定,会有inode不够导致数据无法写入的问题,即便是权限、空间都满足,但硬盘格式不匹配,导致inode信息不匹配。

2024-04-18 00:34:16 713

原创 zabbix6.0 部署配置

就是监控的具体指标,通过 key 保证在 zabbix 系统里的唯一性。在一个host下每一个item都有唯一的key,不同的host可以有相同key的item,比如host下都有 key = system.cpu.util[,idle] 的监控项来监控系统的idle状况。把一堆的item放到一个template,方便复用给多个host,zabbix给了很多常见的监控项组合,这里可以结合自己的场景来选择相关的预定的template,如果不能满足你的需要,那么就需要自己创建模板,添加监控项/报警等内容。

2023-10-24 22:20:35 244

原创 zabbix6自动化配置监控项监控GPU

官方提供的简单的脚本监控,在zabbix_agent2.d做相关配置就能实现,但是这个一个监控项需要写一个脚本,我需要监控的一个机器就有40+的监控项,不太方便。在GPU监控逻辑开发中发现,在自己的后端服务监控中也可以埋点到zabbix来做监控,然后在前端配置相关监控图标,感觉这个链路是通的,也挺方便,统计服务都省了。正常使用官方提供的监控项,可以监控机器的cpu / mem / desk / net 等等,但是没有监控到GPU,所以只能自己加监控项。然后在这三台机器都部署zabbix agent2,

2023-10-24 21:43:09 551

原创 二分法查找 python实现

二分法查找:从有序集合a中找到具体值b所在位置

2023-06-07 22:10:06 167

原创 python对象 序列化、反序列化、比较eq例子

python对象 序列化、反序列化、比较eq的例子。

2023-01-16 23:33:58 106

原创 不同硬盘格式和不同操作系统的兼容情况

不同操作系统对硬盘的原生兼容情况

2022-10-26 22:36:24 1086

原创 python py7zr 压缩解压 指定文件名、文件后缀

python使用py7zr解压/压缩 制定文件名文件类型

2022-10-14 18:07:30 3634

原创 python 异步协程的使用

消费流(kafka或者queue)的数据,使用python协程异步处理这些数据,提高python的并发性

2022-07-03 20:31:01 275

原创 spark sql mapjoin BROADCAST

spark 跑sql的时候一个小表想用mapjoin,在hive中开启mapjoin直接在sql查询时添加参数/*+ mapjoin(smalltable)*/,可参考LanguageManual Joins具体如下-- hive sqlselect /*+ mapjoin(b)*/ a.*from big_table ajoin small_table bon a.id=b.id但是在spark中这么跑没能开启mapjoin,任务计划图如下图1在spark的sql中开启mapj

2021-09-17 17:18:29 2240 5

原创 logging.basicConfig设定log路径不生效

业务往log文件写log时想根据处理的时间自动生成log文件,但是进程不中断就不会生成新的log文件。from datetime import datetimeimport timeimport loggingclass Test(object): def __init__(self, in_time): if in_time: self.sinkTime = in_time else: self.sink

2021-08-27 18:10:59 607

原创 python Thread使用方法:主线程起子线程,无法回到主线程逻辑了

今天同事问了一个Python的Thread使用问题,他的程序起了一个多线程,确一直没能进到主进程,我看了一眼代码发现问题了下面看下他的原代码:当然是为了方便表述问题已经简化了业务逻辑具体有问题的代码from threading import Threadimport timedef fff(a): #业务逻辑这里是消费一个kafka,正常不会结束,相当于一直卡在sleep这里,到不了print('after',5,a) print(a) time.sleep(5) p

2021-08-23 18:50:32 1406

原创 try except 的错误类型捕获问题

关于 try catch的错误类型捕获,可以所有的except都捕获,使用Exception来处理,这时所有的错都会进如到err中,到except的流程仅仅对已知的报错类型进行捕获,比如 requests.exceptions.BaseHTTPError 其他的报错都不会被处理,为保持严谨就需要把所有的异常情况都拿出来分别处理,如果出现未知的错误类型就会导致During handling of the above exception, another exception occurred:的报错关

2021-08-16 10:52:47 1164

原创 [python]统计list中元素出现次数的几种方法

有一回对我说道,“你读过书么?”我略略点一点头。他说,“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做掌柜的时候,写账要用。”我暗想我和掌柜的等级还很远呢,而且我们掌柜也从不将茴香豆上账;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是草头底下一个来回的回字么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……回字有四样写法,

2021-07-29 14:58:44 676

原创 redis数据迁移python实现

数据迁移要扫描redis的全部key使用next_cursor,this_keys = from_redis.scan(cursor=next_cursor, match=None, count=100)来扫描全表然后在对一个个的key,读源库,写新的库写新库时,根据业务对key做了些小改动,吧db添加到了key的开头这里还根据业务做了key类型的统计,以便最终可以看到多少key被扫描,多少key被迁移from_redisto_redisdef add_one(the_dict,the_ke

2021-06-24 18:50:38 357

原创 python 定时取conf 定时器

目标实现python的一个定时器,取一个后台的不定时的可配置参数实现用多线程的方式实现,开始的思路, 起一个,while循环取conf,取完了sleep一段时间后来发现python的threading.Timer,可以直接起定时任务import datetimeimport timeimport threadingimport jsonclass uuconfig(object): def __init__(self, config_path): self.co

2021-06-24 17:17:54 125

原创 codis command / redis command codis redis 差异

内部产品使用redis容量到了上限,准备着手迁移到codis然而遇到一些问题难以解决:原来业务逻辑有一个是使用了redis的keys() 方法,查询某一个正则匹配的key list,在codis中不支持在原有的逻辑是要分db现在codis没有办法做db的区分以上问题都需要在业务代码中进行改动中间为了达到目的中间做了一些测试和代码调试,记录下codis和redis的差异cfg = DotDict(redis_config)db = 1conn_ori = redis.StrictRedis

2021-05-18 18:07:22 122

原创 python异步执行subprocess.Popen(),并输出执行的log

目标我的web项目需要用异步跑一些任务,在web页面上提交后,接收一个执行状态,希望能在web后台看到提交的任务的执行进度异步任务的输出日志在任务脚本中可以自己添加网上解决方案在我这有问题参考了 Python subprocess.Popen 实时输出 stdout(正确管道写法)等多个相关问题的文章,但是在我的环境没法看到输出这些popen参数中的stderr都是使用的subprocess.PIPE、STDOUT、STDERR,subprocess.Popen('ping baidu.com

2021-03-29 14:29:10 5625

原创 python 判断in操作的时间复杂度

python 代码常用in来判断一个元素是否在list中,这个判断的时间复杂度是多少呢?in list : o(n)in set : o(1)in dict : o(1)具体的时间差多少呢,跑了下数据,具体如下list1 = list(range(100000))%timeit 1 in list151.3 ns ± 4.23 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)%timeit 100 in list1

2021-02-07 16:37:46 3870 1

原创 bootstrap的Modal使用,flask+python+bootstrap

flask之前用过,不过前端点框架没用过bootstrap,第一次使用终于通了。期间好多地方不知道怎么写,使用bootstrap提供点模板还是要修改一些东西才能够用。遇到的问题:点击提交按钮没有反应提交后,在flask中request.form为空flask js文件引用静态文件问题使用的模板:bootstrap的Modal这是bootstrap官网提供的modal模板<button type="button" class="btn btn-primary" data-toggle

2021-02-06 16:12:21 989 3

原创 hive sql 转 presto sql 的 常见问题:presto instr

都是sql,基本逻辑是一样的,常常出现问题是因为两边都函数不同导致hivesql没法在presto引擎下执行。在我的使用场景中,一些常见的需要替换的函数,现记录下。主要参考资料还是官方文档:Presto 0.246 Documentation时间转换相关的函数:这里format的格式很奇怪,本来date_parse和date_format是一样的,** 但是我这用到的format却不一样,你们用的是那个格式的format?**-- presto# 时间字符串 转 时间戳select to_u

2021-02-05 13:35:00 2605

原创 pyspark报错寻找解决方案

pyspark玄学问题spark报错问题怎么找?spark报错问题原因怎么找?spark报错问题解决方案怎么找?报错后就调spark conf 的参数,感觉太玄学了一般都吧问题原因归结到oom,解决就调大内存,调大partitionsspark报错问题怎么找?看 spark UI 提供的报错 log 日志# type1ExecutorLostFailure (executor 3 exited caused by one of the running tasks) Reason: Contain

2020-12-21 18:37:01 4330

原创 用python按时间戳查找kafka记录

需求:有一个kafka队列,我需要从中找到我想要的一条数据,目前知道的是数据的生成时间的大致范围和value中的一个字段内容。from kafka import KafkaConsumerimport jsontime_st = '1603344765476'txt = '随便一个字段.pptx'consumer = KafkaConsumer(group,topic,ip...)思路:基本逻辑:查询kafka的数据需要用到offset, partition来定位消费的开始的点。然后开

2020-10-23 17:19:42 1277

原创 使用手机半个钟头响铃一次

最近腰椎间盘突出了,医生建议半个小时起身活动一下,探索了下自己的iphone。找到相当完美的方案,记录如下。思路: 使用倒计时完成半小时或者20分钟的计时,倒计时结束后可以选择重新开始和结束倒计时。具体如下图流程第一步,设定倒计时,并开始计时第二步,等待倒计时结束,中间就是开心的工作了!第三步,倒计时结束了,手机开始响铃,提示大致如图,这里可以自由选择结束倒计时,还是选择重复,重新开始倒计时。是不是非常好用...

2020-10-10 17:32:20 372

原创 python基础之if条件判断

if后的多个条件依次判断, 遇到不符合的条件后直接跳转到else

2020-09-18 18:07:01 1697 1

原创 jinja2初次使用记录

官网: https://jinja.palletsprojects.com/en/2.11.x/安装: pip install Jinja2 or pip3 install Jinja2基础模块:基本使用:使用dataframe的数据填充html表格:用到的 templates.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <tit.

2020-08-31 19:03:41 806

原创 用python在excel画画

在B站看到一个人在excel画人像,秀的一手好技术,但是作为半个程序猿有点忍不了,所以有了这个小脚本。主要实现功能很简单,读取图片,把像素转化成excel的表格底色,保存到excel。import openpyxlfrom openpyxl.styles import PatternFillfrom PIL import Imagefrom openpyxl.utils.cell import _get_column_letterfrom datetime import datetimec

2020-05-30 21:40:02 740

原创 用写sql的思路写 pyspark

文章目录初始化:1. 查询筛选1.1 新增字段1.2 字段为list,包含子项2. group by 聚合2.1 想自定义聚合函数,3. 对数据结果排序4. join关联6. 窗口函数7. 加rank和排序8. 取topN10. 展开一个字段到多行初始化:from pyspark import SparkConf, SparkContextfrom pyspark.sql import HiveContextfrom pyspark.sql.utils import AnalysisExceptio

2020-05-09 21:37:01 394

原创 用写sql的思路写 Elasticsearch 的DSL

目录Elasticsearch的DSL基础操作基础查询筛选查询多条件教材筛选聚合查询排序对结果分页查询kibana可视化图表配置先挖坑,慢慢填Elasticsearch的DSL基础操作GET POST DELETE PUT HEAD 基础查询筛选查询多条件教材筛选聚合查询排序对结果分页查询kibana可视化图表配置(这个可以单开一个的吧)...

2020-04-16 17:41:53 178

原创 关于背单词,看到一个方法,想试试

想试试这个方法,具体的可以看B站视频简单整理了下,所以的模块都会被6次以上的背到。

2020-03-24 17:38:05 140

原创 Mac安装mysql,下载地址

目录1. 下载安装包2. 安装3. 开启binlog4. 其他常用配置1. 下载安装包下载地址:官网清华镜像,其他版本也有,下载速度还行阿里镜像2. 安装安装过程过于枯燥,下一步,等待,下一步,等待,结束注意:记得保存给的root初始密码。万一没保存,还可以从mysql的查询记录里找。3. 开启binlog4. 其他常用配置...

2020-03-13 21:52:11 205

原创 python读取文件路径问题

python读取文件时,明明在同一路径下,却无法读到文件,报路径不存在。问题比较奇葩,感觉自己对路径读取相关问题也不是很透彻,先挖坑后面清楚了在整理出来。现在把工程的.idea文件夹删除,然后重新导入工程目录解决了。这个可能跟pycharm的一些设置有关,但是在vscode上也不行,跟vscode也有关系?命令行单独执行脚本现在是ok的...

2020-01-10 12:02:10 648

原创 mac安装java8jdk

下载jdk官网http://www.trojan.cloud/offlinedownload/system/jdk/8/8u231/安装> java -versionjava version "1.8.0_231"Java(TM) SE Runtime Environment (build 1.8.0_231-b11)Java HotSpot(TM) 64-Bit S...

2020-01-08 17:23:58 1613

原创 用写sql的思路写dataframe:把sql语法转化成dataframe语法

查询表 a_table如下:classnameprojectscore一班张三语文80一班张三数学90二班李四语文80二班李四数学90查询筛选select name,scorefrom a_tablewhere class='一班' and project='语文'a_table = pd.DataFrame(.........

2020-01-03 16:59:51 1494

原创 mac path 环境变量配置

mac环境变量配置,把不同的内容分开来做。我一般分 alias 部分、shell个性化、软件环境的path 三部分。其中软件环境的path可能会比较多,就单独在做一个path文件在启动系统的环境时check下,在sourceNeon$ vim .bash_profile# aliasalias ll='ls -ahl'alias l='ls -hl'# colorfulexpo...

2019-12-25 10:38:56 941 3

原创 mysql忘记密码处理

1. 修改密码1.1 mysqld 跳过密码验证,用root登陆# 使用root权限,配置my.cnfroot# vim /etc/my.cnf#在mysqld下添加skip_grant_tables,保存后重启mysql[mysqld]skip_grant_tables1.2 登陆后修改用户名密码忘记密码还是因为没有一个test用户# 此时,启动mysql客户端时,可以跳过...

2019-12-03 21:40:45 76

原创 pgsql解析text格式json串语法

pgsql用的不多,遇到解析json的问题,查了下文档,可以这么处理,记录如下。下次再遇见的时候想不起来也有的查。-- 下面两个sql是等价的select name, json(name)->'n' as n,json(name)->'m',json(name)->'k'->'s' as s from public.t_user where ct is null;...

2019-11-18 18:53:15 2602

原创 flume.sink自定义实现sink输出异常[已解决]

flume自定义sink输出异常,是因为source端配置的问题。使用exec替换原来测试用的netcat,问题解决.

2019-11-18 17:36:35 533

原创 Mac查看CPU具体型号

sysctl命令可以查看很多系统的信息,可以用如下命令找到CPU的型号[11-02 21:51:55 xxx]$ sysctl -a |grep Coremachdep.cpu.brand_string: Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz

2019-11-02 21:55:39 6207

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除