
# 在Linux环境中调测ClickHouse应用（MRS 3.3.0及之后版本）
ClickHouse应用程序也支持在Linux环境中运行。在程序代码完成开发后，您可以上传Jar包至准备好的Linux运行环境中运行。
#### 前提条件
Linux环境已安装JDK，版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致，并设置好Java环境变量。
#### 编译并运行程序
1. 单击IDEA右边Maven窗口的"Reload All Maven Projects"，进行maven项目依赖import。 
   图1reload projects   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001694187126.png "点击放大")
   
   
2. 导出jar包 
   - 选择"Maven \> clickhouse-examples \> Lifecycle \> clean"，双击"clean"运行maven的clean命令。
   
   - 选择"Maven \> clickhouse-examples \> Lifecycle \> install"，双击"install"运行maven的install命令。
   
   
   图2maven工具的clean和install   
   ![](https://support.huaweicloud.com/devg-lts-mrs/zh-cn_image_0000001741907213.png "点击放大")
   
   
3. 将target目录下的clickhouse-examples-\*.jar文件和"clickhouse-examples"目录下的"conf"文件夹复制到ClickHouse客户端安装目录下，例如"*客户端安装目录* /JDBC"目录或"*客户端安装目录* /JDBCTransaction"目录下。
   
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   "*客户端安装目录*/JDBC"目录，用来调测JDBC二次样例；
   "*客户端安装目录*/JDBCTransaction"目录，用来调测事务二次样例。
   
   
4. 登录客户端节点，进入jar文件上传目录下，修改文件权限为700。 
   **cd** *客户端安装目录* **/JDBC**
   或：**cd** *客户端安装目录* **/** **JDBCTransaction**
   **chmod 700 clickhouse-examples-\*.jar**
   
   
5. 在"clickhouse-examples-\*.jar"所在客户端目录下执行如下命令运行jar包： 
   **source** *客户端安装目录* **/bigdata_env**
   **cd** *客户端安装目录* **/JDBC**
   或：**cd** *客户端安装目录* **/** **JDBCTransaction**
   **java -jar** **clickhouse-examples-\*.jar**
   
   
 
#### 查看调测结果
ClickHouse应用程序运行完成后，可通过以下方式查看程序运行情况：
- 通过运行结果查看程序运行情况。
- 通过ClickHouse日志获取应用运行情况。 即查看当前jar文件所在目录的"logs/clickhouse-example.log"日志文件，例如"*客户端安装目录* **/JDBC/logs/clickhouse-example.log** "或"*客户端安装目录* **/JDBCTransaction/logs/clickhouse-example.log**"。
  
jar包运行结果如下：
```
2023-09-21 09:08:38,944 | INFO  | main | loadBalancerIPList is 192.168.5.132, loadBalancerHttpPort is 21422, user is ck_user, clusterName is default_cluster, isSec is true, password is Admin12!. | com.huawei.clickhouse.examples.Demo.main(Demo.java:42)
2023-09-21 09:08:38,949 | INFO  | main | ckLbServerList current member is 0, ClickhouseBalancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Demo.getCkLbServerList(Demo.java:111)
2023-09-21 09:08:38,982 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:39,356 | INFO  | main | Execute query:drop table if exists testdb.testtb on cluster default_cluster no delay | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:39,537 | INFO  | main | Execute time is 181 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:39,545 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:39,580 | INFO  | main | Execute query:drop table if exists testdb.testtb_all on cluster default_cluster no delay | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:39,717 | INFO  | main | Execute time is 136 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:39,718 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:39,752 | INFO  | main | Execute query:create database if not exists testdb on cluster default_cluster | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:39,887 | INFO  | main | Execute time is 134 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:39,888 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:39,920 | INFO  | main | Execute query:create table testdb.testtb on cluster default_cluster (name String, age UInt8, date Date)engine=ReplicatedMergeTree('/clickhouse/tables/{shard}/testdb.testtb','{replica}') partition by toYYYYMM(date) order by age | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:40,064 | INFO  | main | Execute time is 143 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:40,065 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:40,096 | INFO  | main | Execute query:create table testdb.testtb_all on cluster default_cluster as testdb.testtb ENGINE = Distributed(default_cluster,testdb,testtb, rand()); | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:40,231 | INFO  | main | Execute time is 134 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:40,232 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.insertData(Util.java:143)
2023-09-21 09:08:40,447 | INFO  | main | Insert batch time is 101 ms | com.huawei.clickhouse.examples.Util.insertData(Util.java:160)
2023-09-21 09:08:42,063 | INFO  | main | Insert batch time is 113 ms | com.huawei.clickhouse.examples.Util.insertData(Util.java:160)
2023-09-21 09:08:43,564 | INFO  | main | Inert all batch time is 3224 ms | com.huawei.clickhouse.examples.Util.insertData(Util.java:164)
2023-09-21 09:08:43,564 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:43,596 | INFO  | main | Execute query:select * from testdb.testtb_all order by age limit 10 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:43,619 | INFO  | main | Execute time is 23 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:43,620 | INFO  | main | Current load balancer is 192.168.5.132:21422 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:68)
2023-09-21 09:08:43,652 | INFO  | main | Execute query:select toYYYYMM(date),count(1) from testdb.testtb_all group by toYYYYMM(date) order by count(1) DESC limit 10 | com.huawei.clickhouse.examples.Util.exeSql(Util.java:73)
2023-09-21 09:08:43,675 | INFO  | main | Execute time is 23 ms | com.huawei.clickhouse.examples.Util.exeSql(Util.java:77)
2023-09-21 09:08:43,677 | INFO  | main | nameagedate | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,677 | INFO  | main | huawei_742020-06-26 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,677 | INFO  | main | huawei_1102021-01-05 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,677 | INFO  | main | huawei_12172021-04-02 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,677 | INFO  | main | huawei_6212021-12-02 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,678 | INFO  | main | huawei_8222021-01-04 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,678 | INFO  | main | huawei_4262020-05-14 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,678 | INFO  | main | huawei_11302021-10-06 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,678 | INFO  | main | huawei_18322020-12-15 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,678 | INFO  | main | huawei_0332020-06-23 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,678 | INFO  | main | huawei_15352020-07-13 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | toYYYYMM(date)count() | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2020064 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2021102 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2021012 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2021042 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2020012 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2020051 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2020121 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,679 | INFO  | main | 2021081 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,680 | INFO  | main | 2021071 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,680 | INFO  | main | 2021021 | com.huawei.clickhouse.examples.Demo.queryData(Demo.java:159)
2023-09-21 09:08:43,732 | INFO  | main | Name is: huawei_7, age is: 4 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,732 | INFO  | main | Name is: huawei_1, age is: 10 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,732 | INFO  | main | Name is: huawei_12, age is: 17 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,733 | INFO  | main | Name is: huawei_6, age is: 21 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,733 | INFO  | main | Name is: huawei_8, age is: 22 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,733 | INFO  | main | Name is: huawei_4, age is: 26 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,733 | INFO  | main | Name is: huawei_11, age is: 30 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,734 | INFO  | main | Name is: huawei_18, age is: 32 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,734 | INFO  | main | Name is: huawei_0, age is: 33 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
2023-09-21 09:08:43,734 | INFO  | main | Name is: huawei_15, age is: 35 | com.huawei.clickhouse.examples.ClickhouseJDBCHaDemo.queryData(ClickhouseJDBCHaDemo.java:79)
```
