最近用臺式機(jī)辦公比較多,由于經(jīng)常要做一些HBase 相關(guān)的功能測試,需要再本地搭建HBase單機(jī)環(huán)境,下午準(zhǔn)備花個把小時搭建一下單機(jī)環(huán)境,發(fā)現(xiàn)竟然花費(fèi)了幾個小時,有一些文件非常不靠譜,導(dǎo)致走了很多彎路。這里總結(jié)一遍比較完整的安裝指南,給需要在windows下搭建HBase測試環(huán)境的朋友們節(jié)約一些時間。廢話少說,直接寫操作步驟吧:
一、軟件包下載
主要需要4個軟件包(其中HDFS涉及到2個軟件包):
1、java安裝包(這里使用的是)
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2、HDFS安裝包下載(2個)
下載hadoop安裝包
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz?
備注:由于源生的hdfs的安裝包不支持windows,需要做一些兼容處理,下載這個包就是為了兼容windows下的hadoop,直接下載即可,我的環(huán)境2.8.4的版本可以正常使用。下載地址為:
https://github.com/sardetushar/hadooponwindows
3、HBase軟件包下載
http://archive.apache.org/dist/hbase/
備注到這里下載即可,我選擇的是1.2.6的版本
二、安裝java
java的安裝非常簡單,安裝這里就不介紹了,介紹一下JAVE環(huán)境相關(guān)的修改:
1、添加JAVA_HOME環(huán)境變量

點(diǎn)擊上圖所示的【環(huán)境變量】,進(jìn)入環(huán)境變量設(shè)置頁面,點(diǎn)擊下圖所示的【新建】


備注:上圖中的變量值根據(jù)實(shí)際安裝JDK的路徑設(shè)置
2、添加JAVA的執(zhí)行目錄到系統(tǒng)path中

找到path,點(diǎn)擊【編輯】在最后加上;C:\Program Files\Java\jdk1.8.0_191\bin 然后保存即可
三、安裝HDFS
1、將下載好的hadoop-2.7.7.tar.gz?解壓到某個盤的下面,比如我解壓到F盤的hbase目錄下,并將hadoop-2.7.7的目錄重命名為hadoop,并刪除掉hadoop下的etc和bin目錄
2、解壓下載好的hadooponwindows-master.zip,并將etc和bin目錄拷貝到hadoop目錄下
3、添加HADOOP_HOME到環(huán)境變量,添加方法參考前面JAVA_HOME的添加方法
4、添加hadoop的bin目錄到path中,添加方法和前面添加java的path路徑一樣
5、編輯配置文件,添加對應(yīng)的配置
etc/hadoop/core-site.xml
<configuration>
? ? <property>
? ? ? ? <name>fs.defaultFS</name>
? ? ? ? <value>hdfs://localhost:9000</value>
? ? </property>
</configuration>
etc/hadoop/mapred-site.xml
<configuration>
? ? <property>
? ?<name>mapreduce.framework.name</name>
? ? ? <value>yarn</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml
<configuration>
? <property>
? ? ? <name>dfs.replication</name>
? ? ? <value>1</value>
? </property>
? <property>
? ? ? <name>dfs.namenode.name.dir</name>
? ? ? <value>file:///F:/hbase/hadoop/data/dfs/namenode</value>
? </property>
? <property>
? ? ? <name>dfs.datanode.data.dir</name>
? ? <value>file:///F:/hbase/hadoop/data/dfs/datanode</value>
? </property>
</configuration>
etc/hadoop/yarn-site.xml
<configuration>
? ? <property>
? ? ? <name>yarn.nodemanager.aux-services</name>
? ? ? <value>mapreduce_shuffle</value>
? ? </property>
? ? <property>
? ? ? <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
? ? ? <value>org.apache.hadoop.mapred.ShuffleHandler</value>
? ? </property>
</configuration>
etc/hadoop/hadoop-env.cmd
set JAVA_HOME=C:\PROGRA~1\Java\jdk1.8.0_191
備注:這里千萬不要寫set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_191,這里由于空格無法識別的問題會導(dǎo)致后面執(zhí)行hdfs namenode -format的時候出現(xiàn)如下報錯:
'Files' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
Error: JAVA_HOME is incorrectly set.
? ? ? Please update F:\hbase\hadoop\etc\hadoop\hadoop-env.cmd
'-Dhadoop.security.logger' 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序
或批處理文件。
6、進(jìn)入cmd命令行模式,并切換到F:/hbase/hadoop/bin目錄下,執(zhí)行格式化命令
????hdfs namenode -format
7、執(zhí)行啟動hdfs的命令,切換到F:/hbase/hadoop/sbin目錄下,執(zhí)行如下命令啟動
????start-all.cmd
備注:如果要停止的話,執(zhí)行stop-all.cmd即可
8、檢查安裝是否成功
可以通過訪問namenode的頁面以及resourcemanager的頁面來觀察集群是否正常
Resourcemanager GUI address -?http://localhost:8088
Namenode GUI address –?http://localhost:50070
四、安裝HBase
HBase的安裝比hadoop簡單一些,具體如下:
1、解壓hbase-1.2.6-bin.tar.gz
? ? 解壓后,將目錄重命名為hbase
3、添加HBASE_HOME到環(huán)境變量,添加方法參考前面JAVA_HOME的添加方法
4、添加HBase的bin目錄到path中,添加方法和前面添加java的path路徑一樣
5、編輯配置文件,添加對應(yīng)的配置
conf/hbase-site.xml
<configuration>
? ? <property>
? ? ? ? <name>hbase.rootdir</name>
? ? ? ? <value>hdfs://localhost:9000/hbase</value>
? ? </property>
? ? <property>
? ? ? ? <name>hbase.tmp.dir</name>
? ? ? ? <value>F:/hbase/hbase-1.2.6/tmp</value>
? ? </property>
? ? <property>
? ? ? ? <name>hbase.zookeeper.quorum</name>
? ? ? ? <value>127.0.0.1</value>
? ? </property>
? ? <property>
? ? ? ? <name>hbase.zookeeper.property.dataDir</name>
? ? ? ? <value>F:/hbase/hbase-1.2.6/zoo</value>
? ? </property>
? ? <property>
? ? ? ? <name>hbase.cluster.distributed</name>
? ? ? ? <value>false</value>
? ? </property>
</configuration>
conf/hbase-env.cmd
set JAVA_HOME=C:\PROGRA~1/Java/jdk1.8.0_191
set HBASE_MANAGES_ZK=true
6、啟動HBase,進(jìn)入F:\hbase\hbase\bin,執(zhí)行如下命令啟動HBase
? ??start-hbase.cmd
? ? 備注,停止HBase采用?stop-hbase.cmd
7、測試是否有異常
? ? 可以執(zhí)行如下命令進(jìn)入HBase命令行:
hbase shell
#創(chuàng)建一個表
create 'lester_test111','i'
