windows本地编译调试hbase-3.0.0-alpha-2-SNAPSHOT源码

7 篇文章 0 订阅
5 篇文章 0 订阅

windows本地编译调试hbase-3.0.0-alpha-2-SNAPSHOT源码

前言

研究hbase的原因有两方面:一是自己是做大数据相关的开发工作,hbase这一类的存储是绕不过去的,二是因为研究图数据库janusGraph,底层的图数据存储的是hbase和ES,如果对于janusgraph对于数据在hbase中的建模,存储,插入,更新,删除等逻辑如果不是很了解的话,对于图数据库的数据的存储和使用都存在很大的问题,很难推动产品落地和改进工作。所以决定对hbase进行深入研究。后续会有hbase和janusgraph相关技术文档的持续更新,有兴趣可以持续关注。

代码下载,编译与调试

  1. hbase对应代码在github上都有下载,大家可以自行下载对应版本的代码,本文针对的是3.0.0-alpha-2-SNAPSHOT版本,代码链接如下:https://github.com/Zaizai1993/hbase.git
  2. 下载完代码之后,导入到idea,maven编译命令如下:mvn package -DskipTests assembly:single。
  3. HMaster启动参数与启动效果如下,对应参数值配置改成自己的对应的配置:
-Dhbase.home.dir=D:/work/code/own/hbase/hbase
-Dhbase.log.dir=D:/work/code/own/hbase/hbase/data/log
-Dhbase.log.file=hbase-root-master.log

在这里插入图片描述
正常启动之后效果如下:
在这里插入图片描述
在这里插入图片描述
4. Hbase shell 启动参数与启动效果如下:
-Dhbase.ruby.sources=D:/work/code/own/hbase/hbase/hbase-shell/src/main/ruby
D:\work\code\own\hbase\hbase\hbase-shell\src\main\ruby\jar-bootstrap.rb
在这里插入图片描述
在这里插入图片描述
到此处hbase源码本地编译运行完成。

问题解决

编译过程中遇到很多问题,问题与解决方案如下:

  1. 问题:ERROR DOM element is - not a log4j:configuration element.
    解决方案:启动参数不要配置-Dlog4j.configuration=file:///D:/work/code/own/hbase/hbase/hbase-server/src/main/resources/log4j2.xml
  2. 问题:HADOOP_HOME and hadoop.home.dir are unset.
    解决方案:下载对应版本hadoop解压并配置HADOOP_HOME,并且安装wintils,winutils的下载链接如下:https://github.com/Zaizai1993/hadoop-windows-support.git,自行替换对应版本的bin目录的文件
  3. 问题:ExitCodeException exitCode=-1073741515
    解决方案:安装C++集合,链接如下:链接:https://pan.baidu.com/s/1RsVgWDEtZfn22_gPWIEw4g
    提取码:9emm
  4. 问题:org.apache.hadoop.io.nativeio.NativeIO P O S I X . s t a t ( L j a v a / l a n g / S t r i n g ; ) L o r g / a p a c h e / h a d o o p / i o / n a t i v e i o / N a t i v e I O POSIX.stat(Ljava/lang/String;)Lorg/apache/hadoop/io/nativeio/NativeIO POSIX.stat(Ljava/lang/String;)Lorg/apache/hadoop/io/nativeio/NativeIOPOSIX$Stat;
    解决方案:hadoop3.1使用了winutils使用了3.0的,改为使用3.1或者更高的版本就行
  5. 问题:NameError: uninitialized constant IRB::Irb
    解决方案:hbase shell启动参数配错了,应该使用D:\work\code\own\hbase\hbase\hbase-shell\src\main\ruby\jar-bootstrap.rb而不是D:\work\code\own\hbase\hbase\hbase-shell\src\main\ruby\irb\hirb.rb
  6. 问题:LoadError: load error: irb/completion – java.lang.NoSuchMethodError: jline.console.completer.CandidateListCompletionHandler.setPrintSpaceAfterFullCompletion(Z)V
    解决方案:hbase父pom的jline版本过低,改为高版本就行,修改如下:
<!--<jline.version>2.11</jline.version>-->
    <jline.version>2.14.6</jline.version>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仔仔1993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值