write down,forget

ubuntu在线升级到11.10

<Category: Linux>

贴进去

在弹出都更新界面中,点“部分升级”,重启,搞定。

本文来自: ubuntu在线升级到11.10

memcached安装

<Category: Memcached, nosql>

http://memcached.org/

wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz
tar vxzf memcached-1.4.7.tar.gz
cd memcached-1.4.7
./configure

提示:
checking for libevent directory… configure: error: libevent is required. You can get it from http://www.monkey.org/~provos/libevent/

//安装libevent
cd ..
wget http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz
tar vxzf libevent-2.0.13-stable.tar.gz
cd libevent-2.0.13-stable
./configure
make
make install
阅读这篇文章的其余部分

本文来自: memcached安装

datastax brisk 安装

<Category: cassandra>

https://github.com/riptano/brisk/archives/brisk1)

//压缩包里面包含了所有的组件:brisk1.0,pig,hive,hadoop,cassandra

或者使用包来安装
redhat或centos下:
第一步,先安装EPEL(Extra Packages for Enterprise Linux),包含了brisk依赖的相关包,如jna和jpackage-utils
如果不确定是否安装EPEL,可以通过查看/etc/yum.repos.d下的epel.repo和epel-testing.repo 文件

如果遇到警告: RPM-GPG-KEY-EPEL key not being found,可以忽略或者到这里下载key:https://fedoraproject.org/keys

ok,开始正式安装brisk

添加源

替换成你系统自己的,有EL或Fedora两种

替换之后的repo文件如下:

安装

debian下:
编辑文件/etc/apt/sources.list

可选 lenny, lucid, maverick or squeeze

debian5.0使用如下

添加datastx的key

安装

阅读这篇文章的其余部分

本文来自: datastax brisk 安装

流计算是什么东东?

<Category: Hadoop, 分布式>

 

貌似现在正在流行流计算,流计算或流式计算主要用来做实时数据分析,如实时交易数据,广告,查询等,

我们知道一般用Hadoop来做离线分析都需要一定的延时,并且必须等数据收集处理完等一系列若干的操作,等报告结果出来之后,黄花菜都凉了,而流计算则刚好填补这一块的空白,流计算对正在发生的事件产生的数据进行实时分析,而FlumeBase就是这样一个项目,它建立在Flume(cloudra的分布式日志收集系统)之上,并提供类sql的查询方式(rtsql)。

Flumebase允许用户动态的插入查询到flume日志收集环境,这些查询请求会对进来的日志进行抽查处理,只要是符合查询条件的,就会进行相应的处理,如持续监控、数据格式转换、过滤等各种任务。

https://github.com/cloudera/flume

https://github.com/flumebase/flumebase

http://blog.flumebase.org/?p=14

http://flumebase.org/documentation/0.2.0/UserGuide.html#d0e7

http://www.docin.com/p-152156266.html

类似的开源流计算框架还有yahoo的s4,s4貌似比flume要成熟不少,不过都值得关注。

http://s4.io/

s4最开始是为yahoo个性化广告产品而开发的一个产品,号称能够每秒处理上千个事件。http://docs.s4.io/manual/overview.html

本文来自: 流计算是什么东东?

Diving Into ElasticSearch (5) 分布式架构

<Category: Diving Into ElasticSearch>

今天介绍下ElasticSearch的分布式架构,如果你熟悉cassandra、hadoop、mongodb,你会发现ElasticSearch里面有很多他们的影子,没错,ElasticSearch吸收了目前主流的分布式系统的很多特性,下面简单介绍一把。

之前翻译过一篇[译]搜索引擎与时间机器,里面介绍了下作者在设计ElasticSearch的一些想法,现在看起来还是记忆犹新,因为他的这种思路实在是非常新颖,比如ES里面的将数据分为工作数据和持久化数据两种:

工作数据就是正常的提供查询和索引的数据,这部分数据假定是瞬时的,并且是不可靠的,随时可能丢失的数据,而持久化数据则是可靠的,一致的数据,工作数据可以都放在内存中,这样可以保证非常好的性能,而持久化数据则专心保证数据的一致性就ok了,我们自动的分布式系统有CAP原则,通过对数据分离方式,我们很好的解决了C和A的问题,你可能会问,你内存中的数据如果不对了怎么办?不就会影响数据的一致性吗?一方面数据可以从持久化数据进行加载,另外ES节点间的数据会定时刷新和同步,最终确保数据的一致,就算万一机器都歇了,没关系,从持久化目录里面重新加载数据即可。

单前面说的那个还不算什么,如果不能很好的解决动态扩容的问题,那就不算是ElasticSearch了,在ElasticSearch里面,索引目录有如下两个概念:shard(碎片)、replica(副本)

碎片(shard)的意思很好理解,db可以有sharding,索引也可以做嘛,单个索引目录太大,GB级别的索引文件,你再继续往里塞数据,文件合并,优化,有过这种经验的人应该会明白这种痛苦,怎么办?拆呗(china?拆那?),一般的做法是按数据拆,自己按租户,按时间拆等等,很是麻烦,并且拆完了之后的事情也不少,跨目录查询怎么办?更新怎么办?接口要怎么变?这些在ElasticSearch里面都帮你想到了,对你而言,全是透明的,你操作的就是一个索引,你在创建索引的时候,根据索引的规模指定碎片的大小,其他的你就不用管了,至于它里面怎么实现数据的平均分配,其实很简单,就用了一个取模的算法,随机分配到各个碎片中,至于一致性哈希之类的,目前来说完全没有必要。

碎片可以解决单个索引太大的问题,但是凡任何事有利必有弊,索引碎片在实现上其实就分成了很多个索引目录,索引目录越多,对建索引的速度会有提示,尤其是多线程环境,因为我们建索引的时候单个索引目录肯定加锁,一旦涉及锁,势必要减慢速度,不过我多几个目录,不就可以并发执行了吗?是的,ES就是这么做的,但是前面说了,有利就有弊,索引搞得到处都是,ES查询起来就很费劲了,一般情况下,我们在没有使用Routing的情况下(后面再介绍routing),ES会同时多个线程去读取各个碎片的索引数据,然后再合并查询结果,另外在ES的分布式环境下,碎片如果分布在多台服务器上就要加上网络的开销,势必会影响查询速度了,在海量数据的前提下,这些其实都还好,并且ES支持多种查询方式(reflink:search type):

Query And Fetch:

Query Then Fetch:

Dfs, Query And Fetch:

Dfs, Query Then Fetch:

Count:

Scan:

根据不同的查询需求,选择合适的查询类型,会收到意想不到的效果。

先整体看看单ES节点的模块结构吧:

 

再看看一次索引操作

再看看一次查询请求

本文来自: Diving Into ElasticSearch (5) 分布式架构

Hadoop and MapReduce: Big Data Analytics [gartner]

<Category: Hadoop>

收藏,下载地址:http://dl.medcl.com/get.php?id=29&path=books%2Fgartner%2CHadoop+and+MapReduce+Big+Data+Analytics.7z

阅读这篇文章的其余部分

本文来自: Hadoop and MapReduce: Big Data Analytics [gartner]

Chapter 1. Asterisk ,The Architecture of Open Source Applications

<Category: 读书>

titlebar

chapter 1.Asterisk by Russell Bryant http://www.aosabook.org/en/asterisk.html

这章主要介绍了“电话交换机”asterisk的设计,虽然这个项目的历史悠久,Mark Spencer于1999,因为自己开的公司(Linux Support Services)刚好有这个需求–一个电话系统,但是有没有钱买,于是就自己弄了一个,后面发现该系统很受欢迎,他的公司便专心负责asterisk上来,并改名为Digium。

 

Asterisk的英文意思是指字符“*",Mark想通配所有的电话技术,包括模拟信号啦,数字信号啦,神马PSTN啦(public switched telephone network),voip啦,统统都可以接入到asterisk中。

 

一旦电话是通过asterisk系统进行拨打或者接听的,那么在这里就可以做很多事情了,比如电话录音,回放,10086里面烦人的语言系统,电话录音,语言邮件,语言识别,甚至实时翻译(老毛子打过来,听不懂怎么办,业务还得继续做啊)

 

系统架构比较简单清晰,有几个概念:

channel,每一个呼叫相当于是一个connection,一个连接,呼叫方是一个channel,接听方是一个channel,asterisk在中间负责调度(channel bridging)。

twoChannels

frame,通讯的数据以”帧"来传递,帧有不同的数据类型,Voice、Video、Modem、Control等等,

channel driver,很显然asterisk支持如此多的通讯协议,那就需要相对应的驱动来支持,扩展驱动只需用asterisk定义的抽象接口即可。

channelLayers

Dialplan Applications,主要是负责处理channel的,这里面就可以做很多事情,可以灵活组合多个应用来对一个channel进行处理。

后面还介绍了语音邮件是怎么收取的,网络监控,多线程处理,电话桥接等内容,

感兴趣的自己去看看吧,地址:http://www.aosabook.org/en/asterisk.html

本文来自: Chapter 1. Asterisk ,The Architecture of Open Source Applications

Diving Into ElasticSearch (4) 安装配置

<Category: Diving Into ElasticSearch>

系列文章拖了几天思路全无,哎,先来个基础的吧。。。【安装配置】

其实ElasticSearch安装没啥好说的,因为ElasticSearch完全是零配置和“拆箱即用”,这对第一次上手ElasticSearch人来说绝对是福音,对于熟悉了ElasticSearch的人来说也可以省却很多多余的操作,总之一个字:帅。

首先,当然是下载,地址如下:http://www.elasticsearch.org/download/
打开网页你可以看到长长的发布的版本号(我应该是从Version 0.5开始我的ES之旅的),ES的版本更新很频繁,作者kimchy根据社区的反馈会不断添加新的feature,bugfix也是神速,在irc里面提出之后,基本上马上就会有修复,实在是给力啊。BTW,现在最新版本又到了0.17.4,前几天又发布了几个版本,修复了一些bug。
阅读这篇文章的其余部分

本文来自: Diving Into ElasticSearch (4) 安装配置

php mysql bit类型处理

<Category: Mysql, PHP>

http://codeigniter.com/forums/viewthread/157028/#758143
http://www.dotcoo.com/post-101.html

php读取mysql列bit(1)列时获得的是一个二进制的数据,不是布尔值不是字符串也不是数字,所以不能正常使用也不能正常显示,可以使用ord函数把二进制数据转换为数字。

ord函数的作用就是将ASCII的字符转换为他们的字面值,对于二进制数字也有效。

ord函数能转换出来的最大的值是255,也就是一个字节,对于bit(8)以上的列不能正常转换。

本文来自: php mysql bit类型处理

安装NginxHttpAccessKeyModule

<Category: VPS维护日志, Web>

下载:http://wiki.nginx.org/NginxHttpAccessKeyModule#accesskey

vi nginx下面站点配置

重启nginx
站点下放置php文件测试一下是否正常工作。

本文来自: 安装NginxHttpAccessKeyModule