
# 在Linux环境中调测HetuEngine应用
#### 操作场景
在程序代码完成开发后，也可以把代码编译成jar包，上传到Linux环境进行程序功能调试。
![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
在Linux环境上调测程序前，需在Linux节点预安装客户端。
#### 操作步骤
1. MRS 3.6.0-LTS之前版本，根据需要修改"jaas-zk.conf"中"KeyTab"文件在Linux节点上放置的路径。例如："/opt/hetuclient/conf/user.keytab"。
2. 修改样例代码的配置文件路径，例如： 
   ```
   private final static String PATH_TO_KRB5_CONF = "/opt/hetuclient/krb5.conf"
   ```
   
   
3. 在Windows环境的开发环境IntelliJ IDEA中，在"Maven Projects \> *样例工程名称* \> Lifecycle"中，执行"clean"和"package"操作，编译完成后，在target目录下即可生成"hetu-examples-*XXX*.jar"文件。
4. 上传"hetu-examples-*XXX*.jar"文件到Linux节点"/opt/hetuclient"目录下。
5. 参考[准备运行环境](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100006.html#mrs_07_100006__section2219155713517)下载并解压客户端文件"FusionInsight_Cluster_*集群ID* _ HetuEngine_Client.tar"获取jdbc驱动包，并上传到Linux环境"**/opt/hetuclient** "目录下。
   
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   jdbc驱动包可在集群客户端软件包解压路径"FusionInsight_Cluster_1_Services_ClientConfig\\HetuEngine\\*XXX* \\"路径下获取"hetu-jdbc-\*.jar"文件，*XXX*为"arm"或"x86"。
   
   
6. 上传[配置HetuEngine应用安全认证](https://support.huaweicloud.com/devg-lts-mrs/mrs_07_100010.html)中得到的"jaas-zk.conf"（MRS 3.6.0-LTS之前版本）、"user.keytab"和"krb5.conf"文件到Linux环境"**/opt/hetuclient**"目录下。
7. 执行以下命令，进入集群客户端安装目录： 
   **cd /opt/hetuclient**
   
   
8. 执行以下命令，配置环境变量： 
   **source bigdata_env**
   
   
9. 执行以下命令进行开发程序调试： 
   **java -classpath hetu-examples-** \***.jar:hetu-jdbc-\*.jar com.huawei.hetu.** *className*
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - jdbc驱动包名及"className"以实际为准，如：*客户端安装路径* /JDK/jdk/bin/java -classpath *客户端安装路径* /hetu-examples-security-*xxx* -*xxx* .*xx* .jar:*客户端安装路径* /hetu-jdbc-*xxx* -h0.cbu.mrs.*xxx.xx.*jar com.huawei.hetu.JDBCExampleBroker。
   
   - MRS 3.6.0-LTS及之后版本，Windows下使用JDK编译的包，在Linux使用对应版本的JDK运行：
     - 指定JDK 8运行样例：*客户端安装路径*/JDK/jdk/bin/java -classpath hetu-examples-\*.jar:hetu-jdbc-\*.jar com.huawei.hetu.JDBCExampleBroker。
     
     - 指定JDK 17运行样例：*客户端安装路径*/JDK17/jdk/bin/java -classpath hetu-examples-\*.jar:hetu-jdbc-\*.jar com.huawei.hetu.JDBCExampleBroker。
     
     - 指定JDK 21运行样例：*客户端安装路径*/JDK21/jdk/bin/java -classpath hetu-examples-\*.jar:hetu-jdbc-\*.jar com.huawei.hetu.JDBCExampleBroker。
      
   
   - MRS 3.6.0-LTS之前版本，如果对接的集群开启了ZooKeeper的SSL认证，需要添加JVM参数：-Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true 以JDBCExampleZK为例，对应调试命令为：
     **java -cp hetu-examples-\*.jar:hetu-jdbc-\*.jar -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true com.huawei.hetu.JDBCExampleZK**
     
    
   
   
10. 检查结果输出是否正常。 
    ```
    Jul 01, 2021 8:41:23 PM io.XXXsql.jdbc.$internal.airlift.log.Logger info
    INFO: hsbroker finalUri is https://192.168.1.150:29860
    Jul 01, 2021 8:41:24 PM io.XXXsql.jdbc.$internal.airlift.log.Logger info
    INFO: The final connection url is: XXX://192.168.1.189:29896/hive/default
    Jul 01, 2021 8:41:24 PM io.XXXsql.jdbc.$internal.airlift.log.Logger info
    INFO: coordinator uri is XXX://192.168.1.189:29896/hive/default
    user_info
    user_info2
    ```
    
    
 
