博客
AutoMake 学习笔记
作者:许振文 过程记录: 1. autoscan 2. 修改configure.scan,重命名为configure.in,编辑Makefile.am 3. 运行aclocal 4. autoconf 5. automake --add-missing 6. ./configure && make && make install了。
April 5, 2014
Hadoop2.3.0源码编译过程记录
要在hadoop上作一个mr程序,做一些统计工作。但是发现官网下载的2.3的库只有32位的,而我的机器系统都是64位的。用g++直接指定编译32位的程序又发现头文件依赖有问题,没法编译通过。所以就只能编译hadoop,编译后在服务上启动64位程序,再编译mr程序进行工作。下面是编译的过程和其中遇到的一些问题。
March 28, 2014
thrift之php客户端使用
一方面是测试使用,另一方面还想把server的一些状态和运维信息能够以web的方式展示出来,组内的web框架全是ci,我想使用django,但是组内python的人少,所以还是随大家要使用ci,用php做开发,那么就需要php也能支持使用thrift的rpc方式去访问。
February 13, 2014
thrift之python客户端使用
写好了cpp的服务器后,测试是个问题,写cpp程序来测试好像不是很灵活,所以想用python脚本来写测试程序,记录一下过程。 首先是thrift的python程序库的安装,有些基础库需要安装后才能运行,在thrift的目录库目录中,选择py目录,使用root账户就可以直接安装了。 cd thrift-0.9.0/lib/py python setup.py install 即可完成安装。当然安装完成之后也要记得测试一下,安装是否成功。
February 13, 2014
Thrift的required和optional源码分析
thrift的数据类型定义的时候和protobuf(后面简称pb)一样也有requried和optional标签,意义是类似的,required标示改消息在序列化之前必须设置该字段值,如果不设置则无法序列化,当然也就更无法反序列化,该标签标示的字段是必填字段;而optional字段则标示该字段可赋值也可以不赋值,当然不赋值的结果是在序列化之后的数据中该字段被标示为无值字段,就是说直接访问获取该值是不行的,必须先判断是否设置了该字段的值,再去读值;这样作的好处是在协议扩充和变更时可以较为灵活的设计程序,而且在传输上也就减少了不必要的字段传输。
January 11, 2014