自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Leon的博客

但行好事,莫问前程

  • 博客(251)
  • 资源 (2)
  • 收藏
  • 关注

原创 k8s Prometheus+node-exporter+Grafana 监控

监控效果架构安装准备# image 依赖# docker pull prom/node-exporter# docker pull prom/prometheus:v2.0.0# docker pull grafana/grafana:4.2.0[root@ecs-ca42 promethus]# tree.├── configmap.yaml├── grafana│ ├── grafana-deploy.yaml│ ├── grafana-ing.yaml│

2020-11-24 16:23:59 728 1

原创 在 Gpu 上使用bert Ner

查看 gpu 支持# 查看 gpu 支持nvidia-smiWed Nov 11 09:28:37 2020+-----------------------------------------------------------------------------+| NVIDIA-SMI 418.67 Driver Version: 418.67 CUDA Version: 10.1 ||-------------------------------+-----

2020-11-12 09:29:04 1018 2

原创 flume+kafka nginx日志系统搭建完整流程

Apache Flume + Zookeeper + Fafka中间件 + 持久化存储 。用 Apache Flume 获取 nginx 日志,设置 sources 为 tail -f access-log,设置 sink 为 kafka 集群 ,从kafka 中取数据 结果存入 redis/mongo/es ,提供 API查询Nginx 日志 format 修改

2020-11-03 16:38:25 1423 2

原创 ElasticSearch 性能压榨优化-segment

本文的优化基于 ES 7.6.0 ,索引 主要集中在 TB级索引的查询写入优化分片的最佳平均大小是多少?分片的平均大小应在 几GB到几十GB之间。确定用例的最佳大小的最佳方法是使用您自己的数据和查询进行测试。此外,节点数 和 分片数目 应该设计成比例,这样有利于 分片 平均的 负载在 各个节点上,这样查询时产生的节点消耗将均衡 。副本的最佳数量是多少?副本的基

2020-10-12 16:08:57 2343 7

原创 Redis 的单线程设计、深度剖析IO多路复用的具体实现

Redis 的单线程是否真的是单线程?为什么要采用单线程设计?Redis 单线程为什么快Redis 中事件驱动的实现

2020-09-04 17:03:38 796

原创 Keras TensorFlow 验证码识别(附数据集)

效果先看效果图,左边是 两张测试数据,右边是 预测结果标注数据集下载地址已更新实现1. 训练模型bathcsize 为 700 轮次 50#!/usr/bin/env python# coding: utf-8# # 训练模型# # ## 引入第三方包# In[1]:from PIL import Imagefrom keras import backend as Kfrom keras.utils.vis_utils import plot_modelfrom ke

2020-08-14 09:16:36 3700 2

原创 Redis过期策略以及内存淘汰机制

如果你的 Redis 只能存10G数据,你写了12G,那么 Redis 会怎么淘汰那2G数据呢?过期键删除策略我们都知道,删除键的目的,就是释放内存占用。那么,当一个键过期了,Redis 什么时候会去删除她呢?定时删除设置键的过期时间时,创建一个 Timer ,当过期时间到临时,立刻删除键。内存友好型策略,一旦键过期,就会被删除,并释放所占用的内存,Cpu 不友好,当一...

2018-06-21 18:28:59 23318 5

原创 lower_case_table_names

删除 Students ,则 students 被删除, Students 因为指向 students ,也无法访问。默认下,lower_case_table_names默认值为 0 .Windows下默认值是 1 .Mac OS X下默认值是 2。lower_case_table_names 在0 的时候, Students 和 students。lower_case_table_names在8.0后不支持修改,只有在初始第一次时候支持配置。0 表名存储区分大小写 查询区分大小写。

2023-07-11 13:30:27 822

原创 kibana 的oom问题 JavaScript heap out of memory

Old space是 V8 托管(也称为垃圾收集)堆(即 JavaScript 对象所在的位置)中最大和最可配置的部分,而 --max-old-space-size 标志控制其最大大小。发现是 kibana前端 js 报的内存 oom 异常,通过网上资料发现node.js 的默认内存大小为1.4g ,那么问题就定位到修改node 的内存限制。总之,在具有 2GB 内存的机器上,我可能会将 --max-old-space-size 设置为大约 1.5GB 以留出一些内存用于其他用途并避免交换。

2023-03-21 10:35:47 741 1

原创 Golang alpine Dockerfile 最小打包

golang 打包docker的报错解决为啥我的go项目 build打包docker后报这个错误呢docker: Error response from daemon: failed to create shim: OCI runtime create failed: runc create failed: unable to start container process: exec: “qycloud-irisOps”: executable file not fou

2023-03-06 10:16:21 804

原创 深入 Kubernetes之——容器网络

而网络插件则在宿主机上创建了一个特殊的设备(UDP 模式创建的是 TUN 设备,VXLAN 模式创建的则是 VTEP 设备),docker0 与这个设备之间,通过 IP 转发(路由表)进行协作。所以说,我们在进行系统级编程的时候,有一个非常重要的优化原则,就是要减少用户态到内核态的切换次数,并且把核心的处理逻辑都放在内核态进行。这个网桥的名字就叫作:CNI 网桥,它在宿主机上的设备名称默认是:cni0。在由 Flannel 管理的容器网络里,一台宿主机上的所有容器,都属于该宿主机被分配的一个“子网”

2022-10-03 16:22:47 510

原创 深入 Kubernetes之离线任务Job 与 CronJob

这个模式看起来虽然很“傻”,但却是 Kubernetes 社区里使用 Job 的一个很普遍的模式。离线任务和Deployment、StatefulSet,以及 DaemonSet的差别在于,离线任务运行结束之后就会退出,而Deployment-Pod 会在计算结束后退出,被 Deployment Controller 不断地重启。如果Job失败 Error ,Job Controller 就会不断重试创建 Pod,这里定义了backoffLimit: 4 ,也就是重试4次,重试时间是10,20,40…

2022-10-02 13:39:55 524

原创 深入Kubernetes 之 DaemonSet :容器化守护进程

使用 RollingUpdate 更新策略时,在更新 DaemonSet 模板后, 老的 DaemonSet pods 将被终止,并且将以受控方式自动创建新的 DaemonSet pods。OnDelete: 使用 OnDelete 更新策略时,在更新 DaemonSet 模板后,只有当你手动删除老的 DaemonSet pods 之后,新的 DaemonSet Pod 才会被自动创建。在它的控制循环中,只需要遍历所有节点,然后根据节点上是否有被管理 Pod 的情况,来决定是否要创建或者删除一个 Pod。

2022-10-02 12:05:34 647

原创 K8s有状态应用(StatefulSet)之Mysql集群

难点:如何让从节点,拥有主节点的数据,Master 和 Slave 节点的复制和同步。1 安装 master 节点2 通过 XtraBackup 将 master 节点的数据备份到指定目录。生成 xtrabackup_binlog_info3 配置 slave 节点,将master 数据,备份信息文件,拷贝到 数据目录,执行:4 启动slave5 在这个集群中添加更多的 Slave 节点1 Master 节点和 Slave 节点需要有不同的配置文件(即:不同的 my.cnf);2 Master 节

2022-10-01 14:55:34 982

原创 k8s集群新节点的加入流程

加入需求:现有node2 机器 copy 镜像到 node5,6,7要求 5,6,7加入 master#在 copy 的节点上 运行 kubeadm reset#在 master 节点上 # 获取 token kubeadm token create q1p35e.pdiiofa81j# 运行 获取 cert-hashopenssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform d

2021-08-23 16:09:29 1293

原创 Mac上反编译apk的几种办法

1 apktool + dex2jar + jd-guiapktool#apktool:brew install apktool# check apktool install sw@MacBook-Pro ~ % apktool -version2.4.1# 反编译目标APK文件,执行完毕后目录下会生成反编译apk的对应文件夹apktool d abc.apk# 编译生成的classes.dex文件dex2jar从这里下载 dex2jar解压dex2jarsh d2j-d

2021-03-30 17:04:44 2993

原创 3TB大小的ElasticSearch迁移数据量太大遇到的问题

本文记录最近迁移ES遇到的问题和解决办法,迁移的方式是从线上es scroll 导出到json,再想办法导入本地机房,可能迁移有其他的办法,不一定这种就是最好的,我这里选择 scroll 是因为各种限制,这样是最方便的,这里主要讨论的是scroll之后,遇到的问题。1 scroll 拉取就是基本的 scroll ,设置了10w行做一个单独的json文件,方便我后续的处理from utils.esd import ES_CLIENT, ES_CLIENT_LOCALfrom elasticsea.

2020-12-13 14:42:17 999

原创 elasticsearch nested 增删改查

增PUT /precedent/_mapping{ "properties": { "clean_process": { "properties": { "stand": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256

2020-10-19 17:08:22 1904 1

原创 部署 Dashboard 2.0 + Metrics 监控 Pods node 负载

Kubernetes Dashboard 从v2.0.0-beta1版本开始,集成了一个 metrics-scraper 的组件,可以通过 Kubernetes 的 Metrics API 收集一些基础资源的监控信息,并在web页面展示。这次就是想用 metrics-scraper1 使用 openssl 签发证书mkdir certsopenssl req -nodes -newkey rsa:2048 -keyout certs/dashboard.key -out certs/dashb.

2020-09-27 16:57:17 1086

原创 k8s流水线发布部署

一开始是想用 Jenkins 来做的,不过我们这边的代码放在code上,愣是没找到 Jenkins 的插件配置 git 的 hook ,碰巧发现了 code 这个平台的 Flow 工具,于是就用了Code + Flow + 自建K8 这一套来实现,原理上都是一样的 ,web hook 提交打包镜像,k8 发布部署容器,运行服务。1. 包含工具Codeup 等同于 Gitlab、Coding 等代码托管平台Flow 等同于Jenkins等 CI集成工具自建 K8s 集群 用于 CD发布 服务2.

2020-09-24 09:57:07 2955

原创 用K8s实践部署可扩容缩减的项目实战

这边用一个清洗项目来做一个简单的部署例子,这个项目的功能是,启动一个消费rabbitmq 的项目,mq中存储的是数据队列,容器消费mq 清洗数据处理项目 clean.yaml---apiVersion: apps/v1beta1kind: Deploymentmetadata: name: clean-pod labels: app: cleanspec: replicas: 4 template: metadata: labels: .

2020-09-22 14:18:34 728

原创 kubernetes 集群搭建1.11.3+dashboard

本文环境:centos:7docker:18.06k8:1.11.3前置准备# 3台内网ip + hostname172.16.0.175 k8s-master172.16.0.100 k8s-node1172.16.0.147 k8s-node2# 更改 hosts echo -e "172.16.0.175 k8s-master\n172.16.0.100 k8s-node1\n172.16.0.147 k8s-nod

2020-09-20 21:15:32 474

原创 爬虫问题汇总

request / BeautifulSoup 解析 ISO - 8859 - 1 / GB2312 页面乱码错误设置 r.encoding = ‘GB2312’# r.encoding = 'GB2312'r = requests.get(i,) print(r.encoding) # ISO - 8859 - 1 r.encoding = 'GB2312'print (r.text) :# 国物权法》(上册),张双根译,法律出版社</span><s

2020-09-11 10:42:06 194

原创 tornado 消费队列并配合 superviosr 优雅重启

当你用tornado 作为一个消费队列的实例,如果tornado 异常了,如何在消费队列中重启tornado实例,并继续下一个消费?

2020-06-20 10:07:58 289

原创 用 scroll 和 bulk 拉取和上传千万级 elastic 索引

最近遇到个需求,索引迁移,本来应该用es的reindex,不过由于业务限制等原因,没法使用,使用了 scroll 和 bulk 完成了迁移,记录代码scroll 拉取到csv文件from elasticsearch import Elasticsearchfrom elasticsearch import helpersimport timeimport json# 188 -> 线上class Get_es: def __init__(self): self

2020-06-13 16:38:41 623 1

原创 nginx 反向代理的缓存问题

http { proxy_cache_path /data/nginx_cache/ levels=1:2 keys_zone=my_zone:10m inactive=60s max_size=5g;#访问时间,过期就会删除}#es判例的location ~ /es/precedents { proxy_cache my_zone; proxy_cache_valid 200 304 10m;#这个是文件缓存时间,和访问频率无关 proxy_ignore_h.

2020-06-13 16:03:31 792

原创 Elastic 分片设计及管理

分片设计Es分片水平扩展/rebalancing创建索引时,为索引设计的分片数,会自动分布在集群的节点上,当节点增加时,es也会自动进行分片的移动,这叫做 shard rebalancing多分片的好处:数据写入可以分散到多个机器上查询可以并行进行增加机器,可以no downtime 的水平扩展/分片的重新分配分片的设计与管理——分片是ES存储数据的地方,本质是一个lucene的索引,分片是ES机器实现水平扩展的最小单位,用她来存储数据必然会消耗系统的性能,如果存储的数据过

2020-06-11 15:17:46 1158

原创 Mongo 副本集创建

1修改配置文件sudo vim /usr/local/mongodb4.2/bin/mongodb.conflogpath=/Users/sw/mongodata/logs/mongodb.logfork=truelogappend=truedbpath=/Users/sw/mongodata/dbwiredTigerCacheSizeGB=2port=27017replSet=rs0auth=truekeyFile=/Users/sw/keyfilesudo vim /usr/l

2020-06-10 10:22:29 268

原创 用wt文件恢复mongodb

安装 wt 工具wget http://source.wiredtiger.com/releases/wiredtiger-3.0.0.tar.bz2tar xvf wiredtiger-3.0.0.tar.bz2cd wiredtiger-3.0.0sudo yum install snappy-devel -y./configure --enable-snappymake修复 wt 文件将要修复的mongo的 存储目录整个复制一份到 data ,这里比如我要恢复 colle

2020-06-10 10:17:43 5303 1

原创 screen + rc.local 实现开机自启动多个窗口命令

话不多说,上代码开机启动就不多赘述了,自行百度,这篇博客主要说的是,screen 在开启自启动脚本中的用法。直接写 screen -S xxxx 是会报错,无法自启动的。下面附上一个启动多个screen 任务的脚本 ,直接用就行#!/bin/sh #chkconfig: 2345 80 90 #description:*****# 开启一个sh脚本的运行窗口screen_name1="bash_service"screen -dmS $screen_name1cmd2="bash /ho

2020-05-21 16:23:40 1132

原创 pika python rabbitmq 优先级队列、查看队列剩余数目

话不多说,直接上代码。python3.6 pika 实现rabbitmq 优先级队列Sendimport pikaimport sysimport time# 远程rabbitmq服务的配置信息username = '用户名' # 指定远程rabbitmq的用户名密码pwd = '密码'ip_addr = 'ip'port_num = 5672# 消息队列服务的连接和队列的创建credentials = pika.PlainCredentials(username, p

2020-05-21 16:17:22 2648 1

原创 倒排索引增量更新如何被实时检索?

正排索引与倒排索引索引的目的: 使根据 key 查询 value 的速度变快正排索引:Forward Index ,以一个对象的唯一ID 为Key 的哈希索引结构倒排索引:Inverted Index 根据具体内容,反过来查询文档 key ,根据内容(字典),查询对应的文档列表(记录列表)倒排索引的创建:1 文档唯一编号,排序,遍历文档2 解析文档,生成, <关键字,文档ID,关键字Index> (查询多个关键字时,可以比较多个关键字的位置)3 生成 关键字 对应的 (文

2020-05-14 11:26:45 969

原创 解析redis bitmap数据

import redisimport binascii#连接redispool = redis.ConnectionPool(host='122.112.163.26', port=6379, db=0, password='fb0401')r = redis.Redis(connection_pool=pool)#获取bitmap 存储 的字符 ==> b'` \x00\x0...

2020-04-25 17:12:15 416

原创 Redis源码4.0阅读日记 (2)字典dict

dict.h哈希表节点typedef struct dictEntry { void *key; //键 union { void *val; uint64_t u64; int64_t s64; double d; } v; // 值 struct dictEntry *next; // 指向下...

2019-12-26 10:44:10 265

原创 Redis源码4.0阅读日记 (1)内存管理 zmalloc

Redis源码4.0阅读 之 内存管理 zmalloc本文分析了 Redis 的 zmalloc.c 和 zmalloc.h 代码全文注释,分析实现

2019-12-11 17:31:11 499

原创 191. 位1的个数

题目描述编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。示例 1:输入:00000000000000000000000000001011输出:3解释:输入的二进制串 00000000000000000000000000001011 中,共有三位为 '1'。示例 2:输入:000000000000000000000000100...

2019-12-09 09:07:18 217

原创 Python3 列表解析和迭代器的内存占用过程分析

列表解析表达式先来看一个例子~ Leetcode 171 题解法很简单: sum = 0 for i in range(0, len(s): sum += 26 ** (len(s) - 1 - i) * (ord(s[i]) - ord("A") + 1) return sum那么,这里也可以这么写。 return sum...

2019-12-05 16:22:12 1320

原创 56. 合并区间 python3

给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。c...

2019-12-03 14:14:52 326

原创 文件名路径有/ 导致目录不存在的问题 No such file or directory

在目录中存在/ 时,读取或写入就会报错 FileNotFoundError: [Errno 2] No such file or directory解决办法如下:title = "ELK CI/CD 部署实践2017-11-06 by leon.pdf"#替换以下的 半角符号 --> 全角符号title = title.replace('/', '/') \ .repl...

2019-11-29 15:12:54 3095

原创 Python3 设置 profile 环境变量

服务器环境 centos7.3 ,由于服务器上profile设置了代理代理仅限访问 A 网站,这时,我需要在我的 Python 脚本中访问 B 网站 ,就会因为代理的原因 无法访问B网站。总不能每次都运行脚本前去 修改 profile 文件 删除代理吧?在python中删除代理 / 修改环境变量OS模块 system (Failed)发现依然是拒绝访问,说明不能通过这种方式(...

2019-11-21 10:12:26 1731

prometheus.tar.gz

Prometheus+node-exporter+Grafana-yaml Prometheus+node-exporter+Grafana-yaml

2020-11-24

train-data.zip

leon验证码标注集 https://siwei.blog.csdn.net/article/details/107997005

2020-08-14

空空如也

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

TA关注的人

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