
# 安装客户端时编译并运行HBase应用
HBase应用程序支持在安装HBase客户端的Linux环境中运行。在程序代码完成开发后，您可以上传Jar包至Linux环境中运行应用。
#### 前提条件
- 已安装HBase客户端。
- Linux环境已安装JDK，版本号需要和Eclipse导出Jar包使用的JDK版本一致。
- 当客户端所在主机不是集群中的节点时，需要在客户端所在节点的**hosts**文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
 
#### 操作步骤
1. 修改样例代码。 
   1. 当前样例代码中操作HBase的接口有两种，分别是普通接口，REST接口。调试不同API接口操作HBase时可以注释其他接口调用。这里以使用普通接口操作HBase为例，main方法中只包含如下代码段。
      ```
      public static void main(String[] args) {
        try {
          init();
          login();
        } catch (IOException e) {
            LOG.error("Failed to login because ", e);
            return;
        }
        // getDefaultConfiguration();
        conf = HBaseConfiguration.create();
        // test hbase API
        HBaseExample oneSample;
        try {
          oneSample = new HBaseExample(conf);
          oneSample.test();
        } catch (Exception e) {
          LOG.error("Failed to test HBase because ", e);
        }
        LOG.info("-----------finish HBase-------------------");
      }
      ```
      
   
   2. 在调用REST接口时需要把样例工程src\\main\\resources下hbaseclient.properties文件拷贝到客户端(客户端目录以/opt/client为例)的HBase/hbase/conf目录下，并修改hbaseclient.properties文件。userKeytabName，krb5ConfName对应于从[2](https://support.huaweicloud.com/devg-mrs/mrs_06_0010.html#mrs_06_0010__li31069515172639)获取的文件的地址。若使用REST接口时需修改rest.server.info，使其对应于rest server的ip:port（port默认为21309）。
      ```
      rest.server.info=10.10.10.10:21309
      user.name=hbaseuser
      userKeytabName=user.keytab
      krb5ConfName=krb5.conf
      ```
      
      
   
   
   
   
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
      ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
      **"$BIGDATA_CLIENT_HOME"**指的是客户端安装目录。
      
   
   2. 然后执行： source $BIGDATA_CLIENT_HOME/bigdata_env
      ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
      启用多实例功能后，为其他HBase服务实例进行应用程序开发时还需执行以下命令，切换指定服务实例的客户端。 例如HBase2：**source /opt/client/HBase2/component_env**。
      
   
   3. 将[2]中生成的Jar包和从[准备HBase应用开发用户](https://support.huaweicloud.com/devg-mrs/mrs_06_0010.html)中获取的krb5.conf和user.keytab文件拷贝上传至客户端运行环境的Hbase/hbase/conf目录下，例如"/opt/client/HBase/hbase/conf"。然后在"/opt/client/HBase/hbase/conf"目录下，如果不存在则创建hbaseclient.properties文件，文件中user.name对应新建的用户hbaseuser，userKeytabName和krb5ConfName值对应从[准备HBase应用开发用户](https://support.huaweicloud.com/devg-mrs/mrs_06_0010.html)中获取的认证相关文件名称，如下（未开启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等文件路径。
      ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
      针对MRS 1.9.2及以后版本请执行hbase com.huawei.bigdata.hbase.examples.TestMain /opt/client/HBase/hbase/conf。
      
   
   
   
   
 
