
# 在本地Windows环境中调测HBase应用
#### 操作场景
在程序代码完成开发后，您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时，您可以直接在本地进行调测。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
- 如果Windows开发环境中使用IBM JDK，不支持在Windows环境中直接运行应用程序。
- 需要在运行样例代码的本机**hosts**文件中设置访问节点的主机名和IP地址映射，主机名和IP地址请保持一一对应。
 
#### 在本地Windows环境中调测HBase应用
1. 单击IDEA右边Maven窗口的"Reimport All Maven Projects"，进行maven项目依赖import。 
   图1reimport projects   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001298931517.png "点击放大")
   
   
2. 编译运行程序。 
   放置好配置文件，并修改代码匹配登录用户后，文件列表如[图2]所示。
   图2hbase-example待编译目录列表   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252213130.png)
   1. MRS 3.6.0-LTS及之后版本，选择对应的JDK版本，选择"Maven \> *样例工程名称* \> Profiles"，勾选目标JDK版本，例如需要使用JDK 21，则勾选"build-with-jdk21"，并取消其他相关JDK的Profile勾选。
      图3选择目标JDK版本   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000002488097578.png "点击放大") 
   
   2. 编译方式有以下两种：
      - 方法一 选择"Maven \> *样例工程名称*\> Lifecycle \> clean"，双击"clean"运行maven的clean命令。
        选择"Maven \> *样例工程名称* \> Lifecycle \> compile"，双击"compile"运行maven的compile命令。
        图4maven工具 clean和compile   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252372838.png) 
      
      - 方法二
        在IDEA的下方Terminal窗口进入"pom.xml"所在目录，手动输入**mvn clean compile** 命令进行编译。
        图5idea termial输入"mvn clean compile"   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299052093.png "点击放大")
        编译完成，打印"Build Success"，生成target目录。
        图6编译完成   
        ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001299092669.png "点击放大") 
       
   
   3. 运行程序。 右键"TestMain.java"文件，选择"Run 'TestMain.main()'"
      图7运行程序   
      ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001252691878.png "点击放大") 
   
   
   
   
 
#### 查看Windows调测结果
HBase应用程序运行完成后，可通过如下方式查看运行情况。
- 通过IntelliJ IDEA运行结果查看应用程序运行情况。
- 通过HBase日志获取应用程序运行情况。
- 登录HBase WebUI查看应用程序运行情况。可参见"更多信息 \> 对外接口 \> Web UI "。
- 通过HBase shell命令查看应用程序运行情况。可参见"更多信息 \> 对外接口 \> Shell "。
各样例程序运结果如下：
- HBase数据读写样例运行成功会有如下信息：
  ```
  ...
  2020-09-09 22:11:48,496 INFO  [main] example.TestMain: Entering testCreateTable.
  2020-09-09 22:11:48,894 INFO  [main] example.TestMain: Creating table...
  2020-09-09 22:11:50,545 INFO  [main] example.TestMain: Master: 10-1-131-140,16000,1441784082485
  Number of backup masters: 1
    10-1-131-130,16000,1441784098969
  Number of live region servers: 3
    10-1-131-150,16020,1441784158435
    10-1-131-130,16020,1441784126506
    10-1-131-140,16020,1441784118303
  Number of dead region servers: 0
  Average load: 1.0
  Number of requests: 0
  Number of regions: 3
  Number of regions in transition: 0
  2020-09-09 22:11:50,562 INFO  [main] example.TestMain: Lorg.apache.hadoop.hbase.NamespaceDescriptor;@11c6af6
  2020-09-09 22:11:50,562 INFO  [main] example.TestMain: Table created successfully.
  2020-09-09 22:11:50,563 INFO  [main] example.TestMain: Exiting testCreateTable.
  2020-09-09 22:11:50,563 INFO  [main] example.TestMain: Entering testMultiSplit.
  2020-09-09 22:11:50,630 INFO  [main] example.TestMain: MultiSplit successfully.
  2020-09-09 22:11:50,630 INFO  [main] example.TestMain: Exiting testMultiSplit.
  2020-09-09 22:11:50,630 INFO  [main] example.TestMain: Entering testPut.
  2020-09-09 22:11:51,148 INFO  [main] example.TestMain: Put successfully.
  2020-09-09 22:11:51,148 INFO  [main] example.TestMain: Exiting testPut.
  2020-09-09 22:11:51,148 INFO  [main] example.TestMain: Entering createIndex.
  ...
  ```
  ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
  在Windows环境运行样例代码时会出现下面的异常，但是不影响业务：
  java.io.IOException: Could not locate executable null\\bin\\winutils.exe in the Hadoop binaries.
  
- HBase/Phoenix对接SpringBoot运行结果 在浏览器中访问链接"http://*样例运行节点IP地址* :8080/hbase/HBaseDemo"和"http://*样例运行节点IP地址*:8080/hbase/PhoenixDemo"，IDEA正常打印日志，请求返回"finish HBase"和"finish Phoenix"，如下图所示：
  图8返回"finish HBase"   
  ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001904763862.png "点击放大")
  图9返回"finish Phoenix"   
  ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001941283257.png "点击放大") 
- 日志说明 日志级别默认为INFO，可以通过调整日志打印级别（DEBUG，INFO，WARN，ERROR，FATAL）来显示更详细的信息。可以通过修改"log4j.properties"文件来实现，如：
  ```
  hbase.root.logger=INFO,console
  ...
  log4j.logger.org.apache.zookeeper=INFO
  #log4j.logger.org.apache.hadoop.fs.FSNamesystem=DEBUG
  log4j.logger.org.apache.hadoop.hbase=INFO
  # Make these two classes DEBUG-level. Make them DEBUG to see more zk debug.
  log4j.logger.org.apache.hadoop.hbase.zookeeper.ZKUtil=INFO
  log4j.logger.org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher=INFO
  ...
  ```
  
 
