You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 戴嘉诚 <a7...@gmail.com> on 2019/09/04 03:16:27 UTC

Streaming File Sink疑问

大家好:
	我在看到streamingFileSink 中看到可以把数据转成文件写入到Flink的fileSystem中,但是这里有个问题就是,我写入的hdfs不是在flink的集群(集群A)上,是在另一个hdfs集群(集群B)上,然后那个集群(集群B)上面配置了namenode的HA,如果只是直接指定namenode感觉不怎么可靠,但是flink默认的flinkSystem中,是指定了flink默认的hdfs集群(集群A),请问这个连接器中,能单独指定fs的配置吗?因为flink开启了checkpoint,而checkpoint的默认路径是在fink自身的集群上(集群A),所以不能粗暴的直接把默认的fileSystem直接指向集群B。谢谢


Re: Streaming File Sink疑问

Posted by wang jinhai <ji...@gmail.com>.
简单粗暴的方案是修改集群的HADOOP_CONF_DIR,集成A、B的hdfs配置,但是不太友好,如果多个集群,每次都得修改,比较费劲。好的方式就是在flink任务里添加hdfs-site.xml,同时注意dfs.nameservices的设置

在 2019/9/4 上午11:47,“周美娜”<15...@163.com> 写入:

    我的做法是 重新配置 HADOOP_CONF_DIR 环境变量:在flink集群里面配置 core-site.xml 和 hdfs-site.xml,同时将  HADOOP_CONF_DIR 环境变量 指向这个文件目录
    > 在 2019年9月4日,上午11:16,戴嘉诚 <a7...@gmail.com> 写道:
    > 
    > 大家好:
    > 	我在看到streamingFileSink 中看到可以把数据转成文件写入到Flink的fileSystem中,但是这里有个问题就是,我写入的hdfs不是在flink的集群(集群A)上,是在另一个hdfs集群(集群B)上,然后那个集群(集群B)上面配置了namenode的HA,如果只是直接指定namenode感觉不怎么可靠,但是flink默认的flinkSystem中,是指定了flink默认的hdfs集群(集群A),请问这个连接器中,能单独指定fs的配置吗?因为flink开启了checkpoint,而checkpoint的默认路径是在fink自身的集群上(集群A),所以不能粗暴的直接把默认的fileSystem直接指向集群B。谢谢
    > 
    
    

Re: Streaming File Sink疑问

Posted by wang jinhai <ji...@gmail.com>.
这个问题我们刚好解决了。在flink任务的resources里加上hdfs-site.xml文件,把集群B的HA相关的配置复制进来,同时把dfs.nameservices的value设定为A,B,关键是加上<final>true</final>。不然被集群的HADOOP_CONF_DIR配置覆盖(代码逻辑在HadoopUtils类)


在 2019/9/4 上午11:47,“周美娜”<15...@163.com> 写入:

    我的做法是 重新配置 HADOOP_CONF_DIR 环境变量:在flink集群里面配置 core-site.xml 和 hdfs-site.xml,同时将  HADOOP_CONF_DIR 环境变量 指向这个文件目录
    > 在 2019年9月4日,上午11:16,戴嘉诚 <a7...@gmail.com> 写道:
    > 
    > 大家好:
    > 	我在看到streamingFileSink 中看到可以把数据转成文件写入到Flink的fileSystem中,但是这里有个问题就是,我写入的hdfs不是在flink的集群(集群A)上,是在另一个hdfs集群(集群B)上,然后那个集群(集群B)上面配置了namenode的HA,如果只是直接指定namenode感觉不怎么可靠,但是flink默认的flinkSystem中,是指定了flink默认的hdfs集群(集群A),请问这个连接器中,能单独指定fs的配置吗?因为flink开启了checkpoint,而checkpoint的默认路径是在fink自身的集群上(集群A),所以不能粗暴的直接把默认的fileSystem直接指向集群B。谢谢
    > 
    
    

Re: Streaming File Sink疑问

Posted by 周美娜 <15...@163.com>.
我的做法是 重新配置 HADOOP_CONF_DIR 环境变量:在flink集群里面配置 core-site.xml 和 hdfs-site.xml,同时将  HADOOP_CONF_DIR 环境变量 指向这个文件目录
> 在 2019年9月4日,上午11:16,戴嘉诚 <a7...@gmail.com> 写道:
> 
> 大家好:
> 	我在看到streamingFileSink 中看到可以把数据转成文件写入到Flink的fileSystem中,但是这里有个问题就是,我写入的hdfs不是在flink的集群(集群A)上,是在另一个hdfs集群(集群B)上,然后那个集群(集群B)上面配置了namenode的HA,如果只是直接指定namenode感觉不怎么可靠,但是flink默认的flinkSystem中,是指定了flink默认的hdfs集群(集群A),请问这个连接器中,能单独指定fs的配置吗?因为flink开启了checkpoint,而checkpoint的默认路径是在fink自身的集群上(集群A),所以不能粗暴的直接把默认的fileSystem直接指向集群B。谢谢
>