我想配置 filesystem
状态后端和 zookeeper
恢复模式:
state.backend: filesystem
state.backend.fs.checkpointdir: ???
recovery.mode: zookeeper
recovery.zookeeper.storageDir: ???
如你所见,我应该具体说明 checkpointdir
以及 storageDir
参数,但我没有任何apache flink支持的文件系统(如hdfs或amazons3)。但我已经安装了RIAKCS集群(似乎它与s3兼容)。
那么,我可以将riak cs与apache flink一起使用吗?如果可能的话:如何配置apacheflink与riakcs一起工作?
1条答案
按热度按时间6tqwzwtp1#
答:如何加入apache flink和riak cs?
riak cs具有s3(版本2)兼容接口。因此,可以使用hadoop中的s3文件系统适配器来处理riakcs。
我不知道为什么,但是apache flink在fat jar中只有部分hadoop文件系统适配器(
lib/flink-dist_2.11-1.0.1.jar
)即有ftp文件系统(org.apache.hadoop.fs.ftp.FTPFileSystem
)但没有s3文件系统(即。org.apache.hadoop.fs.s3a.S3AFileSystem
). 所以,有两种方法可以解决这个问题:使用hadoop安装中的这些适配器。我没有试过这个,但似乎您应该只配置hadoop\u classpath或hadoop\u home evn变量。
monky补丁apache flink并下载所需的jar到
<flink home>/lib
目录所以,我选择第二种方式是因为我不想在我的环境中配置hadoop。您可以从hadoop dist或internet复制JAR:
如您所见,我使用的是旧版本,因为这样的版本在hadoop2.7.2中使用,我使用的flink与这个版本的hadoop兼容。
仅供参考:如果您在自己的流中使用这些jar的最新版本,这样的黑客可能会导致问题。为了避免与不同版本相关的问题,当您使用flow构建fat jar时,您可以重新定位包,例如(我使用的是gradle):
然后您应该指定
core-site.xml
在flink-conf.yaml
因为hadoop兼容的文件系统使用此配置加载设置:如你所见,我只是把它放在
<fink home>/conf
目录。它具有以下设置:然后您应该在中配置riak cs bucket
flink-conf.yaml
作为推荐人:并在riak cs中创建桶。我正在使用
s3cmd
(安装在brew
在我的os x开发环境中):仅供参考:使用前
s3cmd
你应该配置它使用s3cmd --configure
然后在中修复一些设置~/.s3cmd
文件:所以,这就是您应该在riak cs中为独立ha apache flink集群的save/restore状态配置的全部内容。