hadoop2.8.5+hbase2.2.0+phoenix5.0.0-HBase-2.0
hadoop配置略。先啟動hadoop,再啟動hbase。單機版hbase也需要zookeeper。hbase自帶zookeeper,我們可以選擇使用hbase自帶的zookeeper,也可以選擇使用我們已經啟動好的zookeeper。
hbase-env.sh內容:
export HBASE_MANAGES_ZK=false
true代表使用hbase自帶的zookeeper,false代表使用我們自己的zookeeper。
hbase-site.xml內容:
<configuration>
<property>
<!--hdfs路徑-->
<name>hbase.rootdir</name>
<value>/hbase</value>
</property>
<!--hbase.cluster.distributed值必須為true,否則HBASE_MANAGES_ZK不好使,不管值是true還是false,都會啟動hbase自帶的zookeeper-->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!--zookeeper的端口。如果是啟用hbase自帶的zookeeper,則啟動的zookeeper會占用此端口。如果是啟用已經啟動好的zookeeper,則這個值是zookeeper集群的端口-->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!--如果hbase-env.sh中HBASE_MANAGES_ZK值為true,則需要配置zookeeper數據目錄,否則不用配置此屬性-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/Users/shengruikou/hbase/zookeeper</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
執行start-hbase.sh啟動hbase。在啟動時,最好觀察下HMaster和HRegionServer的日志,這樣啟動失敗的話容易定位失敗原因。執行start-hbase.sh后會打印出日志路徑,不過給出的是.out路徑,我們最好觀察同目錄中的.log文件,文件名一般是hbase-xxx-master-xxx.log和hbase-xxx-regionserver-xxx.log。
如果報ClassNotFoundException: org.apache.htrace.Trace或者ClassNotFoundException: org.apache.htrace.SamplerBuilder,則需要從網上下載htrace-core-3.1.0-incubating.jar,復制到$HBASE_HOME/lib目錄中,再啟動即可。
hbase啟動成功后,用jps命令可以看到HMaster進程、HRegionServer進程。
HMaster管理端口是16010,在瀏覽器訪問此端口可以看到Master web ui。
HRegionServer管理端口是16030,在瀏覽器訪問此端口可以看到RegionServer web ui。
如果要用phoenix操作hbase,則需要把phoenix5.0.0-HBase-2.0/lib中的phoenix-5.0.0-HBase-2.0-server.jar和phoenix-core-5.0.0-HBase-2.0.jar復制到$HBASE_HOME/lib中,重啟hbase(先執行stop-hbase.sh,再執行start-hbase.sh),然后執行phoenix5.0.0-HBase-2.0/bin中的sqlline.py,參數是zookeeper集群地址,如sqlline.py 127.0.0.1,就ok了。