最近用台式机办公比较多,由于经常要做一些HBase 相关的功能测试,需要再本地搭建HBase单机环境,下午准备花个把小时搭建一下单机环境,发现竟然花费了几个小时,有一些文件非常不靠谱,导致走了很多弯路。这里总结一遍比较完整的安装指南,给需要在windows下搭建HBase测试环境的朋友们节约一些时间。废话少说,直接写操作步骤吧:
一、软件包下载
主要需要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,直接下载即可,我的环境2.8.4的版本可以正常使用。下载地址为:
https://github.com/sardetushar/hadooponwindows
3、HBase软件包下载
http://archive.apache.org/dist/hbase/
备注到这里下载即可,我选择的是1.2.6的版本
二、安装java
java的安装非常简单,安装这里就不介绍了,介绍一下JAVE环境相关的修改:
1、添加JAVA_HOME环境变量
点击上图所示的【环境变量】,进入环境变量设置页面,点击下图所示的【新建】
备注:上图中的变量值根据实际安装JDK的路径设置
2、添加JAVA的执行目录到系统path中
找到path,点击【编辑】在最后加上;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到环境变量,添加方法参考前面JAVA_HOME的添加方法
4、添加hadoop的bin目录到path中,添加方法和前面添加java的path路径一样
5、编辑配置文件,添加对应的配置
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,这里由于空格无法识别的问题会导致后面执行hdfs namenode -format的时候出现如下报错:
'Files' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
Error: JAVA_HOME is incorrectly set.
Please update F:\hbase\hadoop\etc\hadoop\hadoop-env.cmd
'-Dhadoop.security.logger' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
6、进入cmd命令行模式,并切换到F:/hbase/hadoop/bin目录下,执行格式化命令
hdfs namenode -format
7、执行启动hdfs的命令,切换到F:/hbase/hadoop/sbin目录下,执行如下命令启动
start-all.cmd
备注:如果要停止的话,执行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到环境变量,添加方法参考前面JAVA_HOME的添加方法
4、添加HBase的bin目录到path中,添加方法和前面添加java的path路径一样
5、编辑配置文件,添加对应的配置
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,进入F:\hbase\hbase\bin,执行如下命令启动HBase
start-hbase.cmd
备注,停止HBase采用 stop-hbase.cmd
7、测试是否有异常
可以执行如下命令进入HBase命令行:
hbase shell
#创建一个表
create 'lester_test111','i'