- 博客(50)
- 资源 (15)
- 收藏
- 关注
原创 X-Pack的machine learning
如何使用X-Pack的machine learning 最近在使用X-Pack中的机器学习功能,主要的就是利用非监督的时间序列模型,用来检测流量的变化,关于X-Pack这块的文章好像可以参考的比较少,所以我在这篇文章中大致的把X-Pack的机器学习功能做一个简单的介绍。1. X-Pack的安装我们本身是要搭建一个ELK平台,X-Pack只是其中的一部分,ELK平台的搭建网上有
2018-01-31 23:32:34 2692
原创 pyspark的pickle.PicklingError
今天在用pyspark的时候在一个类中调用rdd的map的时候报错,代码如下:rdd = df.filter(size(df.emission) > 50).\ rdd.map(lambda row:hmm_learn(row, self._id))rdd.collect()运行的时候报错: pickle.PicklingError: Cannot pickle files
2017-08-21 18:08:27 4512 1
原创 一行代码引发的"血案"
昨天在使用pykafka的时候又遇到了之前我遇到过的PartitionOwnedError、ConsumerStoppedException异常,关于这个异常我之前写过一篇分析的文章(链接在这里),我自认为之前应该是把这个问题彻底解决了的,但是这次它又幽灵般的出现了,使我百思不得其解。 一、问题的出现 我在多台机器上面同时开启了多个进程来读写同一个topic,这个topic有5个partitio
2017-07-15 17:07:17 3116
原创 Python2的function cache实现
今天看到Python3中有lru_cache的function cache,无聊就试着在Python2.7中实现了一个简单的版本:#!env python#coding=utf-8# # Author: liuxingen@nsfocus.com# # Created Time: 2017年05月28日 星期日 09时34分06秒# # FileName: test
2017-05-28 10:19:14 2908
原创 multiprocessing解析(二):Pool解析
前面一篇已经把multiprocessing.Process这个最基础的类给解剖了,接下来的这篇就是整个multiprocessing中最重要的类Pool的浅析了,因为如果把Pool的所有方方面面都顾及到的话篇幅会比较长,所以我只会把Pool的整体框架整理一下,细节的内容可以更多的去阅读源码。 1. multiprocessing.Pool的几个参数的解读 Pool的构造参数中有三个我认为比较有
2017-05-22 19:21:07 11912
原创 multiprocessing解析(一):Process的解析
最近项目中为了提升Python的运行效率,要使用到multiprocessing模块,场景其实不算复杂但是为了避免带来一些隐晦的bug,我觉得还是深入了解一下它比较好。因为当我使用multiprocessing的时候我觉得Python替我做的事情太多了(其实也就是用multiprocessing太方便了)给我带来了快感却没有安全感,还有一个主要的原因就是我觉得fork是最”奇幻”的函数。 可能会分
2017-05-21 09:45:41 23289
原创 pykafka性能比较
最近做了一下pykafka的性能测试,主要涉及到use_greenlets、use_rdkafka、sync这三个参数。 1. 测试的数据 我用一个770MB的日志文件来作为测试数据,文件包含的行数为10175702 行。 2. 测试的demo 在写测试demo的时候遇到了几个问题,别看这么简单、很短的代码却也遇到了几个”棘手”的问题。#!env python#coding=utf-8#
2017-05-12 22:41:32 8172 7
原创 python-daemon日志记录的一个小问题
最近用到了python-daemon这个库来使一个进程成为daemon进程,代码大致如下:#!env python#coding=utf-8import loggingimport multiprocessingimport logging.configimport daemonfrom test import wrapper2logger = Nonepool = Nonedef m
2017-05-04 13:46:16 3236
原创 Django的request.POST获取不到内容的原因
我通过如下的一段程序发送post请求:import urllib3pool = urllib3.connection_from_url('http://127.0.0.1:8090')resp = pool.request('POST', '/polls/', fields={'key1':'value1', 'key2':'value2'}, headers={'Content-Type':'
2017-01-07 17:34:14 26808 15
原创 解决centos中"ImportError: No module named _tkinter"问题
今天想要用Metasploit的时候出现了"ImportError: No module named _tkinter"的错误,_tkinter是被Tkinter模块引用的,因为对Tkinter不太熟悉所以也不知道为什么会有这个错误。 我本身是在centos中,而且系统中存在不同的账号分别使用了不同版本的Python,所以我先在root账号下试了一下import Tkinter是OK的,接着用命令
2016-12-28 14:16:18 8597
原创 pykafka的SessionExpiredError、PartitionOwnedError、ConsumerStoppedException
这两天一直在使用pykafka做简单的开发,但是这个看起来简单的开发任务中却遇到了几个问题,在网上找了一下好像关于这几个问题的讨论(回答)不多,在这里记录一下,为其他遇到类似问题的同学提供一些思路。 任务简化一下就是多个输入把日志信息输入kafka队列中,为了提高处理的效率在队列的另外一端开启多个进程处理日志信息,也就是对一个topic有多个consumers,所以理所当然的用到了kafka的b
2016-11-26 18:24:03 4591 1
原创 pykafka的NoBrokersAvailableError原因
pykafka NoBrokersAvailableError kafka
2016-11-17 16:34:27 36149 4
原创 kafka启动过程中的一个小问题
最近项目要用到kafka,按照网上的示例操作一遍,发现第一步就会报错,折腾了半天才发现问题的原因。这里记录一遍以避免同样的问题。第一步下载了kafka的tar源码包,然后要启动zookeeper,执行如下命令: bin/zookeeper-server-start.sh -daemon config/zookeeper.properties此时就会有如下的错误出现: 错误: 找不到或无法
2016-11-06 11:33:07 6042 3
原创 Python相对、绝对导入浅析
这篇文章从另外一个不同的视角来分析一下Python的import机制,主要的目的是为了搞懂import中absolute、relative import遇到的几个报错。 这里不同的视角是指从Python import hooks这个方面来展开,当然本身关于Python import hooks有很多的文章,我这里不打算展开聊这个方面的内容,文章中主要会结合代码和PEP 302 – New Impo
2016-09-15 16:10:41 23960 1
原创 如果获得页面跳转的最终URL
最近做一个小功能,就是获取一个页面经过跳转后的最终页面URL,这里的跳转方式包含但不仅限于HTTP 301/302、js、meta refresh。下面是我想到的三种可能的解决方式,可能会有更优的方法,期望大家提出更好的方法。首先的解决方法就是解析html页面,获得html页面中跳转的URL。 这种方式是我能想到的最高效、速度最快的方法,但是也有可能是最难维护的,因为我们必须对各种跳转方式都要了
2016-08-06 16:15:23 31209 7
原创 Cython初窥
这篇关于Cython的文章主要是用来阐述什么是Cython,Cython的主要用途是什么。对于Cython的具体用法基本不涉及,因为我觉得了解它的主要用途以及它的优缺点,那么等到有使用场景的时候再来学习一下它的document就可以了。 1. Python的扩展模块(extention module) 我们知道可以用c、c++来扩展Python,这样做的目的就是为了把一些关键功能用更快、更高效的
2016-06-14 14:38:03 8291
原创 HTTP的303、307状态码
之前在《http权威指南》中看到了HTTP的307状态码,当时因为没有找到可以实验的网站所以没有比较深的印象,今天在排查一个问题的时候恰巧遇到了HTTP/1.1 307 TemporaryRedirect,所以特意记录一下。 客户的站点url为:http://www.seechina.com.cn:80,我用命令curl http://www.seechina.com.cn:80 -vv执
2016-05-26 22:43:33 66863 1
原创 ImportError: No module named 'xxx'的另外一种原因
今天遇到了一个关于Python的ImportError: No module named 'xxx'问题,其中也算是一些经验总结,特记录如下。 问题的场景大致是这样的:在django中我新建了一个名为sitesetting的app,这个app不是通过django的python manage.py startapp sitesetting命令来新建的,而是我手动mkdir sitesettin
2016-05-19 09:32:23 23864 3
原创 DNS的备忘
最近稍微深入的了解了一下DNS,本文记录过程中的一些知识点作为备注。 1. 权威应答or非权威应答 在用nslookup来查询域名的DNS时有时候会出现“Non-authoritative answer“的情况。其现象如下:lxg@lxg-ThinkPad-X240:~$ nslookup baidu.comServer: 127.0.1.1Address: 127.0.1.1
2016-05-10 22:27:39 4223
原创 遇到的一个坑
遇到的一个坑 这两天没事看了一下Python的metaclass机制,然后把网上的一个示例直接拿来跑了一下。在示例的基础上面加了一点其它的功能想验证一下自己的想法,发现出现了一个很诡异的情形,最后发现是自己给自己挖的一个坑。1. Python的metaclass 关于Python的metaclass机制文章网上已经有很多优秀的文章了,我就不再赘述了,简单的总结一下我的理解: 1. Pytho
2015-12-01 13:36:30 1201
原创 Python的星号(*、**)的作用
Python的星号(*、**)的作用1. 函数的可变参数当函数的参数前面有一个星号*的时候表示这是一个可变的位置参数,两个星号**表示是可变的关键字参数。#!env python#coding=utf-8#def foo(*args, **kwarg): for item in args: print item for k,v in kwarg.items():
2015-11-30 17:13:36 29772
原创 MongoDB的并发
MongoDB的并发 线上环境遇到MongoDB的性能瓶颈,为了解决性能瓶颈学习了一下MongoDB中的并发机制,记录如下。下文中主要是对比了MongoDB 2.2和3.0.7这两个版本的并发机制。1. MongoDB锁的类型 在2.2版本中MongoDB用的是读写锁,允许并行的读但是只能互斥的写,当一个读锁存在的时候可以有多个读操作共享这个锁,但是当一个写锁存在的时候只能有一个写操作获得这个
2015-11-19 16:53:01 26734
原创 http的302 redirect的一个问题
今天在curl一个网站的时候遇到一个奇怪的问题,下面是输出: lxg@lxg-X240:~$ curl -L http://www.yngs.gov.cn/ -v * Hostname was NOT found in DNS cache * Trying 116.52.12.163… * Connected to www.yngs.gov.cn (116.52.12.16
2015-11-04 23:05:42 24050 3
原创 Nmap-服务探测
Nmap的服务探测1. 服务探测流程 1. Nmap先做端口扫描,然后把状态为open或者是open|filtered的TCP或UDP端口传递给服务识别模块,最后这些端口会并行的做服务探测。 2. Nmap检查端口是否是需要排除的端口(见下文的Exclude Directive),如果是需要排除的端口那么Nmap不会对这个端口做服务探测。这里主要是避免对一些打印机的服务端口发包。 3. 如
2015-11-01 21:29:36 11510 1
原创 Python中的编码
1. Python源码文件的编码Python源码文件的编码格式决定了在该源文件中声明的字符串(str和unicode)的编码格式,例如py源码如下:#!/usr/bin/env python# coding:utf-8if __name__ == '__main__': str='中文' print repr(str)如果文件保存为utf-8(vim 中用set fileencod
2015-10-18 16:47:27 11474
原创 shell中的数组
shell中的数组shell作为一门语言那肯定是不能缺少数组了,下面记录了shell中数组的一些相关内容。 Bash 提供了一维数组变量。任何变量都可以作为一个数组;内建命令 declare 可以显式地定义数组。数组的大小没有上限,也没有限制在连续对成员引用和赋值时有什么要求。数组以整数为下标,从 0 开始。1. 定义和初始化数组下面的示例总结了如何定义一个数组和如何来初始化数组:decl
2015-10-17 16:57:33 12089 1
原创 MongoDB一次性能问题处理
MongoDB一次性能问题处理 问题:发现线上环境web界面获取MongoDB中的数据变得很慢(界面主要是查询),接着查看Rabbitmq消息队列中对应功能队列中堆积了不小的消息(worker主要是插入数据)。从上面的问题现象来看基本是MongoDB出现了性能的问题,大致的排查了一下MongoDB。1. 首先查看一下系统资源: root@mongo-2-6-0-5:~# free -m
2015-10-15 15:03:13 5478 1
原创 Linux find命令的几个备忘
Linux find命令的几个备忘下面的内容只是我在使用Linux的find命令时候遇到的几个小问题,在这里做一个记录,更详细的find命令的使用参考man手册。1. -name | -path中的pattern是精准匹配首先我们看一下-name的几个示例: liuxingen@V6-Dev ~/station/test $ ls test.py test.pyc liuxinge
2015-10-12 16:03:02 5880
原创 漫谈字符集和编码
漫谈字符集和编码作为程序员,如果没有被字符集和编码坑过那说明你的人生太不完美了,哈哈。1. 字符集和编码的关系在最开始遇到字符集和编码的问题时,那时候Unicode和utf-8还未完全推广开来,遇到的很多是gbk和其它编码之间转换的问题。像gbk之类的基本就是一个字符集对应一种编码,所以那时候就简单的理解“字符集和编码是同一个概念”,直到后来遇到Unicode和utf-8、utf-16,才发现这两个
2015-10-04 21:46:30 3755
原创 System V IPC & POSIX IPC(一):消息队列
System V IPC & POSIX IPC(一):消息队列消息队列允许进程之间以消息的形式交换数据,是一种常见的进程之间的通信机制。1. 消息队列的创建System V IPC: int msgget(key_t key, int msgflg); 返回值:message queue identifier on success, or -1 error 参数key:key一般
2015-09-23 22:52:21 1978
原创 msgsnd的一个小问题
今天写了一个System V消息队列的小例子,定义了一个如下的结构体:#define MSG_SIZE 8192struct request{ long mtype; int client_id; char pathname[MSG_SIZE];};接着我调用msgsnd想把这个结构体发送给server,但是发现报错了: msgsnd error, Invalid
2015-08-15 11:30:49 2681 1
原创 Linux的ftok源码
Linux的ftok()函数源码linux中的System V IPC中的get函数需要用到ftok()来生成一个key,闲来无事把ftok()函数实现了一下。1. ftok的man手册 NAME ftok - convert a pathname and a project identifier to a System V IPC key SYNOPSIS
2015-08-01 23:17:57 1462
原创 Linux的system()和popen()差异
Linux的system()和popen()差异1. system()和popen()简介在linux中我们可以通过system()来执行一个shell命令,popen()也是执行shell命令并且通过管道和shell命令进行通信。 system()、popen()给我们处理了fork、exec、waitpid等一系列的处理流程,让我们只需要关注最后的返回结果(函数的返回值)即可。2. syste
2015-07-25 22:06:33 54538 4
原创 Linux的ioctl和fcntl
Linux的ioctl和fcntl1. 一切都是文件在Linux中一切设备都当作文件,也就是说一切设备都抽象成一个文件,能够提取出来一些共同的特征。文件的一些最常用的操作,如打开、读取、写入等,Linux都提供了单独的系统调用(open、read、write)供程序使用。2. fcntl NAME fcntl - manipulate file descriptor
2015-07-15 20:56:56 5926
原创 linux进程的用户ID
linux进程的用户ID1. 前言最近关于”太极越狱的iOS 8.1.3-8.4含有重大安全后门,越狱后导致任意APP可以提权到Root”新闻在安全圈传的比较广,具体的一篇文章见:太极越狱重大安全后门。从这篇分析文章中看到主要就是因为太极越狱修改了setreuid这个系统调用,导致任意APP都可以通过setreuid(0,0)来获取root权限。2. setreuid定义 #include <s
2015-07-04 12:28:13 1727
原创 linux crypt函数
linux crypt函数1. crypt定义 #define _XOPEN_SOURCE /* See feature_test_macros(7) */ #include <unistd.h > char *crypt(const char *key, const char *salt);上面是man 3 crypt看到的crypt函数定义。 从定义中看到要想
2015-06-28 19:08:03 20848
原创 linux getrlimit sysconf
linux中getrlimit和sysconf/*************************************************************** > File Name: rlimit_sysconf.c > Author: lxg > Mail: liuxingen@nsfocus.com > Created Time: 2015年06
2015-06-22 10:40:49 1011
转载 【转载】非实时进程、实时进程、静态优先级、动态优先级、实时优先级
1 convential process 1.1 static priority范围为100-139(MAX_RT_PRIO - MAX_PRIO-1)内核2.6中的静态优先级相当于内核2.4中的nice值,但转到MAX_RT_PRIO到MAX_PRIO-1取值范围,其公式为:static priority = nice + 20 + MAX_RT_PRIO内核定义
2015-06-20 17:49:54 1177
原创 Linux raw socket
Linux raw socket==========================================1. 为什么要详细了解raw socket呢? 其实很早以前就对原始套接字有了一定的了解,那时候还做过一个小的抓包程序,当时以为对原始套接字很熟悉了,但是最近在看nmap的时候被其中的一句话给整迷糊了。 在《Nmap Network Discovery III》的SYN scan章
2015-05-10 17:26:54 12212 1
原创 linux中的setsid函数
linux中的setsid函数定义 setsid - creates a session and sets the process group ID上面是关于setsid函数的定义,我们一般都只记得setsid会新建一个会话,其实它还有另外一个功能:新建进程组。 2. 前提 在setsid的man手册中首先提到的第一句就是:调用进程不能是进程首进程,也就是说要想setsid调用成功那么调
2015-05-08 22:31:55 16900 1
jsp+servlet+oracle开发的网上书店
2008-11-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人