- 博客(22)
- 资源 (4)
- 收藏
- 关注
原创 python多进程卡死排查记录
问题背景:python程序一开始为单进程结构,属于CPU密集型计算任务,为提高性能调整为多进程并行计算。调整后运行时程序启动一会就全部进程卡死,不再往下运行。问题排查:程序中没有使用到进程锁或者分布式锁,所以先是排除了死锁的原因,可能为逻辑BUG或者代码异常。多进程下只好通过打日志的方式定位下程序运行到什么位置了,最后定位出不再往下运行的代码行为:msgs: Dict = kwargs['msgs']这部分...
2021-08-13 16:12:56
9020
1
原创 Flink 学习笔记 4. Job的提交运行
Flink version: 1.11.31. 打包Job Jar将前面的流处理WordCount打包成jar包,入口类为com.mit.wc.StreamWordCount2. web UI 提交Job2.1 提交Jar包到JobManager, 并配置相应执行参数我这里是docker-compose启动的flink环境,所以监听的socket host是宿主机IP;2.2 可以通过 Show Plan 查看执行图执行图与并行度的设置有关,并行度的优先级顺序为 算..
2021-01-24 14:35:14
1898
4
原创 Dockerfile 构建 Flume 镜像
flume version: 1.9.01. 依赖的服务/组件- java8- flume 1.9.0- supervisor-4.2.1 -setuptools-44.0.0 # 这里是基于centos7的镜像,内置python版本为2.7.6,所以需要一个支持py2的setuptools版本 -meld3-2.0.12.下载离线安装包jdk8 https://repo.huaweicloud.com/java/jdk...
2021-01-04 21:26:09
1229
1
原创 Flume NetCat UDP Source 获取客户端IP
Flume-ng version: 1.9.0Flume 官方文档:http://flume.apache.org/- 官方文档中关于 NetCat UDP Source 的说明如下:其中 remoteAddressHeader 这一项就是指定一个 key 用于再header中存放客户端IP,但实际使用中发现存在出入。- 先编写一个自定义拦截器,将接收的event header和body在debug模式下打印出来看下,拦截器代码如下:package com.mit.DC;i.
2020-12-30 00:04:43
825
1
原创 Flink 学习笔记 3. docker-compose 搭建Flink环境
docker-compose version 1.27.4, build 40524192flink image tag:1.11.3-scala_2.12-java8docker hub 查看可用的flink镜像,这里选用的是1.11.3-scala_2.12-java8 这个tag的镜像1. 拉取Flink 1.11.3 镜像docker pull flink:1.11.3-scala_2.12-java82. 本地创建一个docker-flink目录用于搭建f...
2020-12-23 20:33:35
1464
原创 Flink 学习笔记 2. 流处理WordCount
Flink version: 1.11.31. StreamWordCount.java这里使用 socketTextStream 作为流式数据源package com.mit.wc;import org.apache.flink.api.java.tuple.Tuple2;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.enviro..
2020-12-23 12:11:32
425
原创 Flink 学习笔记 1. WordCount
Flink version: 1.11.3目录1. 创建project2. 在resource下创建数据源文件 hello.txt3. 创建 com.mit.wc.WordCount.class3. 运行WordCount1. 创建project使用gradle创建项目,build.gradle 配置内容为plugins { id 'java'}apply plugin: 'java'apply plugin: 'idea'sourceCom...
2020-12-22 21:29:40
349
原创 docker 修改无法启动的容器内的文件
docker 修改无法启动的容器内的文件docker 修改已停止的容器内的文件修改了docker内服务的配置文件, 修改后重启docker时因为配置错误导致docker无法启动, 这时无法通过exec方式再次进入容器进行修改。# 1. 查看容器日志,一般可以看出是哪里改错了docker logs <containerID># 2. 将修改错误的配置文件拷贝到宿主机上docker cp containerID:container_path host_path# 3. 修改拷..
2020-07-22 11:39:18
1873
1
原创 kafka partition offset的保存时间及重置
kafka partition offset的保存时间及重置1. 问题背景后端业务流程设计上有两个进程会以生产者和消费者角色操作kafka,每次操作会指定kafka topic下的指定partition,一段时间没用这个功能后,再次使用是发现消费进程从指定partition中取出的数据不是生产者新写入的数据;即存在重复消费问题2. 问题排查查看被消费的topic的数据情况查看使用的消费组在当前数据的消费情况此时消费进程还在开着,可以看到 CURRENT-OFFSET 还在增长.
2020-07-15 17:36:57
2555
原创 使用celery canvas中的group任务类型实现分组任务
1. 需求背景: 某个业务需求实现过程需要对发布到celery的异步任务进行拆分,得到两个并行执行的子任务,同时在主任务的进度反馈中需要更新子任务的进度;2. 实现方案: 1. 任务发布端通过 "send_task()" 方式进行任务发布; 2. worker接收到任务后,创建 group 任务,子任务的调用方式为 "task signature"; 3. 进度的更新利用了 celery res.get() 方法中的 "on_message" 回调进行任务状...
2020-05-22 18:47:40
1944
4
原创 neo4j 删除重复节点
这里的重复节点指的是一个label下的部分节点,属性A相同,其他属性不相同问题背景: 本文中的数据为举例说明,实际数据不便展示,但表达的意思一致;1. neo4j中label为PERSON的的节点有name和wechat两个属性,关系type为FRIEND;2. 在进行数据的清洗和预处理过程中,name对应的wechat数据获取出现偏差,导致一个name在先后获取we...
2020-04-26 15:53:55
8045
1
原创 vcenter 问题排查--vcenter api上传文件至虚拟机报500错误
vcenter 问题排查–vcenter api上传文件至虚拟机报500错误文章目录vcenter 问题排查--vcenter api上传文件至虚拟机报500错误1. 问题背景2. 问题排查记录1. 问题背景vcenter由5.5升级到6.0后,向esxi下的windows10虚拟机上传文件,vcenter api反馈500,但向同esxi下的windows7虚拟机上传文件是成功的。2...
2019-12-19 12:32:41
2412
原创 使用py2neo查询/增加/删除neo4j索引
为避免在使用一个新建的graph_db时忘记创建索引,故在neo4j数据导入程序运行初进行索引的检查。实现方式为在配置文件中配置需要使用的索引信息, 和neo4j中已存在的索引进行比较, 根据比较结果进行索引的增加, 删除等配置文件config.pyclass CONFIG: class neo4j: host = "127.0.0.1" us...
2019-11-15 20:30:12
2043
原创 redis 限制内存使用大小
记录一次生产环境问题排查过程:生产环境部署方式:nginx + uwsgi + flask问题描述:发现生产环境中之前正常运行的服务突然不可用了,查看程序日志发现部分接口访问时报I/O写错误,nginx acess.log显示504,error.log显示 upstream time out.同时 netstat -apn | grep 6379 | wc -l 检查发现redis存...
2019-03-06 01:09:40
17063
1
原创 flask_sqlalchemy获取数据库中已有的表
许多flask_sqlalchemy都是在程序初始化时进行建表,当需要使用数据库中已存在的表时,有以下几种方法:- 1. 在程序中将该表以ORM模型的形式写出,可借助sqlacodegen工具生成,但似乎太费事了;- 2. 将已存在的表反射出来;反射数据库中已存在的表from flask_sqlalchemy import SQLAlchemyfrom flask_sqlalchemy ...
2019-03-05 12:56:52
11494
11
转载 redis 配置解析
我们可以在启动redis-server时指定应该加载的配置文件,方法如下:$ ./redis-server /path/to/redis.conf在配置文件的开头部分,首先明确了一些度量单位:# 1k => 1000 bytes# 1kb => 1024 bytes# 1m => 1000000 bytes# 1mb => 1024*1024 bytes# ...
2019-03-05 11:39:51
293
转载 [scikit-learn] 特征二值化编码函数的一些坑
1. 前言2. 问题起源2.1. 对付数值型类别变量2.2. 对付字符串型类别变量2.3. 无用的尝试3. 另一种解决方案4. 参考资料1. 前言这几天埋头撰写『优雅高效地数据挖掘——基于Python的sklearn_pandas库』 一文,其中有一部分涉及如何批量并行地进行特征二值化,在此过...
2018-04-11 23:40:10
445
原创 python 执行shell命令无法获取返回值的解决方法
问题背景:利用python获取服务器中supervisor状态信息时发现未能获取到返回值。python获取执行shell命令后返回值得几种方式:# 1.os模块ret = os.popen("supervisorctl status")ret_data = ret.read()# 2.subprocess模块ret = subprocess.Popen('supervisorctl sta...
2018-03-21 12:05:35
6190
原创 利用Linux的crontab实现python定时任务
linux 系统下的crontab 定时任务:*/2 表示定时任务周期。cron 执行日志 /var/log/croncrontab -e 添加定时任务crontab -l 查看添加的定时任务1.Ubuntu:service cron start / status / restart / stop编辑 /etc/crontab 文件添加定时任务:
2018-01-06 23:37:21
3066
1
原创 MongoDB数据删除后的磁盘空间释放
mognodb 在删除数据的情况下不释放占用的磁盘空间,即使drop collection也不行,除非drop database。即,mongodb占用磁盘空间为10G时,删除8G数据后,数据文件占用空间大小仍是10G。"df"命令查看磁盘空间占用没有变化。平时可以通过mongo命令行来监控MongoDB的磁盘空间使用情况,如下所示:mongo> db.serverStat...
2018-01-06 23:21:16
34562
1
原创 利用supervisor替换redis自带的守护
使用中发现有redis-server停止后未重启的情况redis本身自带daemon,可查看redis自身配置文件:################################ GENERAL ###################################### By default Redis does not run as a daemon. Us
2018-01-06 23:01:06
2445
转载 zip bzip2 gzip xz tar文件解压缩
//压缩文件zip bzip2 gzip xz tar确定文件格式file xxx //查看文件压缩格式1.zip压缩 zip -r xxx.zip xxx ==> xxx.zip解压 unzip xxx.zip //解压后xxx.zip存在2.gzip压缩 gzip xxx ==> xxx.gz解压 gunzip xxx.gz ==> xxx 解压后xxx.g
2018-01-06 22:26:41
384
Beautiful Soup 4官方翻译版.pdf
2019-10-08
streamparse文档
2018-09-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人