概念
Flink提供了一个类似于hadoop分布式缓存,可以使用户在并行函数中很方便的读取本地文件。
- 广播变量是将一些共享的数据放在TaskManager
内存
中 - 而Distribute cache是从外部加载一个文件/目录(例如hdfs),然后分别复制到每一个TaskManager的
本地磁盘
中。
用法
1.使用Flink运行环境调用registerCachedFile注册一个分布式缓存
env.registerCachedFile("hdfs:///path/to/your/file", "hdfsFile")
2. 获取分布式缓存
File myFile = getRuntimeContext().getDistributedCache().getFile("hdfsFile");
import java.util
import org.apache.commons.io.FileUtils
import org.apache.flink.api.common.functions.RichMapFunction
import org.apache.flink.api.scala.ExecutionEnvironment
import org.apache.flink.configuration.Configuration
import scala.io