自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

原创 python多进程卡死排查记录

问题背景:python程序一开始为单进程结构,属于CPU密集型计算任务,为提高性能调整为多进程并行计算。调整后运行时程序启动一会就全部进程卡死,不再往下运行。问题排查:程序中没有使用到进程锁或者分布式锁,所以先是排除了死锁的原因,可能为逻辑BUG或者代码异常。多进程下只好通过打日志的方式定位下程序运行到什么位置了,最后定位出不再往下运行的代码行为:msgs: Dict = kwargs['msgs']这部分...

2021-08-13 16:12:56 8120 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 1723 3

原创 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 1033 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 732 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 1355

原创 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 314

原创 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 311

原创 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 1804 1

原创 kafka partition offset的保存时间及重置

kafka partition offset的保存时间及重置1. 问题背景后端业务流程设计上有两个进程会以生产者和消费者角色操作kafka,每次操作会指定kafka topic下的指定partition,一段时间没用这个功能后,再次使用是发现消费进程从指定partition中取出的数据不是生产者新写入的数据;即存在重复消费问题2. 问题排查查看被消费的topic的数据情况查看使用的消费组在当前数据的消费情况此时消费进程还在开着,可以看到 CURRENT-OFFSET 还在增长.

2020-07-15 17:36:57 2212

原创 使用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 1649 4

原创 neo4j 删除重复节点

这里的重复节点指的是一个label下的部分节点,属性A相同,其他属性不相同问题背景: 本文中的数据为举例说明,实际数据不便展示,但表达的意思一致;1. neo4j中label为PERSON的的节点有name和wechat两个属性,关系type为FRIEND;2. 在进行数据的清洗和预处理过程中,name对应的wechat数据获取出现偏差,导致一个name在先后获取we...

2020-04-26 15:53:55 7478 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 2150

原创 使用py2neo查询/增加/删除neo4j索引

为避免在使用一个新建的graph_db时忘记创建索引,故在neo4j数据导入程序运行初进行索引的检查。实现方式为在配置文件中配置需要使用的索引信息, 和neo4j中已存在的索引进行比较, 根据比较结果进行索引的增加, 删除等配置文件config.pyclass CONFIG: class neo4j: host = "127.0.0.1" us...

2019-11-15 20:30:12 1892

原创 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 16952 1

原创 flask_sqlalchemy获取数据库中已有的表

许多flask_sqlalchemy都是在程序初始化时进行建表,当需要使用数据库中已存在的表时,有以下几种方法:- 1. 在程序中将该表以ORM模型的形式写出,可借助sqlacodegen工具生成,但似乎太费事了;- 2. 将已存在的表反射出来;反射数据库中已存在的表from flask_sqlalchemy import SQLAlchemyfrom flask_sqlalchemy ...

2019-03-05 12:56:52 11183 11

转载 redis 配置解析

我们可以在启动redis-server时指定应该加载的配置文件,方法如下:$ ./redis-server /path/to/redis.conf在配置文件的开头部分,首先明确了一些度量单位:# 1k =&gt; 1000 bytes# 1kb =&gt; 1024 bytes# 1m =&gt; 1000000 bytes# 1mb =&gt; 1024*1024 bytes# ...

2019-03-05 11:39:51 259

转载 [scikit-learn] 特征二值化编码函数的一些坑

1. 前言2. 问题起源2.1. 对付数值型类别变量2.2. 对付字符串型类别变量2.3. 无用的尝试3. 另一种解决方案4. 参考资料1. 前言这几天埋头撰写『优雅高效地数据挖掘——基于Python的sklearn_pandas库』&nbsp;一文,其中有一部分涉及如何批量并行地进行特征二值化,在此过...

2018-04-11 23:40:10 402

原创 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 6024

原创 利用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 3018 1

原创 MongoDB数据删除后的磁盘空间释放

mognodb 在删除数据的情况下不释放占用的磁盘空间,即使drop collection也不行,除非drop database。即,mongodb占用磁盘空间为10G时,删除8G数据后,数据文件占用空间大小仍是10G。"df"命令查看磁盘空间占用没有变化。平时可以通过mongo命令行来监控MongoDB的磁盘空间使用情况,如下所示:mongo&gt; db.serverStat...

2018-01-06 23:21:16 34098 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 2379

转载 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 345

基于关联规则的增量更新算法.pdf

分析了基于关联规则的增量数据挖掘算法 , 针对传统数据挖掘算法多次迭代扫描 , 数据库和最小支持度不能同时发生变化 , 数据结构复杂等的不足 , 提出哈希增量数据挖掘算法 HIUA 。该算法只需要扫描数据库一次 , 并且采用常用的哈希存储结构 , 数据结构简单 , 操作方便、可行 , 通过测试结果表明该算法是合理有效的。

2019-10-10

Beautiful Soup 4官方翻译版.pdf

Beautiful Soup 是一个可以从 HTML 或 XML 文件中提取数据的 Python 库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup 会帮你节省数小时甚至数天的工作时间

2019-10-08

streamparse文档

Streamparse可以让你运行Python代码来处理实时数据流,它还让Python与Apache Storm整合到一起。 你可以把sreamparse视为比Python worker-and-queue系统更健壮的替代品,它提供一个可以对在线数据流做“实时map/reduce风格计算”的方式,也提供一个用于扩展长时间运行、高并行的Python进程的的方式。

2018-09-10

python源码剖析(样章)

在最高的层次上,Python 的整体架构可以分为四个主要的部分,整个架构如 图 1 所示。在左边,是 Python 提供的大量的模块,库以及用户自定义的模块。 比如在执行 import os 时,这个 os 就是 Python 内建的模块,当然用户还可以通 过自定义模块来扩展 Python 系统。在本系列文章中,我们不会对这一部分进行 过多的考察。 在图的右边,是 Python 的运行时环境,包括对象/类型系统(Object/Type structures),内存分配器(Memory Allocator)和运行时状态(Current State of Python)。运行时状态维护了解释器在执行字节码时在不同的状态之间切换 的动作,我们可以将它视为一个巨大而复杂的有穷状态机。内存分配器则全权负 责 Python 中创建对象时对内存的申请工作,实际上它就是 Python 运行时与 C 中 malloc 的一层接口。而对象/类型系统则包含了 Python 中存在的各种内建对 象,比如整数,list 和 dict 等等 在中间的部分,可以看到 Python 的核心,解释器(interpreter)。在解释 器中,箭头的方向指示了 Python 运行时的数据流方向。其中 Scanner 对应词法 分析,将文件输入的 Python 源代码或从命令行输入的一行行 Python 代码切分为 一个一个的 token;Parser 对应语法分析部分,在 Scanner 的分析结果上进行语 法分析,建立抽象语法树(AST);Compiler 是根据建立的 AST 生成指令集合— —Python 字节码(byte code),就像 Java 编译器和 C#编译器所做的那样;最 后由 Code Evaluator 来解释并执行这些字节码。因此,Code Evaluator 又可以 被称为执行引擎。

2018-09-10

空空如也

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

TA关注的人

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