Windows-IntelliJ IDEA启动HBase集群、HBase Shell
在桌面云-Windows-IntelliJ IDEA启动HBase集群、HBase Shell和 HBase2.0异步客户端样例代码
软件 |
说明 |
JDK8 |
HBase2.0使用了jdk8的stream、lambda、CompletableFuture |
Apache Maven 3.3.9 |
版本可选 |
IntelliJ IDEA社区版 |
官网可免费下载社区版 |
hadoop winutils |
HBase在windows上需要的一个工具 |
cygwin |
编译过程 ant 和sh脚本需要linux环境 |
· JDK、Maven、winutil的安装请参考已有的【Eclipse中安装HBASE集群并本地调试】
· 编译或运行过程中遇到错误,请参考最后章节处理错误。
1 HBase2.1.0下载与编译
1.1 下载hbase源码
https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.1.0/
1.2 IntelliJ IEAD导入工程
1.3 配置maven仓库
settings*.xml中配置两个mirrors,注意mirror优先级,第一个mirrorof是*,第二个mirrorof是central,表示前者找不到再找第二个,两个mvn源都找不到jar包才报错, 可以找2个包含hadoop的源
1.4 可视化编译hbase源码,和windows cmd中执行
“clean package -DskipTests”等效,参考如下7个步骤配置
在console中查看编译结果如下
2 IntelliJ IDEA中运行HBase集群
2.1 把{HBASE_SOURCE_PATH}\conf目录拷贝到{HBASE_SOURCE_ PATH }\hbase-server目录下
2.2 把新拷贝的conf目录加到hbase-server模块的classpath中,【右键conf】->【Mark Directory as】->选择【Resource Root】
2.3 配置面板新增Application,application命名为HMaster,配置HMaster启动参数如下
1 HMaster
2 org.apache.hadoop.hbase.master.HMaster
3 -Dproc_master -XX:OnOutOfMemoryError="kill -9 %p" -XX:+UseConcMarkSweepGC -Dhbase.log.dir=D:\code\hbase-rel-2.1.0\logs -Dhbase.log.file=hbase-root-master.log -Dhbase.home.dir=D:\code\hbase-rel-2.1.0\bin\. -Dhbase.id.str=root -Dhbase.root.logger=INFO,console,DRFA
备注点1: D:\code\hbase-rel-2.1.0是{HBASE_SOURCE_PATH}变量值
备注点2:红色的配置是日志输出的路径、日志文件名称、log4j配置
备注点3:如果-Dhbase.root.logger=INFO,console,即没有DRFA, 则日志只输出到IntelliJ IDEA的console,不输出到{HBASE_SOURCE_PATH}\log\hbase-root-master.log。 DRFA是从{HBASE_SOURCE_PATH}\hbase-server\conf\log4j.properties文件中选取的一个appender
4. start
5. hbase-server
2.4. 启动(run)或者调试(debug)HMaster。
2.5. 启动时遇到version不匹配的错误,请参考已有的【在桌面云中安装HBASE集群并本地调试.docx】,集群启动成功,在console中输出如下log4j日志
2.6. 在{HBASE_SOURCE_PATH}\logs\hbase-root-master.log也有HMaster启动的日志,和console一致,如下
2.7. 查看和自定义hbase和zookeeper数据输出目录
默认情况下输出路径是用户下的C:\Users\{用户名}\AppData\Local\Temp\目录,如下
自定义输出路径,编辑{HBASE_SOURCE_PATH}\hbase-server\conf\hbase-site.xml,新增如下两个配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>data\hbase_data</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>data\zookeeper_data</value>
</property>
</configuration>
重启HMaster集群,查看{HBASE_SOURCE_PATH}\data目录下有hbase data和zookeeper data,如下
3 IntelliJ IDEA中运行hbase shell
3.1 把{HBASE_SOURCE_PATH}\conf目录拷贝到{HBASE_SOURCE_ PATH }\hbase-shell目录下
3.2 把新拷贝的conf目录加到hbase-shell模块的classpath中,【右键conf】->【Mark Directory as】->选择【Resource Root】
3.3 配置面板新增Application,application命名hbase shell,配置hbase shell启动参数如下
1 hbae shell
2 org.jruby.Main
3 -Dhbase.ruby.sources=D:\code\hbase-rel-2.1.0\hbase-shell\src\main\ruby\
备注点:D:\code\hbase-rel-2.1.0是{HBASE_SOURCE_PATH}
4 -X+O D:\code\hbase-rel-2.1.0\bin\hirb.rb
5 hbase shell
3.4 启动hbase shell
3.5 console查看启动日志,如下
3.6 在console中可以输出hbase shell的命令来执行,比如输出status命令,如下
4 IntelliJ IDEA中运行HBase2.0的异步客户端样例代码AsyncClientExample.java
4.1 hbase集群(HMaster)已经拉起
4.2 使用hbase shell创建一个表,依据AsyncClientExample.java代码逻辑,需要有column family ‘d’。 命令如create 'tableName_weizheng','d'
4.3 把{HBASE_SOURCE_PATH}\conf目录拷贝到{HBASE_SOURCE_ PATH }\hbase-examples目录下
4.4 把新拷贝的conf目录加到hbase-examples模块的classpath中,【右键conf】->【Mark Directory as】->选择【Resource Root】
4.5 配置面板新增Application,application命名AsyncClientExample,配置AsyncClientExample启动参数如下
1 AsyncClientExample
2 org.apache.hadoop.hbase.client.example.AsyncClientExample
3 tableName_weizheng 5
4 hbase-examples
4.6 启动AsyncClientExample application
4.7 console查看客户端运行结果
5 遇到的问题
5.1 mvn编译过程中报ant或者sh失败,安装cygwin软件
5.2 mvn编译过程中报check-aggregate-license错误,全文搜索找到pom.xml文件,把校验license的脚本逻辑skip设置为true,如下
5.3拉起HMaster进程时,报错java.lang.RuntimeException: hbase-default.xml file seems to be for an older version of HBase (@@@VERSION@@@)。
编辑hbase-default.xml文件,把@@@VERSION@@@改为hbase的具体版本号,比如2.1.2,截图如下
5.4 mvn编译时,请默认工程勾选的profile,不要随意勾选其他profile,默认的profile截图如下
5.5 编译遇到Verison.java中的user格式不对问题(user参数值不能换行)。
Verison.java是由saveVersion.sh脚本generate出来的,请修改saveVersion.sh脚本中的user变量为常量。截图如下
- 点赞
- 收藏
- 关注作者
评论(0)