CentOS 6下HBase僞分佈式安裝實錄

系統環境

OS:CentOS 6.4 64-bit
RAM:2G
CPU:Intel Core i5-2400 3.10GHz
Hadoop版本:hadoop-2.4.0.tar.gz
HBase版本:hbase-0.98.2-hadoop2-bin.tar.gz html

準備工做

1、爲主機命名 java

#vim /etc/sysconfig/network node

NETWORKING=yes
HOSTNAME=cos2.cosdomain linux

2、配置/etc/hosts shell

127.0.0.1   localhost localhost.localdomain
192.168.135.54 cos2 cos2.cosdomain apache

其中192.168.135.54爲本機一個網卡的固定IPV4地址 vim

3、安裝JDK並設置JAVA_HOME

# tar zxvf jdk_1.8.0_linux_x64.tar.gz -C /jdk dom

# vim /etc/profile ssh

最後加入下面幾行 jsp

export JAVA_HOME=/jdk1.8.0_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4、安裝配置SSH,使其能夠自動登陸   

# yum install -y openssh
# ssh-keygen -t rsa-P '' -f ~/.ssh/id_rsa
# ssh-copy-id -i ~/.ssh/id_rsa.pub  user88@cos2
user88@cos2‘s password:

$ ssh cos2   //驗證是否配置成功,不用輸密碼便可登陸本機。

安裝並配置hadoop

將hadoop-2.4.0.tar.gz包解壓在目錄/opt/hadoop-2.4.0,而後配置/hadoop-2.4.0/etc/hadoop目錄下的四個文件:
core-site.xml:
        <configuration>
               <property>
                  <name>fs.defaultFS</name>
                  <value>hdfs://cos2:8020</value>
              </property>
              <property>
                  <name>hadoop.tmp.dir</name>
                 <value>/opt/hadoop_data</value>
              </property>
         </configuration>

hdfs-site.xml:
      <configuration>
             <property>
                  <name>dfs.replication</name>
                  <value>1</value>
             </property>
      </configuration>
  

mapred-site.xml:
     <configuration>
          <property>
               <name>mapred.job.tracker</name>
               <value>cos2:8021</value>
         </property>
     </configuration>

hadoop-env.sh:   
export JAVA_HOME=/jdk1.8.0_05/

  經過以上步驟hadoop即安裝配置完成,進入hadoop-2.4.0主目錄的bin目錄下
  # ./hdfs namenode -format    //格式化hadoop namenode,不少時候namenode啓動不起來能夠試試格式化一下
  進入hadoop-2.4.0主目錄的sbin目錄下
  # ./start-dfs.sh 和start-yarn.sh    //啓動hadoop的各個監護進程
      能夠經過http://cos2:50070   和http://localhost:50030 查看namenode和jobtracker。
  #./stop-yarn.sh 和start-dfs.sh   //關閉hadoop的各個監護進程

安裝並配置hbase

將hbase-0.98.2-hadoop2-bin.tar.gz包解壓在目錄/opt/hbase-0.98.2,而後配置/opt/hbase-0.98.2/conf/hbase-env.sh文件

#JAVA_HOME主目錄
export JAVA_HOME=/jdk1.8.0_05/
#指向HADOOP_HOME配置目錄?爲何
export HBASE_CLASSPATH=$HBASE_CLASSPATH:/hadoop-2.4.0/etc/hadoop


編輯/opt/hbase-0.98.2/conf/hbase-site.xml 文件,增長如下內容

<property>
    <name>hbase.rootdir</name>
    <value>hdfs://cos2:8020/hbase</value>  
    ##標紅色的路徑必定要跟hadoop中core-site.xml中fs.defaultFS中的路徑相同,不然拋錯。
</property>
<property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
</property>
<property>  
    <name>hbase.zookeeper.quorum</name>  
    <value>cos2</value>  
</property>
<property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
</property>


完成以上操做,就能夠正常啓動HBase了,啓動順序:先啓動Hadoop——>再啓動Hbase,關閉順序:先關閉Hbase——>再關閉Hadoop。
# ./start-hbase.sh
# ./stop-hbase.sh

若是一切正常,使用jdk自帶的jps命令查看可獲得相似以下輸出

# jps
23346 ResourceManager
24133 HRegionServer
23159 SecondaryNameNode
22985 DataNode
23961 HQuorumPeer
22858 NameNode
23451 NodeManager
5598 Jps
24031 HMaster



也能夠在地址http://cos2:60010/master.jsp查看HBase運行信息。


接下來就能夠啓動hbase shell
#./hbase shell

錯誤集錦

(1)ERROR: Can't get master address from ZooKeeper; znode data == null

緣由:運行hbase(zookeeper)的用戶沒法寫入zookeeper文件,致使znode data爲空。

解決:在hbase-site.xml指定一個運行hbase的用戶有寫入文件權限的目錄做爲zookeeper數據目錄,如
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/user88/zk_data</value>
  </property>

(2)HMaster起動失敗,HBASE_HOME/logs/下的master日誌有打印
master.HMaster: Unhandled exception. Starting shutdown.
java.net.ConnectException: Call From cos2.com/10.0.3.218 to cos2:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused

緣由:除了http://wiki.apache.org/hadoop/ConnectionRefused中緣由外,還應保證/etc/hosts文件中不存在 ::1 localhost localhost.localdomain這一行

解決:刪除/etc/hosts文件中不存在 ::1 localhost localhost.localdomain這一行

(3)start-dfs.sh啓動HDOOP_HOME/logs下日誌中報錯org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/xxxxxxxx/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible.  

緣由:  在linux下hadoop等的各類數據默認保存在/tmp目錄下。 當重啓系統後/tmp目錄中的數據信息被清除,致使hadoop啓動失敗。

解決: bin/hadoop namenode -format 格式化後,恢復了默認設置,便可正常啓動。
或者在hadoop的core-site.xml中加入如下配置
              <property>
                  <name>hadoop.tmp.dir</name>
                 <value>/opt/hadoop_data</value>
              </property>

參考文獻

http://www.cnblogs.com/Dreama/articles/2219190.html

http://blog.csdn.net/johnny901114/article/details/9446593

相關文章
相關標籤/搜索