自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

与数据和AI有关的东西

生活不止眼前的苟且,还有诗和远方的田野

  • 博客(87)
  • 收藏
  • 关注

原创 Golang的Kafka 框架支持consumer group

golang的kafka 框架有很多种, sarama是一种比较常用的,是用golang写的,但是不能支持consumer group。confluent是一种,是调用c语言的库librdkafka,可以支持consumer group。但是会麻烦一点,需要安装librdkafka。安装librdkafka先看官网上的一句话。This client for Go depends on li...

2019-07-26 11:56:09 3650 1

原创 Jupyter环境的搭建以及相应的Dockerfile

pip install jupyter jupyter notebook --generate-config#生成密码,用于远程登陆python -c "from notebook.auth import passwd; print(\"c.NotebookApp.password = u'\" + passwd('123456') + \"'\")" >> /root/.j...

2019-06-28 13:56:41 1480

原创 Ubuntu配置golang gin的环境以及相应的Dockerfile

apt-get update -yapt-get install -y wget wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gztar -C /usr/local -xzf go1.12.5.linux-amd64.tar.gz export PATH=$PATH:/usr/local/go/binapt-get ins...

2019-06-20 13:49:32 987

原创 Java Servlet版HelloWorld

在ideal中创建一个maven工程,不选工程模板写一个简单的响应GET请求的servletimport java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class ServletHelloWorld extends HttpServlet { public void doGet(Http...

2019-06-06 16:06:53 578

原创 面向对象设计的7大原则

开闭原则的定义开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software entities should be open for extension,but c...

2019-06-05 18:39:51 240

转载 Python arg、*args、**kwargs

http://www.cnblogs.com/yunguoxiaoqiao/p/7626992.html

2019-05-22 10:06:12 2193

原创 Linux查看显卡设备信息

查看VGA设备$ lspci | grep -i vga08:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 30)(test_env) $ lspci -v -s 08:00.0 08:00.0 VGA compatible controller: ASPE...

2019-05-14 11:08:34 8625

原创 windows下安装配置sbt

最近要用scala,学习了一下sbt。下载sbt地址 www.scala-sbt.org默认安装即可。验证sbt在cmd输入sbt,他会问你要不要continue,输入c,continue,这时候他开始下始很多依赖包,速度还挺快的;出现了下面的错误Error: Could not retrieve jansi 1.11为了解决这个问题在sbt安装目录下的conf目录中添加了一个re...

2018-12-11 16:41:53 2334

原创 python基于multiprocessing的通用的并行计算框架

项目介绍基于multiprocessing的通用的并行计算框架,用于计算密集型场景githubhttps://github.com/conggova/mpparallizer.git接口定义class MPParallizer(object) : @staticmethod def parallize(paras , func , threads , para_serde...

2018-10-26 15:22:31 3205

原创 golang搭建thrift RPC服务实践

折腾了两天,终于调通了用golang搭建的thrift rpc服务,这个过程中遇到了很多问题,而且有些问题困扰了很久,欣喜之余,觉得一定要把这些过程记下来,对于自己来说是个备忘录,对于别人来说也是不错的参考。环境的搭建首先安装go,这个用yum安装,版本1.9.4。我这里用的是thrift 0.10.0 , 不是最新的 0.11.0 , 这个两个非常的不兼容,一定要注意,thrif...

2018-06-14 18:49:24 3947

原创 从区块链出发——对于互联网的反思

最近因为区块链的热度,我也关注了一下,也因为有一些人对于区块链所谓革命性的评价,反而让我对于互联网的发展也有了一些思考和感悟。 因为我个人的认识往往是偏于感性的,可能一些想法难免天真。我是一个喜欢对任何事情都抱有怀疑的人,到现在唯一让我觉得不容怀疑的道理是“盛极必衰”,第一层意思是没有事情能够长久;第二层意思是事情往往不会朝着同一个方向一直发展下去。关于我们生活的宇宙,目前还处于膨胀的阶...

2018-03-10 15:43:18 483

原创 Multiarmed bandit problem(多臂老虎机问题)的UCB1解法简介

最近在看蒙特卡洛树搜索相关的东西,看到了这个Multiarmed bandit problem。把自己的理解整理分享一下。首先说一下Multiarmed bandit problem是什么问题 Multiarmed bandit根据我看各种介绍得到的理解是这样的一种赌博工具: 1.它有多个可操作的拉杆 2.操作每个拉杆所得的收益是随机的,但是每个拉杆收益的平均值(期望值)并不相同,有些高...

2018-03-09 16:01:35 7705

原创 线性规划单纯形法初探

单纯形法:将目标函数和约束变换成标准形式。 先找一个基本可行解。 判别它是否为最优解,如果不是,再找一个更好的基本可行解。例子min z = x1 + x2 s.t. 2x1 - x2 2 0 step1: 变换成标准形==> (2) ==> 0 取x3 = x1 - 2 , 则 x1 = x3 + 2 (4) 则 (2) ==> 0 (5

2018-02-06 11:37:18 823 1

原创 python pulp包求解整数线性规划和线性规划

以整数线性规划为例# -*- coding: utf-8 -*-import pulp as pulpdef solve_ilp(objective , constraints) : print objective print constraints prob = pulp.LpProblem('LP1' , pulp.LpMaximize) prob +

2018-02-06 11:26:11 21113 4

原创 Python thrift rpc TProcessPoolServer 原生的多进程服务模式

以前通过多线程每个线程中再启进程的模式实现了多进程的服务模式。 今天发现其实进程池的模型是自带的。 这个Server在一个单独的文件中,与其它Server不在一起,不看代码不太容易发现。示例代码import sys, glob sys.path.append('./gen-py')from WormHoleRPCService import WormHoleRPCService from

2017-11-17 11:18:28 3054 1

原创 python thrift两种服务模式对比

方案一服务代码只是死循环一秒钟import sys, glob sys.path.append('./gen-py')from HelloService import HelloService from HelloService.ttypes import * from thrift.transport import TSocket from thrift.transport imp

2017-10-29 01:05:17 2233

原创 pyjsonrpc+multiprocessing实现可并发处理RPC服务

#!/usr/bin/env python# coding: utf-8import pyjsonrpcfrom time import sleepimport multiprocessing#将结果通过PIPE发送给主进程def work(pipe , a , b ) : i = 0 while True : i += 1 ; if i >

2017-10-26 15:53:04 1065

原创 python multiprocessing 测试

# -*- coding: utf-8 -*-"""Created on Thu Oct 26 09:17:30 2017@author: congpeiqing"""import multiprocessingdef worker(num): """thread worker function""" print 'Worker:', num i = 0 whi

2017-10-26 09:27:10 344

原创 tornado 简单的web服务

import tornado.ioloopimport tornado.webfrom time import sleepclass MainHandler(tornado.web.RequestHandler): #def get(self , name , id ): # self.write(name + id ) def get(self): i =

2017-10-25 17:01:08 1305

原创 java jsonrpc2.0 客户端程序

源码package congpq.jsonrpc_test;import java.net.URL;import com.googlecode.jsonrpc4j.JsonRpcHttpClient;import static java.lang.System.*;public class jsonrpc_test { public static void main(String[]

2017-10-25 15:10:11 1296 1

原创 jsonrpc python实现

服务端# coding: utf-8import pyjsonrpchttp_client = pyjsonrpc.HttpClient( url = "http://192.168.56.100:8080", username = "Username", password = "Password")print http_client.call("add", 1, 2)

2017-10-23 14:44:34 5461 1

转载 关于幂等性

幂等在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。以下内容来自:http://www.cnblogs.com/weidagang2046/archive/2011/06/04/2063696.html幂等性定义本文所要探讨的正是HTTP协议涉及到的一种重要性质:幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是:

2017-10-21 23:12:08 266

原创 蒙特卡洛方法的应用——解决“彩色砖块”问题

同贝叶斯方法一样,蒙特卡洛方法与其说是一种算法,不如说是一种思想。灵活的运用蒙特卡洛方法可以解决很多问题。比如可以用它来求pi,求pi肯定有比这更好的方法,但是蒙特卡洛方法是所需条件最少的,只是充分利用了计算机产生随机数的能力。我们不需要知道pi等于什么级数,只需要知道圆的面积等于pi*r**2。下面来看如何用蒙特卡洛方法解决一个实际问题,而且其它的方法不太容易解决。关于彩色砖块http://www

2017-09-23 14:29:40 640

原创 MapReduce的二次排序

二次排序问题是指在归约阶段对与某个键关联的值排序,有时也称为值键转换。 利用二次排序可以使归约阶段的值是有序的。MapReduce框架对映射器生成的键排序,传入归约器的数据都是按键排序的。利用MapReduce框架完成二次排序的方法构造一个组合中间键(K , V) ,其中K是分区键,V是用来排序的值 此中间键做为Map的输出的键,Map的输出会按照此组合键排序; 定制Partitioner,不

2017-09-14 23:59:25 312

原创 看懂Hive的执行计划

官方文档 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Explain关于Hive执行计划简述一般执行计划有两个部分: stage dependencies 各个stage之间的依赖性 stage plan 各个stage的执行计划一个stage并不一定是一个MR,有可能是Fetch Operator,也有

2017-09-14 20:49:05 5500 2

原创 Oracle的多版本控制小实验

本文将演示Oracle的多版本控制,以及串行化事务。在session1中,建一个表,插入两条测试数据SESSION1:SCOTT@ prod> create table t ( x int ) ;Table created.SCOTT@ prod> insert into t values(1) ;1 row created.SCOTT@ prod> select * from t ;

2017-09-03 00:46:05 404

原创 Oracle用HASH簇表优化latch hit过低

部署测试环境以SYS用户在HR中建立与DBA_OBJECTS相同的表,重复插入得到100万行,并且添加一列ID,为这列添加连续的值,并建立唯一索引。 将AWR快照的产生时间设为10分钟。 在五个窗口并行执行:建立簇表所需信息HASHKEYS=distinct values SIZE=(avg_row_len*total_rows/HashKeys)*1.1 1.2可能更保险

2017-09-02 11:00:51 588

原创 完整的RMAN备份示例

备份策略备份时间:每天午夜12点开始。 备份策略: 一 二 三 四 五 六 日 增 增 增 增 增 增 全RMAN配置:控制文件自动备份OFF。 冗余度为3。备份脚本:0级备份 /home/oracle/backupscripts/level0.sh#!/usr/bin/bash#backup script for level 0source /

2017-09-02 10:48:25 431 1

原创 脏读和READ UNCOMMITED隔离级别

读取到别的事务中尚未提交的数据,是绝对应该避免的。 一般来说脏读都是没意义的,都是坏事,在READ UNCOMMITED事务隔离级别下允许脏读。Oracle无论如何都不会出现脏读,不支持READ UNCOMMITED事务隔离级别。MySQL支持READ UNCOMMITED事务隔离级别(为了实现读的无阻塞):SESSION1:mysql> select @@tx_isola

2017-09-02 10:43:41 892

原创 Oracle TX锁(事务锁)

也叫事务锁。每个事务只能有一个。 每个事务对应该一个TX锁,在该事务中修改或者select for update的每一行都会指向这个锁(数据块的结构中有相关的标志)。 如果一个事务想修改的某条记录已经被另一个事务锁住,那么这个事务会等待,如果再有事务会形成一个列表,等待的信息可以在v$lock里面查到。做一个实验(在TOM书的197页)准备实验数据:SCOTT@ prod>

2017-09-02 10:40:04 701

原创 BP神经网络的原理及Python实现

网络结构层数:2 输入个数:3 隐藏层节点数:10 输出层节点数:1数据结构用一个dict表示整个网络: {’input_layer’ : 输入节点列表 , ‘hidden_layer’ : 隐藏层节点列表 , ‘output_layer’ : 输出层节点列表 }输入节点:{‘input_value’ : num}隐藏节点:{‘bias

2017-09-02 10:35:53 1782

原创 Oracle 块头的事务槽

INITRANS 初始个数,默认为2,每个块会预分配2个事务槽。 MAXTRANS 事务槽的最大个数,为255(新版本已经不可设置了)。 事务槽的增加是需要空间的,如果块上空间不足,事务槽的数量将达不到255。 每个事务槽代表一个并发事务。探索小实验:SCOTT@ prod> create table t ( x int primary key , y varchar2(40

2017-09-02 10:18:26 575

原创 hive GenericUDAF中的四种模式解析

每个模式下,输入数据的类型是不会变的,而调用的数据处理函数都有两种可能。partial1的输入只可能是原始数据;partial2的输入只可能是部分聚合结果;final的输入是部分聚合数据;complete的输入是原始数据;terminatePartial()与terminate()的输入是有两种可能性的,要按照模式来区分处理。

2017-09-02 10:14:33 935

原创 Oracle SQL高级编程——分析函数(窗口函数)全面讲解

参加《Oracle SQL高级编程》概述分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算,也称为窗口函数。 一般结构为 Function(arg1 , arg2 ……) over(partition by clause order by clause windowing clause )Windowing clause : rows | range between start_ex

2017-09-02 02:16:36 1353

原创 Oracle SQL高级编程——位图联结索引

参加《Oracle SQL高级编程》一个典型的数据仓库查询: 这个查询中sales 是事实表 , 一般很大。 Products , customers , channels是维度表 , 一般很小,可以有冗余。SH@ prod1> explain plan for 2 select sum( s.quantity_sold ) , sum( s.amount_sold ) from sal

2017-09-02 02:00:35 404

原创 Oracle SQL高级编程——Model子句全解析

参见 《Oracle SQL高级编程》。第一个例子,初步认识SH@ prod> col product format a30SH@ prod> col country format a10SH@ prod> col region format a10SH@ prod> col year format 9999SH@ prod> col week format 99SH@ prod> col

2017-09-02 01:52:17 1481

原创 Oracle SQL高级编程——子查询因子化全解析

参见《Oracle SQL高级编程》。概述子查询因子化就是ANSI中的公共表达式。 从11.2开始,子查询因子化开始支持递归。可以实现CONNECT BY的功能。标准的子查询因子化的例子这是一个非常复杂的查询,下面是不加因子化的版本。注意PIVOT的用法。select * from ( select /*+ gather_plan_statistics */ product ,

2017-09-02 01:31:33 631

原创 Oracle优化——如何查看语句的准确的执行计划(explain plan可能不是真实的)

参见 Oracle性能优化求生指南。建虚拟索引HR@ prod> create index test_ix1 on employees4 ( employee_id ) nosegment;HR@ prod> alter session set "_use_nosegment_indexes" = true ;HR@ prod> set autotrace onHR@ prod> se

2017-09-02 00:23:00 830

原创 Oracle优化——星型联结转换(star_transformation_enabled)

参见 Oracle性能优化求生指南。另外请了解星型联结索引,此类问题的最佳实践。这是一个星型联结的例子,sales为事实表,其它为维度表。Where条件全部都作用在维度表上面。SH@ prod> select quantity_sold , amount_sold from sales s join products p using ( prod_id ) 2 join times

2017-09-02 00:16:42 1508

原创 Oracle优化——外联结的执行计划

外联结不要使用Oracle自有的方式在where条件中加(+),而要用ANSI的方式(… OUTER JOIN)。Oracle的方式不支持全外联结,而且存在诡异的BUG。左外连接与右外连接时,Oracle会把返回全部记录的表做为驱动表,哪怕这样是违背了ordered提示。可以应用所有的联结方法,效率也与内联结相仿。HR@ prod> select /*+ ordered */ first_n

2017-09-02 00:12:16 336

空空如也

空空如也

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

TA关注的人

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