分享

大家是怎么调试HBase源码的呢?

Riordon 发表于 2015-12-15 10:11:43 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 5 15303
本帖最后由 Riordon 于 2015-12-15 10:12 编辑

为了深入学习HBase,跟踪源码必不可少,大家是怎么调试修改源码的呢?比如我要深入理解HMaster的启动流程,该怎么去做?
(1) 环境相关
若Hadoop/Hbase部署于Linux,则Eclipse也要安装于Linux;
若Hadoop/Hbase部署于Cygwin,则Eclipse安装于Win7;
由于Hadoop/Hbase部署于Cygwin的不便,Eclipse也不太想安装于Linux,能否Hadoop/Hbase部署于Linux,而Eclipse安装于Win7?

(2) 源码调试步骤
需要准备什么呢,何种软件包,是否需要编译源码?
win7上编译源码,是否得装Cygwin?
我试了下win7中Eclipse编译源码,报以下错误:
[mw_shl_code=applescript,true][ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.6:run (generate) on project hbase-common: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "bash" (in directory "E:\XProject\code\hbase\hbase-common"): CreateProcess error=2, ????????? -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluen ... oExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :hbase-common
[/mw_shl_code]

像是没有bash环境所致?

问题多多,还望赐教,在此谢过~

已有(5)人评论

跳转到指定楼层
cranberries8 发表于 2015-12-15 10:55:21
本帖最后由 pig2 于 2015-12-15 19:20 编辑

你如果要调试 hbase master 的话是需要安装 Cygwin 的

以下是我转载别人的本地搭建hbase 调试的步骤,希望对你有帮助:
本地环境:Win7,配置安装Cygwin,Maven。
调试环境:Spring Source Tool Suite(也就是Eclipse)
HBase版本: 0.94.2

1. 配置Eclipse M2_REPO 变量,如果是Eclipse,估计要配,如果是Spring Source Tool Suite,就不用了,已经集成好了
2. 在Eclipse SVN Repositories 中 Checkout HBase 0.94.2源码,Convert To Maven Project
SVN 地址:http://svn.apache.org/repos/asf/hbase/tags/0.94.2
3. 到项目根目录Build HBase源码,成功后会在源码项目更目录中找到.classpath和.project文件,Build 后记得刷新一下项目,操作如图:
命令:mvn clean install -DskipTests
编译结果:
4. 配置hbase-site.xml文件,第一个property是target文件夹中生成的tar.gz的文件版本,如果你是用的trunk下源码,要加Snapshot。如图所示
5. 配置start项
然后修改Arguments
修改Classpath,看到图中标注的5.即可:
修改Environment,我们都知道,hadoop生态群都需要linux环境下,需要shell命令,所以需要配入Cygwin
6. OK,狂欢时刻到了,Run!
成功后,在浏览器中输入 http://localhost:60010/master.jsp,你会发现你期待已久的页面!

7. 假如你想Debug,直接 debug刚才的那个start就ok了。
8. 如何停掉呢?不建议直接摁eclipse上的那个小红点。你可以将start的配置duplicate 一个,然后将Arguments里边的start修改成stop即可。
9. 到这里,完了吗?没有,我知道,你肯定会问,我想用shell command...OK,可以满足你的。
10. Run Shell去吧,在Eclipse的Console中,去Shell的狂欢吧,你可以list,可以create table,可以put,可以get,当然,也可以exit。
11. Over,希望能让你有一个愉快的HBase调试之旅
回复

使用道具 举报

cranberries8 发表于 2015-12-15 10:59:39
如果是要调试hbase master 的话 要安装Cygwin
以下是我复制过来的步骤,希望对你有帮助:

本地环境:Win7,配置安装Cygwin,Maven。

调试环境:Spring Source Tool Suite(也就是Eclipse)

HBase版本: 0.94.2


1. 配置Eclipse M2_REPO 变量,如果是Eclipse,估计要配,如果是Spring Source Tool Suite,就不用了,已经集成好了



2. 在Eclipse SVN Repositories 中 Checkout HBase 0.94.2源码,Convert To Maven Project

SVN 地址:http://svn.apache.org/repos/asf/hbase/tags/0.94.2



3. 到项目根目录Build HBase源码,成功后会在源码项目更目录中找到.classpath和.project文件,Build 后记得刷新一下项目,操作如图:

命令:mvn clean install -DskipTests



编译结果:



4. 配置hbase-site.xml文件,第一个property是target文件夹中生成的tar.gz的文件版本,如果你是用的trunk下源码,要加Snapshot。如图所示



5. 配置start项



然后修改Arguments



修改Classpath,看到图中标注的5.即可:



修改Environment,我们都知道,hadoop生态群都需要linux环境下,需要shell命令,所以需要配入Cygwin



6. OK,狂欢时刻到了,Run!



成功后,在浏览器中输入 http://localhost:60010/master.jsp,你会发现你期待已久的页面!





7. 假如你想Debug,直接 debug刚才的那个start就ok了。

8. 如何停掉呢?不建议直接摁eclipse上的那个小红点。你可以将start的配置duplicate 一个,然后将Arguments里边的start修改成stop即可。

9. 到这里,完了吗?没有,我知道,你肯定会问,我想用shell command...OK,可以满足你的。



10. Run Shell去吧,在Eclipse的Console中,去Shell的狂欢吧,你可以list,可以create table,可以put,可以get,当然,也可以exit。

11. Over,希望能让你有一个愉快的HBase调试之旅
回复

使用道具 举报

Riordon 发表于 2015-12-15 11:05:44
cranberries8 发表于 2015-12-15 10:55
你如果要调试 hbase master 的话是需要安装 Cygwin 的

嗯嗯,是先编译成功再导入Eclipse吧,我的理解编译是下载依赖,编译导入Eclipse后,运行HMaster start,HMaster进程是属于Cygwin 还是win7呢?
回复

使用道具 举报

cranberries8 发表于 2015-12-15 11:19:16
本帖最后由 cranberries8 于 2015-12-15 11:21 编辑
Riordon 发表于 2015-12-15 11:05
嗯嗯,是先编译成功再导入Eclipse吧,我的理解编译是下载依赖,编译导入Eclipse后,运行HMaster start,H ...
用maven 塞,(先编译在导入都是无所谓的 ,都可以,导入了在编译只需要刷新下工程就可以了)
1.先转化 To Maven Project  
2.在进行编译 mvn clean install -DskipTests
3.配置hbase-site.xml文件
4.配置hbase的 conf 路径到 环境变量
5.修改Environment,我们都知道,hadoop生态群都需要linux环境下,需要shell命令,所以需要配入Cygwin (也就是添加Cygwin 的环境变量到eclipse )
6.配置运行参数即可
回复

使用道具 举报

Riordon 发表于 2015-12-15 11:28:05
cranberries8 发表于 2015-12-15 11:19
用maven 塞,(先编译在导入都是无所谓的 ,都可以,导入了在编译只需要刷新下工程就可以了)
1.先转化 To ...

谢谢,懂了 。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条