December 31st, 2006
我一直都对分布式文件系统非常感兴趣,特别喜欢研究如何在庞大的廉价的异构系统集群上进行容错性良好的分布式存储。这些话题总是能吸引我的注意力。记得2002年的时候因公司的需要有机会实践了一把 OpenAFS 和 Coda ,印象深刻,呵呵。好了,闲话少叙,今天将要谈论的是后起之秀 Hadoop 。
Hadoop 是大名鼎鼎的 Lucene 旗下的子项目,它原先是 Nutch 项目的组成部分,于2006年初从 Nutch 中分离出来成为一个独立的项目。Hadoop 其实并非一个单纯用于存储的分布式文件系统,而是一个被设计用来在由普通硬件设备组成的大型集群上执行分布式应用的框架(framework)。Hadoop 包含两个部分:一个分布式文件系统 HDFS (Hadoop Distributed File System),和一个 MapReduce 实现。因此,Hadoop 的目标是为开发分布式应用提供一个框架,而不是像 OpenAFS, Coda 那样为存储提供一个分布式文件系统。搜索引擎就是一种典型的分布式程序,Nutch 就是基于 Hadoop 开发的。
本文的目标是描述如何安装和使用 Hadoop 0.9.2,不涉及如何使用 Hadoop 框架来开发分布式程序(此话题我将在 Part 2 中介绍之)。
Read the rest of this entry »
December 30th, 2006
我现在使用的是 Apache 2.0.49 , 安装在 /opt/apache/ 下。
# /opt/apache/httpd -v Server version: Apache/2.0.49 Server built: May 24 2004 23:38:26
从前编译安装的时候没有包含 mod_rewrite 模块,如何在不破坏目前正在运行的 Apache 的情况下追加此模块?
# tar zxvf httpd-2.0.49.tar.gz # cd httpd-2.0.49/modules/mappers # /opt/apache/bin/apxs -c mod_rewrite.c # /opt/apache/bin/apxs -i -a -n rewrite mod_rewrite.la
这将会在 /opt/apache/modules/ 下新增一个 mod_rewrite.so 文件,并且主配置档 httpd.conf 中也加入了相应的 LoadModule 条目:
LoadModule rewrite_module modules/mod_rewrite.so
December 30th, 2006
WordPress 极易安装,不过也有些需要注意的地方。
编辑 $WP_HOME/wp-config.php
若无此文件,就复制相同目录下的 wp-config-sample.php 新建一个。 在该文件中指定数据库名、用户名、密码、数据库服务器主机名或IP即可。很简单的。唯一需要指出的是,若你的 MySQL 不是监听默认的 3306 端口,那么在指定 DB_HOST 是需要指出其端口,比如:
define('DB_HOST', 'localhost:3366');
字符集问题
为了避免出现乱码现象,创建 MySQL 数据库时需要使用 utf8 作为默认字符集。
另外还需要修改 $WP_HOME/wp-includes/wp-db.php 文件,强制 WP 在连接数据库时使用 utf8 找到如下一行 $this->dbh = @mysql_connect($dbhost, $dbuser, $dbpassword); 应该是在第 43 行。 在该行下加一行 $this->query("set names 'utf8'"); 即可。
控制板
当进入 WP 的控制板时,它会自动从 technorati.com, wordpress.org 上获取一些与 WP 有关的最新信息,这当然是很好的,但是因为从中国访问这两个网站的速度都不太理想,所以导致每次进入控制板时速度很慢。而且我们也并非每次进入控制板时都需要看有关 WP 的最新信息,再说了,哪会有那么多的 WP 相关信息更新啊。因此,为了速度计,我决定取消信息攫取。
打开 $WP_HOME/wp-admin/index.php 搜寻字符串 $rss = @fetch_rss 应该有三行,分别在 18, 129, 146. 把这三行注释掉即可。
好了,现在可以启动 WP 的安装向导了。Have fun!
December 28th, 2006
为了庆祝红楼艺苑 的六周年,来自论坛 的22位朋友一起录制了《武林外传》的四幕剧对白:《鸡王争霸》、《钱夫人》、《南宫残花》、《江湖月报》。戴上耳麦,听着这些来自五湖四海的声音、祝福与欢笑,没有理由不期待即将来临的2007年更美好。
论坛中的讨论及剧本贴
December 20th, 2006
Lotus Notes 从版本 7 开始正式支持 Linux 平台,但是官方只支持 Red Hat Linux。本文介绍了在颇为流行的桌面操作系统 Ubuntu Linux 6.10 上安装和使用 Lotus Notes 7.0.1 时会遇到的问题,以及如何解决这些问题。这些经验同样可以适用于其他 Linux 分发版。
从版本 7 开始,IBM 的群件产品 Lotus Notes 正式开始支持 Linux 平台,v7.0.1 是 Lotus Notes for Linux 的第一个公开发布。与相应的 Windows 版本的 Lotus Notes 客户端不同的是,Lotus Notes for Linux 是通过一个名为 IBM Workplace Managed Client 的框架来提供功能的。正因如此,在安装 Lotus Notes for Linux 的同时也会安装此 IBM Workplace Managed Client 框架。在以下对安装过程的描述中将会对此有详细说明。
Ubuntu 是一款起步于 Debian 的 Linux 分发版,当然也是开放源码、完全免费的。Ubuntu 的目标是构建一个面向最终用户、易用的操作系统,事实也的确如此。它每六个月发布一个新版本,开发团队和社区为每个版本都提供 18 个月的支持,其中 v6.06 拥有长达 3 年的支持时间(服务器版是 5 年)。最近的一个版本是 v6.10,发布于 2006 年 10 月。Ubuntu 使用 GNOME 作为桌面环境,它还有两个相关项目组:Kubuntu (使用 KDE 桌面),Xubuntu (使用 Xfce 桌面)。Ubuntu 的主要赞助者、支持者是 Canonical 公司 。
Read the rest of this entry »
December 19th, 2006
我的机器的显卡是 ATI Mobility Fire GL T2,这款显卡是有 3D Acceleration 能力的。Ubuntu Edgy 能自行识别此显卡,但是它缺省所使用的 open source driver 并不能驱动该卡的 3D 能力,因此我需要安装使用由 ATI 提供的 proprietary driver fglrx.
有两种安装途径,其一是去 ATI 的官方网站 下载相应的驱动程序包,然后编译安装;其一是直接使用 Ubuntu 软件库种的包。这里我使用后者,简单嘛。
Install ATI fglrx driver:
$ sudo apt-get install xorg-driver-fglrx
安装 fglrx driver 后,先别忙着切换系统使用该 driver,可以运行指令 fglrxinfo 查看一下当前使用的 open source driver 信息:
$ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: Tungsten Graphics, Inc. OpenGL renderer string: Mesa DRI R300 20060815 AGP 1x TCL OpenGL version string: 1.2 (1.3 Mesa 6.5.1)
启用 fglrx 的方法很简单,只需要编辑 /etc/X11/xorg.conf 即可:
$ cd /etc/X11 $ sudo cp xorg.conf xorg.conf_backup_orig $ sudo vi xorg.conf
将
Diver "ati"
该成
Driver "fglrx"
然后在文件末尾加上一段:
Section "Extensions" Option "Composite" "false" EndSection
重启X后,再运行 fglrxinfo 指令,应该就会看到如下输出:
$ fglrxinfo display: :0.0 screen: 0 OpenGL vendor string: ATI Technologies Inc. OpenGL renderer string: MOBILITY FIREGL T2 Pentium 4 (SSE2) (FireGL) (GNU_ICD) OpenGL version string: 2.0.6011 (8.28.8)
可以使用指令 fgl_glxgears 来校验 3D Acceleration 是否启动了。
嘿嘿,有了 3D Acceleration 后再玩 Google Earth 和 Quake III OpenArena 就粉爽了 ^o^
December 18th, 2006
以 ThinkPad T42p 为例,介绍了如何安装 Ubuntu 6.10,并与 Windows XP 共存,使用 NTLDR 来进行双引导。
1 基本硬件 2 目标与约定 3 下载 4 安装 5 配置双引导 6 安装后的基本配置
1 基本硬件
CPU:Intel Pentium M 1.8GHz 内存:2G memory 硬盘:56G hard drive
2 目标与约定
我的 ThinkPad T42p 原先的系统 Windows XP 要保留,且使用 Windows boot loader (NTLDR) 来引导机器,而不是 Linux GRUB,即,GRUB 不可以安装到 MBR 区,而是安装到 Ubuntu 自己使用的第一个分区。
这台机器的硬盘共 56G,Windows XP 使用了 44G,依次分为 C区 ( /dev/hda1 ),D区 ( /dev/hda2 )。剩余的 12G 将由 Ubuntu 使用,将分成两个分区,其中 /dev/hda3 为根区 ( / ),/dev/hda4 为交换区 (swap)。
Linux GRUB 将安装到 /dev/hda3 上。
Read the rest of this entry »
December 6th, 2006
前段时间看了一部2005年的电影《天国王朝》(Kingdom of Heaven) ,这是一部史诗片,描写了第三次十字军东征前发生在耶路撒冷王国的一段故事。恰好最近我在断断续续地读 L.S. Stavrianos 的《全球通史》(A Global History),读到了有关伊斯兰教的章节,做些笔记。
伊斯兰教又称清真教、回教,公元7世纪初兴起于阿拉伯半岛,与基督教、佛教并列为目前世界三大宗教。“伊斯兰”意为“顺从神的旨意”。伊斯兰教信徒称为“穆斯林”,意为“顺从者”。
其创立者穆罕默德于569年出生在麦加,一座位于现今的沙特阿拉伯西部的古城。大约在610年,穆罕默德开始相信神选他为最后的先知,他宣称已接受了神的感召,要去证实安拉的唯一性和超然存在。“安拉”一词是阿拉伯语中的“神”的汉语音译。犹太教、基督教与伊斯兰教均奉亚伯拉罕为先祖圣徒,都认为亚伯拉罕是神选中的先知,因此,这三个宗教所指的“唯一的神”应该是同一个神。
随着皈依伊斯兰教义的信徒渐渐增多,麦加的富商和贵族们担心这会削弱过去的宗教信仰,于是他们开始反对和阻止伊斯兰教。622年,穆罕默德移居雅特里布,一座位于麦加以北约300英里处的绿洲城市,后来这座城市改名为麦地那·纳比,意为“先知之城”,简称麦地那。伊斯兰教历(回历)也以这一年为纪元元年。经过10年的斗争,到632年穆罕默德去世时,伊斯兰教在阿拉伯半岛取得了统治地位,大多数阿拉伯部落都已承认穆罕默德至高无上的地位。
穆罕默德死后,为了让各部落继续效忠麦地那、防止穆斯林社会陷入分裂,各方协商同意穆罕默德的岳父出任先知在世间的代表,称为“哈里发”,意为“真主使者的代理人”。起初,哈里发由穆斯林公社选举产生,到661年,穆阿维叶一世即位第五任哈里发,他改哈里发制度为世袭。现在,哈里发职位被大部分伊斯兰国家符号化,即与世俗政治相脱离,哈里发不再干涉国家政治生活,仅作为宗教领袖存在。
伊斯兰教的教派纷争起源于哈里发继承问题,其中逊尼派是主流,什叶派约占到穆斯林人口的10%左右,而神秘主义的苏非派盛行于民间。