更新时间:2024-06-15 GMT+08:00
分享

在Linux环境中调测HBase应用

操作场景

HBase应用程序支持在安装HBase客户端的Linux环境中运行。在程序代码完成开发后,您可以上传Jar包至Linux环境中运行应用。

前提条件

  • 已安装客户端时:
    • 已安装HBase客户端。
    • 当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
  • 未安装HBase客户端时:
    • Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致。
    • 当Linux环境所在主机不是集群中的节点时,需要在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。

已安装客户端时编译并运行程序

  1. 导出Jar包。

    构建jar包方式有以下两种:

    • 方法一:

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

      选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。
      图1 maven工具clean和install
    • 方法二:在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean install命令进行编译。
      图2 idea termial输入“mvn clean install”

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

      图3 编译完成,生成jar包

  2. 是否运行HBase/Phoenix对接SpringBoot样例:

    • 是,执行以下步骤运行样例:
      1. 在Linux环境新建运行目录,将“target”目录下的“hbase-springboot-*.jar”放到该路径下,并上传配置文件到1配置的对应路径下。
      2. 切换到运行目录,执行以下命令,运行Jar包。

        java -jar hbase-springboot-*.jar

    • 否,执行3

  3. 导出样例项目依赖的jar包。

    在IDEA的下方Terminal窗口或其他命令行工具进入“pom.xml”所在目录。

    执行命令mvn dependency:copy-dependencies -DoutputDirectory=lib

    在“pom.xml”所在目录将生成lib文件夹,其中包含样例项目所依赖的jar包。

  4. 执行Jar包。

    1. 在Linux客户端下执行Jar包的时候,需要用安装用户切换到客户端目录:

      cd $BIGDATA_CLIENT_HOME

      “$BIGDATA_CLIENT_HOME”为HBase客户端安装目录,例如“/opt/client”。

    2. 然后执行:

      source bigdata_env

      启用多实例功能后,为其他HBase服务实例进行应用程序开发时还需执行以下命令,切换指定服务实例的客户端。

      例如HBase2:source /opt/client/HBase2/component_env

    3. 将应用开发环境中生成的样例项目Jar包(非依赖jar包)上传至客户端运行环境的“$BIGDATA_CLIENT_HOME/HBase/hbase/lib”目录,根据具体样例项目“README.md”检查“$BIGDATA_CLIENT_HOME/HBase/hbase/conf”目录,将样例工程中配置文件及认证文件复制至该目录。
    4. 进入目录“$BIGDATA_CLIENT_HOME/HBase/hbase”,执行以下命令运行Jar包。

      hbase com.huawei.bigdata.hbase.examples.TestMain

      其中,hbase com.huawei.bigdata.hbase.examples.TestMain为举例,具体以实际样例代码为准。

未安装客户端时编译并运行程序

  1. 导出Jar包。

    构建jar包方式有以下两种:

    • 方法一:

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

      选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。
      图4 maven工具clean和install
    • 方法二:在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean install命令进行编译。
      图5 idea termial输入“mvn clean install”

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

      图6 编译完成,生成jar包

  2. 是否运行HBase/Phoenix对接SpringBoot样例:

    • 是,执行以下步骤运行样例:
      1. 在Linux环境新建运行目录,将“target”目录下的“hbase-springboot-*.jar”放到该路径下,并上传配置文件到1配置的对应路径下。
      2. 切换到运行目录,执行以下命令,运行Jar包。

        java -jar hbase-springboot-*.jar

    • 否,执行3

  3. 准备依赖的Jar包和配置文件。

    1. 在Linux环境新建目录,例如“/opt/test”,并创建子目录“lib”“conf”。将样例工程中“lib”的Jar包导出,导出步骤请参考3,以及1导出的Jar包,上传到Linux的“lib”目录。将样例工程中“conf”的配置文件上传到Linux中“conf”目录。
    2. “/opt/test”根目录新建脚本“run.sh”,修改内容如下并保存:
      #!/bin/sh
      BASEDIR=`cd $(dirname $0);pwd`
      cd ${BASEDIR}
      for file in ${BASEDIR}/lib/*.jar
      do
      i_cp=$i_cp:$file
      echo "$file"
      done
      for file in ${BASEDIR}/conf/*
      do
      i_cp=$i_cp:$file
      done
      
      java -cp .${i_cp} com.huawei.bigdata.hbase.examples.TestMain

  4. 切换到“/opt/test”,执行以下命令,运行Jar包。

    sh run.sh

查看Linux调测结果

HBase应用程序运行完成后,可通过如下方式查看应用程序的运行情况。

  • 通过运行结果查看应用程序运行情况。
  • 通过HBase日志获取应用程序运行情况。
  • 登录HBase WebUI查看应用程序运行情况。可参见更多信息 > 对外接口 > Web UI
  • 通过HBase shell命令查看应用程序运行情况。可参见更多信息 > 对外接口 > Shell

各样例程序运结果如下:

  • 通过运行日志可查看应用提交后的执行详情,例如,hbase-example样例运行成功后,显示信息如下:
    2020-07-13 14:36:12,736 INFO  [main] basic.CreateTableSample: Create table sampleNameSpace:sampleTable successful!
    2020-07-13 14:36:15,426 INFO  [main] basic.ModifyTableSample: Modify table sampleNameSpace:sampleTable successfully.
    2020-07-13 14:36:16,708 INFO  [main] basic.MultiSplitSample: Mmulti split table sampleNameSpace:sampleTable successfully.
    2020-07-13 14:36:17,299 INFO  [main] basic.PutDataSample: Successfully put 9 items data into sampleNameSpace:sampleTable.
    2020-07-13 14:36:18,992 INFO  [main] basic.ScanSample: Scan data successfully.
    2020-07-13 14:36:20,532 INFO  [main] basic.DeletaDataSample: Successfully delete data from table sampleNameSpace:sampleTable.
    2020-07-13 14:36:21,006 INFO  [main] acl.AclSample: Grant ACL for table sampleNameSpace:sampleTable successfully.
    2020-07-13 14:36:27,836 INFO  [main] index.CreateIndexSample: Successfully add index for table sampleNameSpace:sampleTable.
  • HBase/Phoenix对接SpringBoot运行结果:

    在浏览器中访问链接“http://样例运行节点IP地址:8080/hbase/HBaseDemo”和“http://样例运行节点IP地址:8080/hbase/PhoenixDemo”,IDEA正常打印日志,请求返回“finish HBase”和“finish Phoenix",如下图所示:

    图7 返回“finish HBase”
    图8 返回“finish Phoenix"

相关文档