本文将基于hbase 0.98.1解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.****.net/bluishglc/article/details/24593597,转载请注明出处。
JAVA_HOME=/usr/java/jdk1.7.0_51
HADOOP_HOME=/usr/local/hadoop
HBASE_HOME=/usr/local/hbase
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin
export JAVA_HOME HADOOP_HOME HBASE_HOME PATH
注:为了在输入命令时避免同名的cmd文件的干扰,能够使用rm -f $HBASE_HOME/bin/*.cmd删除cmd文件。
1.2. 将安装包解压到/usr/local(或者/opt)下, 编辑conf/hbase-env.sh 在开头部分加入:
export JAVA_HOME=/usr/java/jdk1.7.0_51
export HBASE_LOG_DIR=/var/hbase/logs
<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/var/hbase</value>
</property>
<property >
<name>hbase.rootdir</name>
<value>hdfs://YOUR-NAMENODE:9000/hbase</value>
</property>
<property >
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>YOUR-ZNODE1,YOUR-ZNODE2,YOUR-ZNODE3</value>
</property>
</configuration>
3.1 org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server xxxxxx,60020,1416564592512 has been rejected; Reported time is too far out of sync with master. Time difference of xxxxx ms > max allowed of 30000ms
3.2 FATAL [master:xxxxx:60000] master.HMaster: Unhandled exception. Starting shutdown.
org.apache.hadoop.security.AccessControlException: Permission denied: user=hbase, access=WRITE, inode="/":hadoop:supergroup:drwxr-xr-x
这是因为启动HBase服务的用户没有在HDFS指定文件夹上(这里是根文件夹)进行写操作的权限。出现这样的问题的常见原因是使用了某个专有帐号(比方hadoop)启动了hadoop的各项服务,而使用了另个某个专有帐号(比方hbase)去启动hbase,因为hbase在初次启动时须要在HDFS的根文件夹上建立一个hbase文件夹来存放数据,而对于hdfs来说,仅仅有hadoop用户才有权在根文件夹上进行写操作。
所以解决办法就是使用hadoop用户在hdfs的根文件夹上建立一个hbase文件夹,同一时候把它的group和owner都改为hbase就能够了。