【问题标题】:Apache Flink Writing to MapR filesystemApache Flink 写入 MapR 文件系统
【发布时间】:2021-07-30 19:23:29
【问题描述】:

我目前在当前环境中运行 Apache Flink 1.2.0,并使用 BucketingSink 将数据写入 hadoop 文件系统。我可以使用file:///hdfs:/// 文件系统协议写入数据,没有任何问题。在 Hortonworks 沙盒中测试。但是当我在 MapR Sandbox 中切换到使用maprfs:/// 协议编写时,它会说

No FileSystem for scheme: maprfs
  Caused by: java.io.IOException: No FileSystem for scheme: maprfs
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2644)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2651)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:92)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2687)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2669)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:371)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)

我需要了解我需要在我的 Flink 应用程序中添加什么配置才能允许我写入 maprfs。在我的 MapR 集群中,core-site.xml 和 hdfs-site.xml 是空的,因此,我没有复制到我的$FLINK_CONF_DIR

【问题讨论】:

    标签: apache-flink flink-streaming


    【解决方案1】:

    您的类路径中首先需要 mapr 的 hadoop.jar。它通常位于/opt/mapr/...

    【讨论】:

    • 让我尝试用 hadoop mapr 依赖重新编译 Flink 1.2,看看效果如何。我读过 mapr 社区网站说为了使用 MapR 集群,我们需要使用供应商 repo 重新编译 Flink 二进制文件。我将使用 hadoop-2.7-mapr-1607 版本进行编译。可能还包括 zookeeper-3.4.5-mapr 版本,以防遇到任何问题
    • 终于!!!!使用 MapR 依赖重新编译 Flink 1.2 后,写入 maprfs 是成功的,甚至无需复制 hadoop mapr jar。现在一切正常。
    • 您应该接受@user7695690 的答案作为正确答案:)
    • 实际上拥有 hadoop jar 似乎并不适合我,但是使用 MapR hadoop 和 zookeeper 分发重新编译 Flink 有助于解决我的问题。尽管如此,还是接受了。
    【解决方案2】:

    【讨论】:

    • 谢谢,网址链接有帮助
    猜你喜欢
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多