write down,forget
adidas eqt support ultra primeknit vintage white coming soon adidas eqt support ultra boost primeknit adidas eqt support ultra pk vintage white available now adidas eqt support ultra primeknit vintage white sz adidas eqt support ultra boost primeknit adidas eqt adv support primeknit adidas eqt support ultra boost turbo red white adidas eqt support ultra boost turbo red white adidas eqt support ultra boost turbo red adidas eqt support ultra whiteturbo adidas eqt support ultra boost off white more images adidas eqt support ultra boost white tactile green adidas eqt support ultra boost beige adidas eqt support ultra boost beige adidas eqt support refined camo drop adidas eqt support refined camo drop adidas eqt support refined running whitecamo adidas eqt support 93 primeknit og colorway ba7506 adidas eqt running support 93 adidas eqt support 93

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