更新时间:2024-08-03 GMT+08:00

调测HBase Phoenix样例程序

HBase支持通过Phoenix调用JDBC接口来访问HBase服务。调测HBase Phoenix样例程序,默认集群已完成HBase对接Phoenix服务,具体对接步骤详情请参考HBase配置Phoenix

在Windows中运行并调测程序

  1. 搭建Windows开发环境及修改样例程序的公共配置,详情请参见1-3
  2. 修改样例工程。

    1.修改样例工程“src/main/resources”目录下的“jaas.conf”文件,keyTab、principal分别对应用户认证凭据存放路径、用户名,如下所示。(未开启Kerberos认证集群可跳过此步骤)
    Client {
      com.sun.security.auth.module.Krb5LoginModule required
      useKeyTab=true
      keyTab="D:\\sample_project\\src\\hbase-examples\\hbase-java-examples\\src\\main\\resources\\user.keytab"
      principal="hbaseuser"
      useTicketCache=false
      storeKey=true
      debug=true;
    };
    2.修改样例工程“src/main/resources”下的“hbaseclient.properties”文件。user.name, userKeytabName, krb5ConfName对应于在准备HBase应用开发用户创建的用户名,及获取的文件的名称。(未开启Kerberos认证集群可跳过此步)。
    user.name=hbaseuser
    userKeytabName=user.keytab
    krb5ConfName=krb5.conf
    #for phoenix
    #confiugration for security cluster.
    jaasConfName=jaas.conf

  3. 在开发环境中(例如Eclipse中),鼠标右键单击“PhoenixExample”,然后鼠标左键单击“Run > PhoenixExample.main()”运行对应的应用程序工程。

    若运行报“Message stream modified (41)”的错误,这可能与JDK的版本有关系,可以尝试修改运行样例代码的JDK为8u_242以下版本或删除“krb5.conf”配置文件的“renew_lifetime = 0m”配置项。

  4. HBase应用程序运行完成后,可直接通过运行结果查看应用程序运行情况。

    运行结果出现如下信息表示程序运行成功。

    2020-03-13 14:54:13,369 INFO  [main] client.HBaseAdmin: Operation: CREATE, Table Name: default:TEST, procId: 60 completed
    2020-03-13 14:54:14,269 INFO  [main] examples.PhoenixExample: 1
    2020-03-13 14:54:14,270 INFO  [main] examples.PhoenixExample: John
    2020-03-13 14:54:14,270 INFO  [main] examples.PhoenixExample: 100000
    2020-03-13 14:54:14,271 INFO  [main] examples.PhoenixExample: 1980-01-01
    2020-03-13 14:54:14,464 INFO  [main] client.HBaseAdmin: Started disable of TEST
    2020-03-13 14:54:15,199 INFO  [main] client.HBaseAdmin: Operation: DISABLE, Table Name: default:TEST, procId: 62 completed
    2020-03-13 14:54:15,521 INFO  [main] client.HBaseAdmin: Operation: DELETE, Table Name: default:TEST, procId: 64 completed

在Linux中调测Phoenix样例

在linux环境中调测Phoenix样例,需有与集群环境网络相通的ECS,详情请参见准备本地应用开发环境

  1. 修改样例。将样例代码TestMain中“enablePhoenix”值改为“true”,开启调用Phoenix样例程序接口。

    /**
     * Phoenix Example
     * if you would like to operate hbase by SQL, please enable it,
     * and you can refrence the url ("https://support.huaweicloud.com/devg-mrs/mrs_06_0041.html").
     * step:
     * 1.login
     * 2.operate hbase by phoenix.
     */
    boolean enablePhoenix = false;
    if (enablePhoenix) {
      PhoenixExample phoenixExample;
      try {
        phoenixExample = new PhoenixExample(conf);
        phoenixExample.testSQL();
      } catch (Exception e) {
        LOG.error("Failed to run Phoenix Example, because ", e);
      }
    }

  2. 执行mvn package生成jar包,在工程目录target目录下获取,比如:hbase-examples-mrs-2.0.jar,将获取的包上传到/opt/client/Hbase/hbase/lib目录下。
  3. 执行Jar包。

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

      cd $BIGDATA_CLIENT_HOME/HBase/hbase

      “$BIGDATA_CLIENT_HOME”指的是客户端安装目录。

    2. 然后执行:

      source $BIGDATA_CLIENT_HOME/bigdata_env

    3. HBase Phoenix API接口介绍解压后获取其中的phoenix-hbase和phoenix-core包和“htrace-core-3.1.0-incubating.jar”包拷贝到“/opt/client/HBase/hbase/lib”下。
    4. 2中生成的Jar包和从3.2.2-准备开发用户中获取的krb5.conf和user.keytab文件拷贝上传至客户端运行环境的Hbase/hbase/conf目录下,例如“/opt/client/HBase/hbase/conf”。然后在“/opt/client/HBase/hbase/conf”目录下创建hbaseclient.properties文件,文件中user.name对应新建的用户hbaseuser,userKeytabName和krb5ConfName值对应从3.2.2-准备开发用户中获取的认证相关文件名称,如下(未开启Kerberos认证集群可跳过此步):
      user.name=hbaseuser
      userKeytabName=user.keytab
      krb5ConfName=krb5.conf

  4. 执行jar包程序。

    hbase com.huawei.bigdata.hbase.examples.TestMain /opt/client/HBase/hbase/conf

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

    “/opt/client/HBase/hbase/conf”对应于上述中user.keytab、krb5.conf等文件路径。

    若运行报“Message stream modified (41)”的错误,这可能与JDK的版本有关系,可以尝试修改运行样例代码的JDK为8u_242以下版本或删除“krb5.conf”配置文件的“renew_lifetime = 0m”配置项。

  5. phoenix应用程序运行完成后,可直接通过运行结果查看应用程序运行情况。

    2020-03-14 16:20:40,192 INFO  [main] client.HBaseAdmin: Operation: CREATE, Table Name: default:TEST, procId: 923 completed
    2020-03-14 16:20:40,806 INFO  [main] examples.PhoenixExample: 1
    2020-03-14 16:20:40,807 INFO  [main] examples.PhoenixExample: John
    2020-03-14 16:20:40,807 INFO  [main] examples.PhoenixExample: 100000
    2020-03-14 16:20:40,807 INFO  [main] examples.PhoenixExample: 1980-01-01
    2020-03-14 16:20:40,830 INFO  [main] client.HBaseAdmin: Started disable of TEST
    2020-03-14 16:20:41,574 INFO  [main] client.HBaseAdmin: Operation: DISABLE, Table Name: default:TEST, procId: 925 completed
    2020-03-14 16:20:41,831 INFO  [main] client.HBaseAdmin: Operation: DELETE, Table Name: default:TEST, procId: 927 completed