1.解压文件
通过官网下载编译的或者自己编译好的二进制包 Hbase 解析(一) 源码编译,解压缩文件,文件目录应该包含如下文件:
其中data和tmp文件夹是自己新建的数据文件夹,稍后有解释
-rw-r--r-- 1 wangkai staff 139417 3 5 17:37 CHANGES.md
-rw-r--r-- 1 wangkai staff 262 7 16 2019 LEGAL
-rw-r--r-- 1 wangkai staff 129974 3 14 09:35 LICENSE.txt
-rw-r--r-- 1 wangkai staff 520601 3 14 09:35 NOTICE.txt
-rw-r--r-- 1 wangkai staff 1477 3 5 17:37 README.txt
-rw-r--r-- 1 wangkai staff 88280 3 5 17:37 RELEASENOTES.md
drwxr-xr-x 31 wangkai staff 992 3 5 17:37 bin
drwxr-xr-x 10 wangkai staff 320 3 17 08:21 conf
drwxr-xr-x 14 wangkai staff 448 3 16 12:37 data
drwxr-xr-x 7 wangkai staff 224 3 14 09:33 hbase-webapps
drwxr-xr-x 177 wangkai staff 5664 3 14 10:52 lib
drwxr-xr-x 16 wangkai staff 512 3 16 12:37 logs
drwxr-xr-x 5 wangkai staff 160 3 14 15:15 tmp
2.配置设置
2.1 打开调试选项
vim conf/hbase-env.sh
修改如下配置,取消注释,配置本地调试端口为8070,hbase单机版只有一个jvm进程,所以客户端和服务端的调试都通过同一个JDWP
就可以。
2.2 zk管理
hbase自己管理zk,单机版下,hbase会启动一个zk线程,来提供hbase元信息的管理。如果有独立zk,此处不用设置。
2.3 修改默认的配置
1.默认路径设置,此处路径建议设置为绝对路径,这里设置的data和tmp为提前创建的目录
<property>
<name>hbase.tmp.dir</name>
<value>/hbase-2.2.2/tmp</value>
</property>
hbase.tmp.dir 本地文件系统上的临时目录。更改此设置以指向更永久的位置而不是“ / tmp”,通常是java.io.tmpdir的解析,因为
重新启动计算机后,将清除“ / tmp”目录。为默认${java.io.tmpdir}/hbase-${user.name},
2.存储路径
<property>
<name>hbase.rootdir</name>
<value>file:///hbase-2.2.2/data</value>
</property>
hbase.rootdir 区域服务器共享地址,也就是hbase数据存储的地方,可以是本地或者hdfs。例如,指定HDFS目录'/ hbase',其中HDFS实例的namenode为运行在端口9000上的namenode.example.org上,此值设置为:hdfs://namenode.example.org9000/ hbase。 默认情况下,可以将$ {hbase.tmp.dir}设置为任何值,通常是/ tmp,更改此配置,否则所有数据都会丢失机器重启。
3. 版本跳过
<property>
<name>hbase.defaults.for.version.skip</name>
<value>true</value>
</property>
建议一开始设置为ture,IDEA调试或者mvn编译时,以避免看到RuntimeException投诉:“ hbase-default.xml设置有旧版本的HBase(\ $ {hbase.version}),版本有可能会是是X.X.X-SNAPSHOT。
4.超时设置
以下几个时间的设置,可以避免断点造成的连接超时
下面几个是服务端的超时配置,建议客户端和服务端配置一样
<property>
<name>ipc.socket.timeout</name>
<value>3600000</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>3600000</value>
</property>
<property>
<name>hbase.regionserver.lease.period</name>
<value>3600000</value>
</property>
下面的是客户端的超时配置,建议客户端和服务端配置一样
<property>
<name>hbase.client.scanner.timeout.period</name>
<value>3600000</value>
</property>
<property>
<name>hbase.client.operation.timeout</name>
<value>3600000</value>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>1</value>
</property>
<property>
<!--master与region通信超时 -->
<name>hbase.master.maxclockskew</name>
<value>3600000</value>
</property>
3.启动hbase
3.1 前提
1. 需要提前安装Java,设置JAVA_HOME,并添加到PATH
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home"
2.建议重启电脑
3.2 启动hbase
1. 切换到hbase的路径
cd hbse-2.2.2
2.执行启动命令
bin/start-hbase.sh
启动成功后显示:
running master, logging to /hbase-2.2.2/bin/../logs/hbase-master.out
Listening for transport dt_socket at address: 8070
4 IDEA调试配置
4.1 启动IDEA,点击工具栏运行配置,如下图
4.2 选择配置,添加远程调试,最终配置如下:
4.3 导入源代码,开始调试