更新时间:2024-04-30 GMT+08:00
分享

编译和运行程序

操作场景

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. (场景1)使用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的开发程序。

  3. (场景2)使用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开发程序。

分享:

    相关文档

    相关产品