在Linux环境中调测Doris应用
操作场景
在程序代码完成开发后,您可以上传Jar包至Linux环境中运行应用。
前提条件
- Linux环境已安装JDK,版本号需要和IntelliJ IDEA导出Jar包使用的JDK版本一致。
- 当Linux环境所在主机不是集群中的节点时,需要在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
编译并运行JDBC和SpringBoot程序
- 导出Jar包。
构建Jar包方式有以下两种:
- 方法一:
选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。
选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。图1 maven工具clean和install
- 方法二:在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean install命令进行编译。
图2 “mvn clean install”编译
编译完成,打印“BUILD SUCCESS”,生成target目录,生成Jar包在target目录中。
- 方法一:
- 是否运行Doris对接SpringBoot样例:
- 是,执行以下步骤运行样例:
- 否,执行4。
- 导出样例项目依赖的jar包。
在IDEA的下方Terminal窗口或其他命令行工具进入“pom.xml”所在目录。执行命令以下命令:
mvn dependency:copy-dependencies -DoutputDirectory=lib
在“pom.xml”所在目录将生成lib文件夹,其中包含样例项目所依赖的jar包。
- 准备依赖的Jar包和配置文件。
- 在Linux环境新建目录,例如“/opt/test”,并创建子目录“lib”。将样例工程依赖的Jar包导出,将1生成的Jar包,以及3生成的Jar包,上传到Linux的“lib”目录。
- 在“/opt/test”根目录新建脚本“run.sh”,修改内容如下并保存:
#!/bin/sh BASEDIR=`cd $(dirname $0);pwd` cd ${BASEDIR} for file in ${BASEDIR}/lib/*.jar do i_cp=$i_cp:$file echo "$file" done java -cp .${i_cp} com.huawei.bigdata.doris.example.JDBCExample其中,com.huawei.bigdata.doris.example.JDBCExample为举例,具体以实际样例代码为准。
- 切换到“/opt/test”,执行以下命令,运行Jar包。
sh run.sh
编译并运行Stream Load程序(MRS 3.3.1-LTS及之后版本)
- 在Linux环境新建目录,例如“/opt/test”,并将1获取的“doris-stream-load-example”样例工程中的“../src/main/resources/test.csv”文件上传至该目录中。
- 将“doris-stream-load-example”样例代码中的“getHttpPost”参数的值修改为“/opt/test/test.csv”。
- 导出Jar包。
构建Jar包方式有以下两种:
- 方法一:
选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。
选择“Maven > 样例工程名称 > Lifecycle > install”,双击“install”运行maven的install命令。图3 maven工具clean和install
- 方法二:在IDEA的下方Terminal窗口进入“pom.xml”所在目录,手动输入mvn clean install命令进行编译。
编译完成,打印“BUILD SUCCESS”,生成target目录,生成Jar包在target目录中。
- 方法一:
- 将“target”目录下的“doris-stream-load-example-*.jar”放到1新建的目录下,例如“/opt/test”。
- 切换到JDK所在目录,执行以下命令,运行Jar包。
java -jar doris-stream-load-example-*-jar-with-dependencies.jar
编译并运行Flink Jar写入数据至Doris程序(MRS 3.6.0-LTS及之后版本)
- 导出Jar包。
- 选择“Maven > 样例工程名称 > Lifecycle > clean”,双击“clean”运行maven的clean命令。
- 选择“Maven > 样例工程名称 > Lifecycle > package”,双击“package”进行编译。
- 编译完成,打印“BUILD SUCCESS”,生成target目录,生成Jar包在target目录中。
- 使用具有FlinkServer管理员权限的用户登录Flink WebUI页面,在作业管理页面,单击“新建作业”,配置以下参数并单击“确定”:
- 类型:选择“Flink Jar”。
- 名称:自定义作业名称。
- 作业类型:选择“批作业”。
- 创建作业成功并进入作业开发界面,在上传Jar文件页面,单击“本地jar文件”右侧的“选择”上传1导出的Jar包,其他参数可根据实际需求配置,具体介绍请参见创建FlinkServer作业。
- 单击“保存”保存配置,单击“提交”运行作业。
查看Linux调测结果
- “doris-jdbc-example”样例运行成功后,显示信息如下:
2023-08-17 23:13:13,473 | INFO | main | Start execute doris example. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:41) 2023-08-17 23:13:13,885 | INFO | main | Start create database. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:44) 2023-08-17 23:13:13,949 | INFO | main | Database created successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:46) 2023-08-17 23:13:13,950 | INFO | main | Start create table. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:49) 2023-08-17 23:13:14,132 | INFO | main | Table created successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:51) 2023-08-17 23:13:14,133 | INFO | main | Start to insert data into the table. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:54) 2023-08-17 23:13:14,733 | INFO | main | Inserting data to the table succeeded. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:56) 2023-08-17 23:13:14,733 | INFO | main | Start to query table data. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:59) 2023-08-17 23:13:15,079 | INFO | main | Start to print query result. | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:121) 2023-08-17 23:13:15,079 | INFO | main | c1 c2 c3 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:126) 2023-08-17 23:13:15,079 | INFO | main | 0 0 0 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 1 10 100 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 2 20 200 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 3 30 300 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 4 40 400 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 5 50 500 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 6 60 600 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,080 | INFO | main | 7 70 700 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,081 | INFO | main | 8 80 800 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,081 | INFO | main | 9 90 900 | com.huawei.bigdata.doris.example.JDBCExample.query(JDBCExample.java:134) 2023-08-17 23:13:15,081 | INFO | main | Querying table data succeeded. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:61) 2023-08-17 23:13:15,081 | INFO | main | Start to delete the table. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:64) 2023-08-17 23:13:15,114 | INFO | main | Table deleted successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:66) 2023-08-17 23:13:15,124 | INFO | main | Doris example execution successfully. | com.huawei.bigdata.doris.example.JDBCExample.main(JDBCExample.java:71)
- Doris对接SpringBoot运行结果
- “doris-stream-load-example”样例运行成功后,显示信息如下:
MRS 3.6.0-LTS之前版本:
Start create database. Database created successfully. Start create table. Table created successfully. { "TxnId": 27, "Label": "3661e112-f0e9-4aaa-80c3-4c2b7aefeefb", "Comment": "", "TwoPhaseCommit": "false", "Status": "Success", "Message": "OK", "NumberTotalRows": 4, "NumberLoadedRows": 4, "NumberFilteredRows": 0, "NumberUnselectedRows": 0, "LoadBytes": 141, "LoadTimeMs": 387, "BeginTxnTimeMs": 58, "StreamLoadPutTimeMs": 137, "ReadDataTimeMs": 0, "WriteDataTimeMs": 94, "CommitAndPublishTimeMs": 95 } curl{ "TxnId": 27, "Label": "3661e112-f0e9-4aaa-80c3-4c2b7aefeefb", "Comment": "", "TwoPhaseCommit": "false", "Status": "Success", "Message": "OK", "NumberTotalRows": 4, "NumberLoadedRows": 4, "NumberFilteredRows": 0, "NumberUnselectedRows": 0, "LoadBytes": 141, "LoadTimeMs": 387, "BeginTxnTimeMs": 58, "StreamLoadPutTimeMs": 137, "ReadDataTimeMs": 0, "WriteDataTimeMs": 94, "CommitAndPublishTimeMs": 95 }运行成功后,还可在MySQL客户端连接Doris,执行以下命令查看导入的数据:
select * from doris_test_sink;

MRS 3.6.0-LTS及之后版本:
... Stream load job result: { "TxnId": 17, "Label": "label_stream_load_400c9155-c74e-4c1c-bcfc-0aa5991d309b", "Comment": "", "TwoPhaseCommit": "false", "Status": "Success", "Message": "OK", "NumberTotalRows": 1, "NumberLoadedRows": 1, "NumberFilteredRows": 0, "NumberUnselectedRows": 0, "LoadBytes": 34, "LoadTimeMs": 361, "BeginTxnTimeMs": 64, "StreamLoadPutTimeMs": 171, "ReadDataTimeMs": 0, "WriteDataTimeMs": 47, "ReceiveDataTimeMs": 278, "CommitAndPublishTimeMs": 77 } | com.example.stream.load.dorisstreamloadexample.DorisSecurityStreamLoader.testHttpsClient(DorisSecurityStreamLoader.java:198) Process finished with exit code 0运行成功后,还可在MySQL客户端连接Doris,执行以下命令查看导入的数据:
select * from test_2.doris_test_sink;


