前言
一边看书一边看 HBase 的代码,让自己的理解能更深刻一些
下载源码
在 github hbase 页面 fork 一份到自己的 repositories 中, 方便注释修改, 最新的 hbase 代码中 pom.xml 版本为: 3.0.0-SNAPSHOT
导入 hbase 源码到 idea
jdk version: jdk1.8.0_231
maven: 3.6.3
-
用 idea 打开 HBase 源码目录下的 pom.xml 文件:
image.png -
选择 open as project
image.png -
maven package
image.png
如果没报错基本就没问题了
运行 HMaster
- 修改 hbase-common 模块 resource 下的 hbase-default.xml 配置文件
加入以下 property:
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>simos-iMac-Pro.local</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.defaults.for.version.skip</name>
<value>true</value>
</property>
hbase.rootdir: 因为我本机上由单节点的 hdfs 运行,所以配置的是我本机的 hdfs 路径
hbase.zookeeper.quorum: 配的是我本机山运行的 zk
hbase.defaults.for.version.skip: 这个必须要配置,不然会出现 hbase-default.xml file seems to be for and old version of HBase 异常
image.png
-
配置 HMaster 运行
image.png
Main class: org.apache.hadoop.hbase.master.HMaster
VM Options: -Dlog4j.configuration=file:/Users/simo/work/project/github/hbase/conf/log4j.properties
Program arguments: start
Use classpath of module: hbase-server (HMaster class 所在的 module)
现在 HMaster 应该可以启动了
image.png
没有出现异常,打开 chrome 输入: http://localhost:16010 验证 hbase hmaster 是否启动成功
这是我启动后的页面
配置 RegionServer 运行
-
HMaster 启动后虽然没有 error 日志,但是一直出现: WARN [master/localhost:16000] assignment.AssignmentManager: No servers available; cannot place 1 unassigned regions.
image.png -
配置 HRegionServer 运行
image.png
除了 Name、Main class 和 HMaster 的配置不一样,其他配置都一致
- 运行 HRegionServer,查看 hbase master 界面: http://localhost:16010/master-status
image.png
Region Server 已经上线
网友评论