系统:windows10
IDE: Eclipse
hadoop: 3.3.4
hbase: 2.4.15
java: 17
下载Cygwin安装包:http://cygwin.com/install.html
安装Cygwin,CMake、zlib、Python都可以用Cygwin安装,详细步骤可参考这篇文章
设置Cygwin的安装目录到环境变量PATH
验证,cygcheck -c cygwin
, 安装成功的话应该可以得到以下信息
更详细的安装步骤参考此篇文章
下载安装包:https://github.com/protocolbuffers/protobuf/releases。
解压安装包到相应的位置
添加到系统变量PATH
验证:protoc --version
这一步不一定需要,因为hbase有内部集成的,但是我本地启动hbase的时候老是失败,所以我在自己的虚机里面启了一个zookeeper,启动hbase的时候就使用这个外部的zk。可参考这篇文章搭建zookepper
因为hbase依赖hadoop环境,所以事先要搭建好本地hadoop环境,有两种方式:
winutils
,虽然文中给的地址最新是3.2.2,但我用的是3.3.4,3.3.4使用3.2.2的winutils也是没有问题的。hadoop namenode -format
,不然namenode会启动失败。%HADOOP_HOME%\etc\hadoop\hadoop-env.cmd
这个文件,大概在第25行,将JAVA_HOME
换成java8的安装目录,这样就不用换你电脑的java环境不管用的是哪一种方法,在启动hbase的时候都不需要启动hadoop,只要安装好就可以了。
下载源码: https://github.com/apache/hbase。源码下载后可以切换分支,本文用的2.4.15版本
编译:mvn package -DskipTests,如果java是11以上的版本则mvn package -DskipTests -Dhadoop.profile=3.0
,我的电脑是java17,所以用的是后者
导入IDE,本文用的是Eclipse
修改hbase/conf/hbase-site.xml
hbase.defaults.for.version 2.4.15 hbase.cluster.distributed true hbase.tmp.dir ./tmp hbase.rootdir C:\Software\hadoop\data\datanode hbase.unsafe.stream.capability.enforce false hbase.zookeeper.quorum zk.host hbase.zookeeper.property.clientPort 2182
这些工作准备完之后就可以开始启动源码了。
本文先启动HRegionServer是因为HMaster启动的时候会收集HRegionServer的信息,不然在becomeActiveMaster的过程中会不断等待,
好了,开始启动
如果你能成功启动HRegionServer那就容易了,直接复制HRegionServer的配置,然后做下面的修改就可以了
配置好后启HMaster,成功启动的话应该是这样的:
下面是我遇到的问题,供参考
Failed to create or set permission on staging directory file
错误,如图:则只要以admin身份启动你的IDE即可,如图
Please check the config value of 'hbase.wal.dir' and ensure it points to a FileSystem mount that has suitable capabilities for output streams.
或者java.io.IOException: cannot get log writer
,如图:请确保你的/conf/hbase-site.xml
配置了这个属性
hbase.unsafe.stream.capability.enforce false
对于shell客户端的启动:
我的版本是2.4.15就报了上述错误,在网上查了很多文章,大多数都是说降版本就可以解决,但是我不想降,本来学习嘛,有困难就要迎难而上,最后经过一番碰壁后瞎猫捉耗子给蒙对了,具体步骤如下:
上面的配置都配置好后启动HShell,这个过程会有点长,成功的话应该会出现下面的界面
最后,为了验证启动的三个service是否能正常工作,我们在HShell的命令行输入create 'Lanna_Table','Lanna_Info','Lanna_Data'
,如下图:
在浏览器访问http://localhost:16010/,即可看到新表创建成功了。
第一次接触大数据相关的知识,折腾了三个晚上终于搭好了本地环境,喜极而泣啊!!!