日期:2014-05-16 浏览次数:20538 次
测试环境上hbase采用maven编译,只要安装了maven就行.
在hbase目录下mvn package -Dmaven.test.skip.exec=true编译好的jar放在target
目录下,将jia包替换以后。
1.重启集群发现一个问题:HMaster启动了,但是Regionserver没有起来
?
后来分析maven编译之前时候会把依赖都下到.m2/目录下,Hbase集群在启动的时候会首先从该目录下寻找jar包,而其中的一个hadoop的core jar包与集群的hbase版本冲突,因此编译以后不能启动。
?
解决方法:对maven不了解不知道怎么去修改寻找路劲,所以采取了一个笨方法,编译结束以后删除.m2文件夹。就可以顺利启动集群了。
?
2.eclipse下maven编译hbase
?
还是maven的问题:从svn上下载下来的maven工程,直接编译报错:No goals have been specified for this build
网上查了一下,eclipse在使用maven 插件的时候需要配置defaultgoal
于是在pom.xml的build下添加<defaultgoal>install</defaultgoal>
再编译提示Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.3:run (generate) on project hbase: An Ant BuildException has occured: Execute failed: java.io.IOException: Cannot run program "sh":
找到<exec executable="sh"><arg line="${basedir}/src/saveVersion.sh ${project.version} ${generated.sources}" /></exec>
将其注释掉,而后执行maven build skip test,顺利编译。
copy到环境上发现hbase master起来了,而regionserver没有启动。
hbase-site.xml配置的是0.90.3而编译后的版本是0.90.2以为版本不兼容,故把hbase-site.xml修改,重启报错,启动的时候报错,default.xml 版本高于0.90.2。在代码中把验证版本的代码注释掉,而后重新编译jar,部署到环境上,base-site.xml为0.90.3此时hbase成功启动。
?
另外ms如果不对代码进行修改,直接编译的话target目录下面是不会有jar生成的,很是蛋疼
?
环境配置真是烦人啊~~~