更新时间:2024-08-05 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数据读写样例运行成功会有如下信息:
    2016-07-13 14:36:12,736 INFO  [main] basic.CreateTableSample: Create table sampleNameSpace:sampleTable successful!
    2016-07-13 14:36:15,426 INFO  [main] basic.ModifyTableSample: Modify table sampleNameSpace:sampleTable successfully.
    2016-07-13 14:36:16,708 INFO  [main] basic.MultiSplitSample: Mmulti split table sampleNameSpace:sampleTable successfully.
    2016-07-13 14:36:17,299 INFO  [main] basic.PutDataSample: Successfully put 9 items data into sampleNameSpace:sampleTable.
    2016-07-13 14:36:18,992 INFO  [main] basic.ScanSample: Scan data successfully.
    2016-07-13 14:36:20,532 INFO  [main] basic.DeletaDataSample: Successfully delete data from table sampleNameSpace:sampleTable.
    2016-07-13 14:36:21,006 INFO  [main] acl.AclSample: Grant ACL for table sampleNameSpace:sampleTable successfully.
    2016-07-13 14:36:27,836 INFO  [main] index.CreateIndexSample: Successfully add index for table sampleNameSpace:sampleTable.

    在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
    ...