Windows-IntelliJ IDEA启动HBase集群、HBase Shell

举报
Lettle whale 发表于 2020/06/30 18:04:26 2020/06/30
【摘要】 Windows-IntelliJ IDEA启动HBase集群、HBase Shell

在桌面云-Windows-IntelliJ IDEA启动HBase集群、HBase Shell HBase2.0异步客户端样例代码

 

软件

说明

JDK8

HBase2.0使用了jdk8streamlambdaCompletableFuture

Apache Maven 3.3.9

版本可选

IntelliJ IDEA社区版

官网可免费下载社区版

hadoop winutils

HBasewindows上需要的一个工具

cygwin

编译过程 ant sh脚本需要linux环境



 

·         JDKMavenwinutil的安装请参考已有的【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*,第二个mirrorofcentral,表示前者找不到再找第二个,两个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 配置面板新增Applicationapplication命名为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 IDEAconsole,不输出到{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)或者调试(debugHMaster

2.5. 启动时遇到version不匹配的错误,请参考已有的【在桌面云中安装HBASE集群并本地调试.docx】,集群启动成功,在console中输出如下log4j日志


 

2.6. {HBASE_SOURCE_PATH}\logs\hbase-root-master.log也有HMaster启动的日志,和console一致,如下

 

2.7. 查看和自定义hbasezookeeper数据输出目录

默认情况下输出路径是用户下的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 datazookeeper 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 配置面板新增Applicationapplication命名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 配置面板新增Applicationapplication命名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变量为常量。截图如下

 

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200