手把手教你配置Hbase完全分布式環境
HBase配置相對比較簡單,下面的教程也是基于我上面2篇Hadoop配置的環境下繼續往下添加HBase的分布式配置,這次我的HBase安裝目錄放在跟Hadoop同一目錄下面,節點信息跟我前一篇Hadoop完全分布式配置完全一樣,不清楚的話可以參考我那篇文章。
HBase根目錄:/usr/mywind/hbase
HBase的版本:0.98.8-hadoop2
有圖有真相:
完整配置步驟:hbase-env.sh → hbase-site.xml → regionservers
當然,配置之前的慣例是把bin目錄加到系統環境變量里面,方便命令的使用。然后,詳細的步驟如下:
1. 配置hbase-env.sh,把Java環境變量告訴HBase,并配置ZooKpeer是否托管。
export JAVA_HOME=${JAVA_HOME} export HBASE_HEAPSIZE_ZK=false
2. 配置hbase-site.xml,引用管網的話“假如你第一次配置,那么<configuration></configuration>之間是沒有任何內容的”。
<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://192.168.8.184:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.master</name> <value>master:60000</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/a01513/zookeeper</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2,slave3</value> </property> <property> <name>hbase.zookeeper.property.clientPort</name> <value>2181</value> </property> </configuration>
這里要特別注意的是hbase.rootdir里面的HDFS地址是要跟Hadoop 的core-site.xml里面的fs.defaultFS 的HDFS的IP地址或者域名、端口必須一致。其次是hbase.zookeeper.property.dataDir,其中a01513是我的操作系統用戶名,根據你自己的情況改吧,或者放到其他目錄也是可以的。hbase.cluster.distributed 是啟用分布式模式,這里必須為true哦。hbase.zookeeper.quorum是配置集群IP地址集或者域名集,逗號分隔。hbase.master配置HBase的主節點端口,web端口是60010,通過web UI你可以確認你是否訪問成功了。如下圖表示成功了:
3. 最后配置regionservers,這個最簡單了,把里面的內容改成下面的就可以了:
slave1 slave2 slave3
有圖有真相,讓你模仿起來更有信心:
配置完成后啟動HBase就可以了:
start-hbase.sh
關于Shell命令、API文檔,參考官網吧。
配置中可能遇到的問題:
1. WARN [Thread-12] hdfs.DFSClient: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /hbase/.tmp/hbase.version could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.
問題定位:datanode
問題原因:datanode沒有啟動
解決辦法:啟動datanode(start-dfs.sh)
2. 執行sh start-hbase.sh時報錯,命令兼容性原因還是什么,忘記了,總之,不能使用 sh start-hbase.sh ,要用bash start-hbase.sh。
來自:http://my.oschina.net/lanzp/blog/348116