0%

Solr 安全性最简单的就是 HTTP Basic 认证了,以下配置方法。

进入 Solr 的主目录(数据目录,默认是example),Solr 5 以后是 server 目录。

阅读全文 »

介绍

Cloudera 企业级Apache Hadoop 提供商和服务商,提供产品、专业服务、技术支持与培训。是目前在Hadoop生态系统中,规模最大、知名度最高的公司,也是Hadoop生态主要贡献者。

网站:http://zh-cn.cloudera.com/content/www/en-us.html
文档:http://www.cloudera.com/content/www/en-us/documentation.html
中文文档:http://www.cloudera.com/content/www/zh-CN/documentation/enterprise/5-3-x/topics/cdh_intro.html

Cloudera CDH 套件几乎集成了 Hadoop 生态所有组件,虽然版本略有滞后,但解决了最困难的组件间兼容性问题,并补丁。
Cloudera Express 和 Cloudera Enterprise 为 Cloudera 商业产品软件,包括免费版与企业版。提供了一个基于 Web 的用户界面,应用程序,部署、管理、监控的解决方案。
下载:

https://archive.cloudera.com/cdh5/
http://archive.cloudera.com/cm5/
http://archive.cloudera.com/cloudera-labs/CentOS

阅读全文 »

不管有多少人共同参与同一项目,一定要确保每一行代码都像是同一个人编写的。这是个黄金定律,永远遵循同一套编码规范。

本文参考了不少文档,最后整理了这个规范,也是个人的学习总结。

阅读全文 »

元表(metatable) 是 Lua 中的重要概念,每一个 table 都可以加上 metatable,以改变相应的 table 的行为。

Lua 中不能改变其他类型的元表(除了使用调试库),必须使用 C API 才能做到。

元表也是普通的 table,定义了原始值在某些特定操作下的行为。你可通过在值的原表中设置特定的字段来改变作用于该值的操作的某些行为特征。

1
2
3
4
t = {} -- 普通的table
mt = {} -- metatable
setmetatable(t, mt) -- 设定mt为t的metatable
getmetatable(t) -- 返回mt

metatable 可以包括任何东西,metatable 特有的键一般以__开头,例如 __index 和 __newindex,它们的值一般是函数或其他 table。

我们称元表中的键为事件(event),称值为元方法(metamethod)

阅读全文 »

OPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是省去了每次加载和解析 PHP 脚本的开销。

PHP 5.5.0 及后续版本中已经绑定了 OPcache 扩展。 5.3 和 5.4 版本可以使用扩展安装。

以下是官方推荐的配置:

1
2
3
4
5
6
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

实际使用时,应当根据业务适当调整 opcache.revalidate_freq

logrotate 是一个日志管理程序,用来把旧的日志文件删除(备份),并创建新的日志文件,这个过程称为转储。这个程序目前是 CentOS 自带的。

logrotate 的执行由系统的 crond 服务实现,通过 crond 的日执行脚本 /etc/cron.daily/logrotate 来触发。

Nginx 有一个网上流传很久的日志切割脚本,现在我们看下如何通过 logrotate 配置常规的 Nginx 访问日志轮滚策略。

阅读全文 »

最简单的获取函数调用者传递过来的参数便是使用 zend_parse_parameters()函数,形式为:ZEND_NUM_ARGS() TSRMLS_CC

注意两者之间有个空格,但是没有逗号。从名字可以看出,ZEND_NUM_ARGS() 代表着参数的个数。紧接着需要传递给 zend_parse_parameters() 函数的参数是一个用于格式化的字符串。

阅读全文 »

PHP的源码在结构上非常清晰。下面是PHP源码的目录结构。

1
2
3
4
5
6
7
8
9
10
11
根目录: 
/ 这个目录包含的东西比较多,主要包含一些说明文件以及设计方案。
build/ 顾名思义,这里主要放置一些和源码编译相关的一些文件,比如开始构建之前的buildconf脚本等文件,还有一些检查环境的脚本等。
ext/ 官方扩展目录,包括了绝大多数PHP的函数的定义和实现,如array系列,pdo系列,spl系列等函数的实现,都在这个目录中。个人写的扩展在测试时也可以放到这个目录,方便测试和调试。
main/ 这里存放的就是PHP最为核心的文件了,主要实现PHP的基本设施,这里和Zend引擎不一样,Zend引擎主要实现语言最核心的语言运行环境。
Zend/ Zend引擎的实现目录,比如脚本的词法语法解析,opcode的执行以及扩展机制的实现等等。
pear/ “PHP 扩展与应用仓库”,包含PEAR的核心文件。
sapi/ 包含了各种服务器抽象层的代码,例如apache的mod_php,cgi,fastcgi以及fpm等等接口。
TSRM/ PHP的线程安全是构建在TSRM库之上的,PHP实现中常见的*G宏通常是对TSRM的封装,TSRM(Thread Safe Resource Manager)线程安全资源管理器。
tests/ PHP的测试脚本集合,包含PHP各项功能的测试文件
win32/ 这个目录主要包括Windows平台相关的一些实现,比如sokcet的实现在Windows下和*Nix平台就不太一样,同时也包括了Windows下编译PHP相关的脚本。
阅读全文 »

有时我们需要进行 MySQL 大量数据的查询、性能、索引测试,通过程序(多线程)灌入数据非常慢,可以通过存储过程批量插入模拟数据。

以下我们创建了一个类似文章内容的表结构,改表结构含有各种类型的字段,通过存储过程对各种字段进行有条件的随机模拟插入。

阅读全文 »