更新时间:2024-06-05 GMT+08:00
分享

在Flink WebUI和Linux中调测Flink应用

操作场景

IoTDB应用程序支持在安装了Flink客户端的Linux环境和安装了Flink WebUI的环境中运行。在程序代码完成开发后,您可以上传Jar包至准备好的环境中运行。

前提条件

  • 集群已安装Flink组件,并且添加了FlinkServer实例。
  • 已安装包含Flink服务的集群客户端,例如安装路径如:/opt/client
  • 当客户端所在主机不是集群中的节点时,需要在客户端所在节点的hosts文件中设置主机名和IP地址映射。主机名和IP地址请保持一一对应。

操作步骤

  1. 构建Jar包。

    • 在IntelliJ IDEA中,在生成Jar包之前配置工程的Artifacts信息。
      1. 在IDEA主页面,选择File > Project Structures...进入“Project Structure”页面。
      2. “Project Structure”页面,选择“Artifacts”,单击“+”并选择“From modules with dependencies...”。
        图1 添加Artifacts
      3. 选择“extract to the target JAR”后,单击“OK”。

      4. 您可以根据实际情况设置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”。

      5. 在IDEA主页面,选择Build > Build Artifacts...进入“Build Artifact”页面,选择“Action > Build”。

      6. 编译成功后,右下角会有“Build completed successfully”,相应的Jar包会在“Output Directory”目录中产生。

  2. 运行Flink作业。

    • 场景一:使用Flink WebUI界面运行Flink作业
      1. 使用具有FlinkServer WebUI管理权限的用户登录集群的FusionInsight Manager,选择“集群 > 服务 > Flink”,单击概览页面“Flink WebUI”后的超链接地址进入FlinkServer WebUI界面。
      2. 进入FusionInsight Flink WebUI后,选择当前应用下的“作业管理 > 新建作业”,创建作业。

      3. 选择“类型”为“Flink Jar”,输入待创建的作业名称,选择作业类型,单击“确定”开始进行作业配置。

      4. 上传1生成的Jar包,“Main Class”选择“指定”,并在下面的类名填写要执行的类,然后单击“提交”。

        例如,“com.huawei.bigdata.iotdb.FlinkIoTDBSink”为执行FlinkIoTDBSink样例程序的开发程序,或“com.huawei.bigdata.iotdb.FlinkIoTDBSource”为执行FlinkIoTDBSource样例程序的开发程序。

    • 场景二:使用Flink客户端在Linux环境下提交Flink作业
      1. 1生成的Jar包放入Linux环境的Flink运行环境下(即Flink客户端),如“/opt/client”。
      1. 在Linux环境中运行Flink应用程序,需要先启动Flink集群。在Flink客户端下执行yarn session命令,启动flink集群。执行命令例如:
        bin/yarn-session.sh -jm 1024 -tm 1024
      2. 运行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样例程序开发程序。

查看调测结果

  1. 查看作业是否执行成功:
    • 使用Flink WebUI

      Flink Server WebUI上状态返回运行成功,则执行成功,详细日志可以通过“操作 > 更多 > 作业详情”查看。

      图2 在Flink WebUI查看运行结果
    • 使用Flink客户端:

      使用运行用户登录FusionInsight Manager,进入Yarn服务的原生页面,找到对应作业的Application,单击Application名称,进入到作业详情页面。

      • 若作业尚未结束,可单击“Tracking URL”链接进入到Flink的原生页面,查看作业的运行信息。
      • 若作业已运行结束,对于在session中提交的作业,可以单击“Tracking URL”链接登录Flink原生页面查看作业信息。
        图3 在Yarn WebUI查看作业信息
  2. 验证作业执行结果:
    • FlinkIoTDBSink执行结果验证:

      在IoTDB客户端执行以下命令,查看数据是否已经从Flink写入到IoTDB中。

      SQLselect * from root.sg.d1

      图4 查看写入的数据内容
    • FlinkIoTDBSource执行结果验证:
      1. 使用运行用户登录FusionInsight Manager,选择“集群 > 服务 > HDFS”,单击“NameNode WebUI”右侧的超链接进入HDFS WebUI界面。
      2. 选择“Utilities > Browse the file system”。
        图5 进入“Browse the file system”页面
      3. 进入“/tmp/logs/执行用户名/bucket-logs-tfile/任务ID/Flink任务ID”目录,将该目录下文件全部下载到本地。
        图6 获取作业日志文件
      4. 2.c下载的文件中搜索“root.sg.d1”,如下图显示则表示数据从IoTDB中读取成功。
        图7 读取IoTDB数据成功

相关文档