
# 未安装客户端时编译并运行HBase应用
HBase应用程序支持在未安装HBase客户端的Linux环境中运行。在程序代码完成开发后，您可以上传Jar包至Linux环境中运行应用。
#### 前提条件
- Linux环境已安装JDK，版本号需要和Eclipse导出Jar包使用的JDK版本一致。
- 当Linux环境所在主机不是集群中的节点时，需要在节点的**hosts**文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
 
#### 操作步骤
1. 按[安装客户端时编译并运行HBase应用](https://support.huaweicloud.com/devg-mrs/mrs_06_0031.html)中的方式修改样例。
2. 执行mvn package生成jar包，在工程目录target目录下获取，比如：hbase-examples-2.0.jar。
3. 准备依赖的Jar包和配置文件。 
   1. 在Linux环境新建目录，例如"/opt/test"，并创建子目录"lib"和"conf"。将集群中任一master节点"/opt/client/HBase/hbase/lib"目录下的jar包，以及[2]中导出的Jar包，上传到当前Linux环境新建目录"/opt/test"的"lib"目录下。将集群中任一master节点"/opt/client/HBase/hbase/conf"目录下的hbase-site.xml，hdfs-site.xml，core-site.xml文件拷贝到"/opt/test"中"conf"目录下。
   
   2. 将[准备HBase应用开发用户](https://support.huaweicloud.com/devg-mrs/mrs_06_0010.html)中获取的krb5.conf和user.keytab文件拷贝上传至"/opt/test/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
      ```
      
   
   3. 在"/opt/test"根目录新建脚本"run.sh"，修改内容如下并保存：
      当前以*com.huawei.bigdata.hbase.examples.TestMain* 为举例，具体以实际样例代码为准。
      ```
      #!/bin/sh
      BASEDIR=`pwd`
      cd ${BASEDIR}
      for file in ${BASEDIR}/lib/*.jar
      do
      i_cp=$i_cp:$file
      echo "$file"
      done
      if [ -d ${BASEDIR}/lib/client-facing-thirdparty ]; then
      for file in ${BASEDIR}/lib/client-facing-thirdparty/*.jar
      do
      i_cp=$i_cp:$file
      done
      fi
      java -cp ${BASEDIR}/conf:${i_cp} com.huawei.bigdata.hbase.examples.TestMain
      ```
      
   
   
   
   
4. 切换到"/opt/test"，执行以下命令，运行Jar包。 
   *sh run.sh*
   
   
 
