更新时间:2024-10-31 GMT+08:00

在本地Windows环境中调测HBase应用

操作场景

在程序代码完成开发后,您可以在Windows开发环境中运行应用。本地和集群业务平面网络互通时,您可以直接在本地进行调测。

  • 如果Windows开发环境中使用IBM JDK,不支持在Windows环境中直接运行应用程序。
  • 需要在运行样例代码的本机hosts文件中设置访问节点的主机名和IP地址映射,主机名和IP地址请保持一一对应。

在本地Windows环境中调测HBase应用

  1. 单击IDEA右边Maven窗口的“Reimport All Maven Projects”,进行maven项目依赖import。

    图1 reimport projects

  2. 编译运行程序。

    放置好配置文件,并修改代码匹配登录用户后,文件列表如图2所示。

    图2 hbase-example待编译目录列表
    1. 编译方式有以下两种:
      • 方法一

        选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。

        选择“Maven > 样例工程名称 > Lifecycle > compile”,双击“compile”运行maven的compile命令。

        图3 mavne工具 clean和compile
      • 方法二
        在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean compile命令进行编译。
        图4 idea termial输入“mvn clean compile”

        编译完成,打印“Build Success”,生成target目录。

        图5 编译完成
    2. 运行程序。

      右键“TestMain.java”文件,选择“Run 'TestMain.main() ”

      图6 运行程序

查看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.
    ...

    在Windows环境运行样例代码时会出现下面的异常,但是不影响业务:

    java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.

  • 日志说明

    日志级别默认为INFO,可以通过调整日志打印级别(DEBUG,INFO,WARN,ERROR,FATL)来显示更详细的信息。可以通过修改“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
    ...