【问题标题】:Flink can't access files in JARFlink 无法访问 JAR 中的文件
【发布时间】:2021-12-20 16:19:01
【问题描述】:

我尝试在 flink 集群中运行 JAR,但我得到了这个 FileNotFound 异常。

Caused by: java.io.FileNotFoundException: File file:/tmp/flink-web-88bf3f41-94fc-40bd-a865-bb0e6d5ac95c/flink-web-upload/82227475-523d-4607-8ab2-09bae8602248-tutorial-1.0-jar-with-dependencies.jar!/ldbc_sample/edges.csv does not exist or the user running Flink ('userA') has insufficient permissions to access it.
    at org.apache.flink.core.fs.local.LocalFileSystem.getFileStatus(LocalFileSystem.java:106)

csv 文件位于项目资源目录中的一个文件夹中。

我通过以下方式访问文件路径:

URL resource = Helper.class.getClassLoader().getResource("ldbc_sample");
return resource.getPath();

我打开 jar 并确保文件确实存在,我也在本地运行它,它工作。 我该怎么做才能确保 flink 可以访问我的 csv?

【问题讨论】:

    标签: java hadoop bigdata apache-flink flink-streaming


    【解决方案1】:

    也许您想将您的.csv 作为参数传递给您的程序? 比如:

    def main(args: Array[String]): Unit = {
      val ldbcSample = ParameterTool.fromArgs(args).getRequired("ldbc_sample")
      ...
    }
    

    或者您可以使用不同的参数制作您的 .properties 文件:

    ldbc_sample: /ldbc_sample/edges.csv
    topic_source: TOPIC_NAME
    
    val jobParams = ParameterTool.fromArgs(args)
    val jobArgs = ParameterTool.fromPropertiesFile(jobParams.getRequired("properties_file_path"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-17
      • 2013-09-29
      • 2020-04-23
      • 2019-06-24
      • 2016-04-28
      • 2013-04-25
      • 1970-01-01
      • 2020-08-24
      相关资源
      最近更新 更多