Hypertable在Ubuntu12.04上standalone模式的安装

前段时间,花精力翻译了Hypertable官方网站上的有关文档,还有参考手册,比较长,以后有时间再说。

翻译这些文档,其实也是自己学习消化的过程。下面就从安装起,来一次Hypertable之旅。

本人使用的是64位Ubuntu(建议使用64位,否则会有麻烦),版本为12.04,本文及以后的测试,都是基于该操作系统。

本文是Hypertable最简单的一种安装:standalone,Hypertable的版本为0.9.6.0。

一、下载及安装文件

正如安装文档中所描述的,Hypertable的安装应该是比较简单的,有两种安装包选择:

1.hypertable-0.9.6.0-linux-x86_64.deb

2.hypertable-0.9.6.0-linux-x86_64.tar.bz2

Hypertable网站均提供了下载,本质上,两种包没有区别,但deb包的安装更简单,下载后采用如下命令:

 sudo dpkg --install hypertable-0.9.6.0-linux-x86_64.deb
就完成。如果用tar包,则需要自己选择安装位置。

安装文档中强调采用root账户,请遵守(可以采用每个命令前用sudo),否则将带来麻烦。

(按安装文档操作或缺省情况)包解压完成后,可以看到/opt目录下出现hypertable及其下面一系列目录。

二、初始化化运行目录结构

安装文档中将此步骤叫做FHSize,其实就是运行fhsize.sh脚本,创建某些目录及链接。安装要求,先创建两个目录,在运行该脚本(加sudo),这时,查看一下/opt/hypertable/0.9.6.0/目录,会有一些链接被创建出来。

三、一些可选步骤

在本文的环境下,文档中的3,4,5并不是必需的。创建current链接最好做一下,创建数据卷就不必了,另外,在/opt/hypertable/0.9.6.0/目录下已经有fs链接了,所以文档中的第4步似乎有些问题,不过只要指向数据卷就可以了。修改Hyperspace.Replica.Host属性也不是必需的,文档中建议将此值改为机器名(不是ip)也可以,localhost也可以。

四、运行

按文档中格式运行start-all-servers.sh脚本,应该见到期望的结果。

五、问题

比较复杂的情况是采用tar包,而又不是root账户,例如是firstuser。笔者一开始就是如此,按安装文档的要求将有关目录的改为firstuser所有。但启动hypertable时,有如下错误:

ERROR: Hypertable.Master did not come up

ERROR: ThriftBroker did not come up

查看Hypertable.Master的日志,有如下记录:

1343726488 INFO Hypertable.Master : (/root/src/hypertable/src/cc/Hypertable/Master/main.cc:308) Obtained lock on '/hypertable/master'
1343726488 INFO Hypertable.Master : (/root/src/hypertable/src/cc/Hypertable/Master/main.cc:332) Successfully Initialized.
1343726488 WARN Hypertable.Master : (/root/src/hypertable/src/cc/AsyncComm/IOHandlerData.cc:756) FileUtils::writev(8, len=38) failed : Broken pipe
1343726488 INFO Hypertable.Master : (/root/src/hypertable/src/cc/AsyncComm/ConnectionManager.cc:359) Event: type=DISCONNECT from=127.0.0.1:38030; Problem connecting to DFS Broker, will retry in 600000 milliseconds...
1343726488 INFO Hypertable.Master : (/root/src/hypertable/src/cc/Hypertable/Master/Monitoring.cc:73) rangeservers monitoring stats dir /opt/hypertable/0.9.6.0/run/monitoring exists 
1343726488 INFO Hypertable.Master : (/root/src/hypertable/src/cc/Hypertable/Master/Monitoring.cc:73) rangeservers monitoring stats dir /opt/hypertable/0.9.6.0/run/monitoring/tables exists 
1343726488 INFO Hypertable.Master : (/root/src/hypertable/src/cc/Hypertable/Master/Monitoring.cc:73) rangeservers monitoring stats dir /opt/hypertable/0.9.6.0/run/monitoring/rangeservers exists 
1343726488 WARN Hypertable.Master : (/root/src/hypertable/src/cc/AsyncComm/Comm.cc:246) No connection for 127.0.0.1:38030 - COMM not connected
1343726489 ERROR Hypertable.Master : main (/root/src/hypertable/src/cc/Hypertable/Master/main.cc:254): Hypertable::Exception: Error checking existence of DFS path: /hypertable/servers/master/log/mml - COMM not connected
	at virtual bool Hypertable::DfsBroker::Client::exists(const Hypertable::String&) (/root/src/hypertable/src/cc/DfsBroker/Lib/Client.cc:655)
	at void Hypertable::DfsBroker::Client::send_message(Hypertable::CommBufPtr&, Hypertable::DispatchHandler*) (/root/src/hypertable/src/cc/DfsBroker/Lib/Client.cc:731): DFS send_request to 127.0.0.1:38030 failed


比较怪异的是,在停掉Hypertable(当然,停止也不是完成成功)以后再启动,有时也能成功。

以上问题估计是权限的问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值