Eclipse中安装HBASE集群并本地调试
在Eclipse中安装HBASE集群并本地调试
软件 |
说明 |
JDK 1.8.0 |
尽量保持和生产环境使用的JDK一致 |
Apache Maven 3.5.2 |
版本可选 |
Eclipse |
尽量高版本 |
hadoop winutils |
HBase在windows上需要的一个工具 |
msys2 |
可选软件,windows上类linux环境 |
Git |
可选软件 |
1.1 JDK安装配置向导
安装
下载并安装 OpenJDK
配置
添加系统环境变量JAVA_HOME
OpenJDK
OpenJDK默认安装路径为C:\Program Files\RedHat\java-1.8.0-openjdk-1.8.0.121-1
测试
打开cmd,输入Java -version测试OpenJDK安装是否成功
1.2 Apache Maven安装配置向导
Apache Maven 3.3.9下载并按照
安装
解压apache-maven-3.3.9-bin.zip到目录。
配置
在Path环境变量中添加maven/bin目录
测试
在cmd输入mvn -version测试apache maven
1.3 HBase下载与编译
下载hbase源码
可以从开源社区下载https://hbase.apache.org/
配置maven仓库
编译hbase源码
mvn clean compile -DskipTests
1.4 Hadoop下载并安装winutil
下载hadoop二进制包
http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz
配置HADOOP_HOME
在环境变量中配置HADOOP_HOME为hadoop二进制包部署地址
PATH中添加%HADOOP_HOME%/bin
下载hadoop winutil
https://github.com/steveloughran/winutils
将winutils-master\hadoop-2.7.1\bin中的所有内容拷贝到hadoop/bin目录中
2 HBase集成开发环境
将代码import到eclipse,运行eclipse,菜单File->Import,选择Maven->Existing Maven Projects,Next,Browse,选择源码目录
修改Eclipse中的Maven配置
菜单Window->Preferences->Maven->Installations,点击Add, 设置外部Maven
菜单Window->Preferences->Maven->User Settings,点击Browse,选择maven仓库配置文件
2 Eclipse中运行HBase集群
配置hmaster启动参数
打开hbase-server\src\main\java\org\apache\hadoop\hbase\master\HMaster.java
右键菜单Run As->Java Application运行HMaster,需要对该Java application进行设置,菜单Run->Run Configuration,选择Java Application->HMaster
选择Arguments,在Program arguments中输入
start
在VM arguments中输入
-Dproc_master -XX:OnOutOfMemoryError="kill -9 %p" -XX:+UseConcMarkSweepGC -XX:PermSize=128m -XX:MaxPermSize=128m -Dhbase.log.dir=D:\WorkSpace\HBase_1.3\source\logs -Dhbase.log.file=hbase-root-master.log -Dhbase.home.dir=D:\WorkSpace\HBase_1.3\source\bin\. -Dhbase.id.str=root -Dhbase.root.logger=INFO,console
注意对上面路径中hbase-1.3.0之前的路径进行修改
在Classpath列表中选择User Entries,点击Advance,选择Add Folders,选择hbase-1.3.0/hbase/conf
修改hbase-1.3.0/hbase/conf中的hbase-site.xml
<configuration>
<property>
<name>hbase.default.for.version.skip</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>file:///D:/WorkSpace/HBase_1.3/source/hbase_data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>D:/WorkSpace/HBase_1.3/source/zookeeper_data</value>
</property>
</configuration>
验证
run
注:如果出现报错信息参见ISSUE1~5进行修复
2 Eclipse中运行HBase命令行
配置
菜单Run->Run Configuration,选择Java Application
右键点击Java Application->New,新建一个Java Application
在Main的Project中选择hbase-shell,在Main里输入org.jruby.Main
选择Arguments,在Program arguments中输入,注意修改路径
-X+O D:\WorkSpace\HBase_1.3\source\bin\..\bin\hirb.rb
在VM arguments中输入,注意修改路径
-Dproc_master -XX:OnOutOfMemoryError="kill -9 %p" -XX:+UseConcMarkSweepGC -XX:PermSize=128m -XX:MaxPermSize=128m -Dhbase.log.dir=D:\WorkSpace\HBase_1.3\source\logs -Dhbase.log.file=hbase-root-master.log -Dhbase.home.dir=D:\WorkSpace\HBase_1.3\source\bin\. -Dhbase.id.str=root -Dhbase.root.logger=INFO,console -Dhbase.ruby.sources=D:\WorkSpace\HBase_1.3\source\hbase-shell\src\main\ruby
在Classpath列表中选择User Entries,点击Advance,选择Add Folders,选择hbase-1.3.0/hbase/conf
验证
Run
ISSUE 1
Plugin execution not covered by lifecycle configuration:
org.codehaus.mojo:build-helper-maven-plugin:1.9.1:add-source (execution: jspcSource-packageInfo-source, phase: generate-sources)
解决方法:<plugins>标签需要全部作为pluginManagement的子标签
<build>
<pluginManagement>
<plugins>
<plugin> ... </plugin>
<plugin> ... </plugin>
....
</plugins>
</pluginManagement>
</build>
示例参考:hbase-server中的pom.xml修改后样例
ISSUE 2
MasterStatusTmpl.java报错class not found
解决方法:将D:\WorkSpace\HBase_1.3\source\hbase-server\target\generated-jamon\org\apache\hadoop\hbase中的tmpl文件夹整体拷贝到D:\WorkSpace\HBase_1.3\source\hbase-server\src\main\java\org\apache\hadoop\hbase中
ISSUE 3
无法解析导入 org.apache.hadoop.hbase.Version
解决方法:将D:\WorkSpace\HBase_1.3\source\hbase-common\target\generated-sources\java\org\apache\hadoop\hbase中的Version.java拷贝到hbase-common中的org.apache.hadoop.hbase包中
ISSUE 4
Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-remote-resources-plugin:1.5:bundle (execution: build-hbase-resource-bundle, phase: generate-resources)
解决方法:删除pom.xml中的下面这一段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<executions>
<execution>
<id>build-hbase-resource-bundle</id>
<goals>
<goal>bundle</goal>
</goals>
<configuration>
<includes>
<include>META-INF/LICENSE.vm</include>
<include>META-INF/NOTICE.vm</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
ISSUE 5
java.lang.ClassNotFoundException: org.apache.hadoop.hbase.generated.master.table_jsp
解决方法:D:\WorkSpace\HBase_1.3\source\hbase-server\target\generated-sources\java\org\apache\hadoop\hbase中的generated文件拷贝到D:\WorkSpace\HBase_1.3\source\hbase-server\src\main\java\org\apache\hadoop\hbase文件夹中
- 点赞
- 收藏
- 关注作者
评论(0)