Hadoop2.x下安裝HBase
環境:CentOS6.5 Hadoop2.5.2 HBase1.0.0
1.安裝好 hadoop 集群,并啟動
[grid@hadoop4 ~]$ sh hadoop-2.5.2/sbin/start-dfs.sh
[grid@hadoop4 ~]$ sh hadoop-2.5.2/sbin/start-yarn.sh
查看 hadoop 版本:
[grid@hadoop4 ~]$ hadoop-2.5.2/bin/hadoop version
Hadoop 2.5.2
Subversion Unknown -r Unknown
Compiled by grid on 2014-12-31T01:40Z
Compiled with protoc 2.5.0
From source with checksum df7537a4faa4658983d397abf4514320
This command was run using /home/grid/hadoop-2.5.2/share/hadoop/common/hadoop-common-2.5.2.jar
2.查看 hbase 官方文檔(http://hbase.apache.org/book.html#basic.prerequisites),找到與 hadoop 版本對應的 hbase 并下載
[grid@hadoop4 ~]$ wget http://mirrors.cnnic.cn/apache/hbase/hbase-1.0.0/hbase-1.0.0-bin.tar.gz
3.解壓
[grid@hadoop4 ~]$ tar -zxf hbase-1.0.0-bin.tar.gz
4.進入 hbase 的 lib 目錄,查看 hadoop jar 包的版本
[grid@hadoop4 ~]$ cd hbase-1.0.0/lib/
[grid@hadoop4 lib]$ find -name 'hadoop*jar'
./hadoop-common-2.5.1.jar
./hadoop-mapreduce-client-common-2.5.1.jar
./hadoop-annotations-2.5.1.jar
./hadoop-yarn-server-common-2.5.1.jar
./hadoop-hdfs-2.5.1.jar
./hadoop-client-2.5.1.jar
./hadoop-mapreduce-client-shuffle-2.5.1.jar
./hadoop-yarn-common-2.5.1.jar
./hadoop-yarn-server-nodemanager-2.5.1.jar
./hadoop-yarn-client-2.5.1.jar
./hadoop-mapreduce-client-core-2.5.1.jar
./hadoop-auth-2.5.1.jar
./hadoop-mapreduce-client-app-2.5.1.jar
./hadoop-yarn-api-2.5.1.jar
./hadoop-mapreduce-client-jobclient-2.5.1.jar
發現與 hadoop 集群的版本號不一致,需要用 hadoop 目錄下的 jar 替換 hbase/lib 目錄下的 jar 文件。
編寫腳本來完成替換,如下所示:
[grid@hadoop4 hbase-1.0.0]$ vi conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_72
export HBASE_CLASSPATH=/home/grid/hadoop-2.5.2/etc/hadoop
export HBASE_MANAGES_ZK=true
第一個參數指定了JDK路徑;第二個參數指定了 hadoop 的配置文件路徑;第三個參數設置使用 hbase 默認自帶的 Zookeeper
5.2.
[grid@hadoop4 hbase-1.0.0]$ vim conf/hbase-site.xml
[grid@hadoop4 hbase-1.0.0]$ mkdir zookeeper
5.3.
[grid@hadoop4 hbase-1.0.0]$ vim conf/regionservers
hadoop4
hadoop5
hadoop6
6.設置環境變量
[grid@hadoop4 ~]$ vi .bash_profile
export HBASE_HOME=/home/grid/hbase-1.0.0
export PATH=$PATH:$HBASE_HOME/bin
[grid@hadoop4 ~]$ source .bash_profile
7.分發 hbase 到其它機器,并在其上設置環境變量
[grid@hadoop4 ~]$ scp -r hbase-1.0.0 grid@hadoop5:~
[grid@hadoop4 ~]$ scp -r hbase-1.0.0 grid@hadoop6:~
8.啟動 hbase
[grid@hadoop4 ~]$ sh start-hbase.sh
[grid@hadoop4 ~]$ jps
2388 ResourceManager
3692 Jps
2055 NameNode
3375 HQuorumPeer
2210 SecondaryNameNode
3431 HMaster
[grid@hadoop5 ~]$ jps
2795 Jps
2580 HQuorumPeer
2656 HRegionServer
2100 NodeManager
1983 DataNode
[grid@hadoop6 ~]$ jps
2566 HQuorumPeer
1984 DataNode
2101 NodeManager
2803 Jps
2639 HRegionServer
jps查看發現 Master 機上 HRegionServer 服務未啟動,查看日志顯示因16020端口被占用導致 HRegionServer 啟動失敗,查證發現占用16020端口的是 HMaster 進程,查看官方文檔后解決:[grid@hadoop4 ~]$ sh local-regionservers.sh start 2
官方文檔截圖:
9.shell
10.Web管理界面
1.安裝好 hadoop 集群,并啟動
[grid@hadoop4 ~]$ sh hadoop-2.5.2/sbin/start-dfs.sh
[grid@hadoop4 ~]$ sh hadoop-2.5.2/sbin/start-yarn.sh
查看 hadoop 版本:
[grid@hadoop4 ~]$ hadoop-2.5.2/bin/hadoop version
Hadoop 2.5.2
Subversion Unknown -r Unknown
Compiled by grid on 2014-12-31T01:40Z
Compiled with protoc 2.5.0
From source with checksum df7537a4faa4658983d397abf4514320
This command was run using /home/grid/hadoop-2.5.2/share/hadoop/common/hadoop-common-2.5.2.jar
2.查看 hbase 官方文檔(http://hbase.apache.org/book.html#basic.prerequisites),找到與 hadoop 版本對應的 hbase 并下載
[grid@hadoop4 ~]$ wget http://mirrors.cnnic.cn/apache/hbase/hbase-1.0.0/hbase-1.0.0-bin.tar.gz
3.解壓
[grid@hadoop4 ~]$ tar -zxf hbase-1.0.0-bin.tar.gz
4.進入 hbase 的 lib 目錄,查看 hadoop jar 包的版本
[grid@hadoop4 ~]$ cd hbase-1.0.0/lib/
[grid@hadoop4 lib]$ find -name 'hadoop*jar'
./hadoop-common-2.5.1.jar
./hadoop-mapreduce-client-common-2.5.1.jar
./hadoop-annotations-2.5.1.jar
./hadoop-yarn-server-common-2.5.1.jar
./hadoop-hdfs-2.5.1.jar
./hadoop-client-2.5.1.jar
./hadoop-mapreduce-client-shuffle-2.5.1.jar
./hadoop-yarn-common-2.5.1.jar
./hadoop-yarn-server-nodemanager-2.5.1.jar
./hadoop-yarn-client-2.5.1.jar
./hadoop-mapreduce-client-core-2.5.1.jar
./hadoop-auth-2.5.1.jar
./hadoop-mapreduce-client-app-2.5.1.jar
./hadoop-yarn-api-2.5.1.jar
./hadoop-mapreduce-client-jobclient-2.5.1.jar
發現與 hadoop 集群的版本號不一致,需要用 hadoop 目錄下的 jar 替換 hbase/lib 目錄下的 jar 文件。
編寫腳本來完成替換,如下所示:
[grid@hadoop4 lib]$ pwd /home/grid/hbase-1.0.0/lib [grid@hadoop4 lib]$ vim f.sh find -name "hadoop*jar" | sed 's/2.5.1/2.5.2/g' | sed 's/\.\///g' > f.log rm ./hadoop*jar cat ./f.log | while read Line do find /home/grid/hadoop-2.5.2 -name "$Line" | xargs -i cp {} ./ done rm ./f.log [grid@hadoop4 lib]$ chmod u+x f.sh [grid@hadoop4 lib]$ ./f.sh [grid@hadoop4 lib]$ find -name 'hadoop*jar' ./hadoop-yarn-api-2.5.2.jar ./hadoop-mapreduce-client-app-2.5.2.jar ./hadoop-common-2.5.2.jar ./hadoop-mapreduce-client-jobclient-2.5.2.jar ./hadoop-mapreduce-client-core-2.5.2.jar ./hadoop-yarn-server-nodemanager-2.5.2.jar ./hadoop-hdfs-2.5.2.jar ./hadoop-yarn-common-2.5.2.jar ./hadoop-mapreduce-client-shuffle-2.5.2.jar ./hadoop-auth-2.5.2.jar ./hadoop-mapreduce-client-common-2.5.2.jar ./hadoop-yarn-client-2.5.2.jar ./hadoop-annotations-2.5.2.jar ./hadoop-yarn-server-common-2.5.2.jar
OK,jar 包替換成功;hbase/lib 目錄下還有個 slf4j-log4j12-XXX.jar,在機器有裝hadoop時,由于classpath中會有hadoop中的這個jar包,會有沖突,直接刪除掉
[grid@hadoop4 lib]$ rm `find -name 'slf4j-log4j12-*jar'`
5.修改配置文件
[grid@hadoop4 hbase-1.0.0]$ vi conf/hbase-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_72
export HBASE_CLASSPATH=/home/grid/hadoop-2.5.2/etc/hadoop
export HBASE_MANAGES_ZK=true
第一個參數指定了JDK路徑;第二個參數指定了 hadoop 的配置文件路徑;第三個參數設置使用 hbase 默認自帶的 Zookeeper
5.2.
[grid@hadoop4 hbase-1.0.0]$ vim conf/hbase-site.xml
<property> <name>hbase.rootdir</name> <value>hdfs://hadoop4:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.tmp.dir</name> <value>/home/grid/hbase-1.0.0/tmp</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop4,hadoop5,hadoop6</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/home/grid/hbase-1.0.0/zookeeper</value> </property>
創建目錄
[grid@hadoop4 hbase-1.0.0]$ mkdir tmp[grid@hadoop4 hbase-1.0.0]$ mkdir zookeeper
5.3.
[grid@hadoop4 hbase-1.0.0]$ vim conf/regionservers
hadoop4
hadoop5
hadoop6
6.設置環境變量
[grid@hadoop4 ~]$ vi .bash_profile
export HBASE_HOME=/home/grid/hbase-1.0.0
export PATH=$PATH:$HBASE_HOME/bin
[grid@hadoop4 ~]$ source .bash_profile
7.分發 hbase 到其它機器,并在其上設置環境變量
[grid@hadoop4 ~]$ scp -r hbase-1.0.0 grid@hadoop5:~
[grid@hadoop4 ~]$ scp -r hbase-1.0.0 grid@hadoop6:~
8.啟動 hbase
[grid@hadoop4 ~]$ sh start-hbase.sh
[grid@hadoop4 ~]$ jps
2388 ResourceManager
3692 Jps
2055 NameNode
3375 HQuorumPeer
2210 SecondaryNameNode
3431 HMaster
[grid@hadoop5 ~]$ jps
2795 Jps
2580 HQuorumPeer
2656 HRegionServer
2100 NodeManager
1983 DataNode
[grid@hadoop6 ~]$ jps
2566 HQuorumPeer
1984 DataNode
2101 NodeManager
2803 Jps
2639 HRegionServer
jps查看發現 Master 機上 HRegionServer 服務未啟動,查看日志顯示因16020端口被占用導致 HRegionServer 啟動失敗,查證發現占用16020端口的是 HMaster 進程,查看官方文檔后解決:[grid@hadoop4 ~]$ sh local-regionservers.sh start 2
官方文檔截圖:

9.shell

10.Web管理界面

本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!