在Flink WebUI和Linux中调测Flink应用
操作场景
IoTDB应用程序支持在安装了Flink客户端的Linux环境和安装了Flink WebUI的环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的环境中运行。
前提条件
- 集群已安装Flink组件,并且添加了FlinkServer实例。
- 已安装包含Flink服务的集群客户端,例如安装路径如:/opt/client。
- 当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。
操作步骤
- 构建Jar包。
- 在IntelliJ IDEA中,在生成Jar包之前配置工程的Artifacts信息。
- 在IDEA主页面,选择“Project Structure”页面。 进入
- 在“Project Structure”页面,选择“Artifacts”,单击“+”并选择“From modules with dependencies...”。
图1 添加Artifacts
- 选择“extract to the target JAR”后,单击“OK”。
- 您可以根据实际情况设置Jar包的名称、类型以及输出路径。
为避免导入不必要Jar包引起Jar包冲突,您只需要加载IoTDB相关的基础Jar包,分别是:
- flink-iotdb-connector-*
- flink-tsfile-connector-*
- hdoop-tsfile-*
- influxdb-thrift-*
- iotdb-antlr-
- iotdb-session-*
- iotdb-thrift-*
- iotdb-thrift-commons-*
- isession-*
- libthrift-*
- iotdb-session-*
- iotdb-thrift-*
- service-rpc-*
- tsfile-*
单击“OK”。
- 在IDEA主页面,选择“Build Artifact”页面,选择“Action > Build”。
- 编译成功后,右下角会有“Build completed successfully”,相应的Jar包会在“Output Directory”目录中产生。
- 在IntelliJ IDEA中,在生成Jar包之前配置工程的Artifacts信息。
- 运行Flink作业。
- 场景一:使用Flink WebUI界面运行Flink作业
- 使用具有FlinkServer WebUI管理权限的用户登录集群的FusionInsight Manager,选择“集群 > 服务 > Flink”,单击概览页面“Flink WebUI”后的超链接地址进入FlinkServer WebUI界面。
- 进入FusionInsight Flink WebUI后,选择当前应用下的“作业管理 > 新建作业”,创建作业。
- 选择“类型”为“Flink Jar”,输入待创建的作业名称,选择作业类型,单击“确定”开始进行作业配置。
- 上传1生成的Jar包,“Main Class”选择“指定”,并在下面的类名填写要执行的类,然后单击“提交”。
例如,“com.huawei.bigdata.iotdb.FlinkIoTDBSink”为执行FlinkIoTDBSink样例程序的开发程序,或“com.huawei.bigdata.iotdb.FlinkIoTDBSource”为执行FlinkIoTDBSource样例程序的开发程序。
- 场景二:使用Flink客户端在Linux环境下提交Flink作业
- 将1生成的Jar包放入Linux环境的Flink运行环境下(即Flink客户端),如“/opt/client”。
- 在Linux环境中运行Flink应用程序,需要先启动Flink集群。在Flink客户端下执行yarn session命令,启动flink集群。执行命令例如:
bin/yarn-session.sh -jm 1024 -tm 1024
- 运行flink-example.jar样例程序。
在终端另开一个窗口,进入Flink客户端目录,调用bin/flink run脚本运行代码。
bin/flink flink run --class com.huawei.bigdata.iotdb.FlinkIoTDBSink /opt/client/Flink/flink/flink-example.jar
其中“com.huawei.bigdata.iotdb.FlinkIoTDBSink”执行的FlinkIoTDBSink样例程序开发程序。
- 场景一:使用Flink WebUI界面运行Flink作业
查看调测结果
- 查看作业是否执行成功:
- 使用Flink WebUI
Flink Server WebUI上状态返回运行成功,则执行成功,详细日志可以通过“操作 > 更多 > 作业详情”查看。
图2 在Flink WebUI查看运行结果
- 使用Flink客户端:
使用运行用户登录FusionInsight Manager,进入Yarn服务的原生页面,找到对应作业的Application,单击Application名称,进入到作业详情页面。
- 若作业尚未结束,可单击“Tracking URL”链接进入到Flink的原生页面,查看作业的运行信息。
- 若作业已运行结束,对于在session中提交的作业,可以单击“Tracking URL”链接登录Flink原生页面查看作业信息。
图3 在Yarn WebUI查看作业信息
- 使用Flink WebUI
- 验证作业执行结果:
- FlinkIoTDBSink执行结果验证:
在IoTDB客户端执行以下命令,查看数据是否已经从Flink写入到IoTDB中。
SQLselect * from root.sg.d1
图4 查看写入的数据内容
- FlinkIoTDBSource执行结果验证:
- 使用运行用户登录FusionInsight Manager,选择“集群 > 服务 > HDFS”,单击“NameNode WebUI”右侧的超链接进入HDFS WebUI界面。
- 选择“Utilities > Browse the file system”。
图5 进入“Browse the file system”页面
- 进入“/tmp/logs/执行用户名/bucket-logs-tfile/任务ID/Flink任务ID”目录,将该目录下文件全部下载到本地。
图6 获取作业日志文件
- 在2.c下载的文件中搜索“root.sg.d1”,如下图显示则表示数据从IoTDB中读取成功。
图7 读取IoTDB数据成功
- FlinkIoTDBSink执行结果验证: