使用Flink處理JindoFS上的資料

更新時間:
Copy as MD

本文介紹如何使用Flink處理JindoFS上的資料。

JindoFS配置

以EMR-3.35版本為例,建立名為emr-jfs的命名空間,相關配置參數樣本如下:
  • jfs.namespaces=emr-jfs
  • jfs.namespaces.emr-jfs.oss.uri=oss://oss-bucket/oss-dir
  • jfs.namespaces.emr-jfs.mode=block

使用JindoFS

Flink作業同樣可以將作業的輸入輸出指定為JindoFS相應Namespace下的路徑,即可實現Flink作業對JindoFS資料的互動。

例如,HDFS 上的作業命令如下。
flink run -m yarn-cluster -yD taskmanager.network.memory.fraction=0.4 -yD akka.ask.timeout=60s -yjm 2048 -ytm 2048 -ys 4 -yn 14 -c xxx.xxx.FlinkWordCount -p 56 XXX.jar --input hdfs:///test//large-input-flink --output hdfs:///runjob/test/large-output-flink"
相應的改成如下命令即可:
  • Flink 1.10及之前版本
    flink run -m yarn-cluster -yD taskmanager.network.memory.fraction=0.4 -yD akka.ask.timeout=60s -yjm 2048 -ytm 2048 -ys 4 -yn 14 -c xxx.xxx.FlinkWordCount -p 56 XXX.jar --input jfs://emr-jfs/test/large-input-flink --output jfs://emr-jfs/test/large-output-flink"
  • Flink 1.10之後版本
    flink run -m yarn-cluster -yD taskmanager.network.memory.fraction=0.4 -yD akka.ask.timeout=60s -yjm 2048 -ytm 2048 -ys 4 -c xxx.xxx.FlinkWordCount -p 56 XXX.jar --input jfs://emr-jfs/test/large-input-flink --output jfs://emr-jfs/test/large-output-flink"