Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flink Flink,使用Hadoop兼容性时的奇怪行为_Apache Flink - Fatal编程技术网

Apache flink Flink,使用Hadoop兼容性时的奇怪行为

Apache flink Flink,使用Hadoop兼容性时的奇怪行为,apache-flink,Apache Flink,我将Flink Hadoop兼容性添加到从hdfs路径读取序列文件的项目中 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-hadoop-compatibility_2.11</artifactId> <version>1.5.6</version> </dependency> 好的,我更新

我将Flink Hadoop兼容性添加到从hdfs路径读取序列文件的项目中

<dependency>
    <groupId>org.apache.flink</groupId>
    <artifactId>flink-hadoop-compatibility_2.11</artifactId>
    <version>1.5.6</version>
</dependency>
好的,我更新我的代码来添加类型信息

DataSource<Tuple2<NullWritable, BytesWritable>> input = env.createInput(HadoopInputs.readHadoopFile(
    new org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat<NullWritable, BytesWritable>(),
    NullWritable.class, BytesWritable.class, path),
    TypeInformation.of(new TypeHint<Tuple2<NullWritable, BytesWritable>>() {}));
有些人建议将flink-hadoop-compatibility_2.11-1.5.6.jar复制到flink_HOME/lib,但这没有帮助,仍然是相同的错误

有人有什么线索吗

My Flink是一个独立安装,版本为1.5.6

更新:

抱歉,我将flink-hadoop-compatibility_2.11-1.5.6.jar复制到了错误的位置,修复后,它就可以工作了


现在我的问题是,还有别的路要走吗?因为将jar文件复制到FLINK_HOME/lib对我来说绝对不是一个好主意,尤其是在谈论大型FLINK集群时。

在1.9.0版中修复,请参阅了解详细信息。

在1.9.0版中修复,请参阅了解详细信息。

您尝试创建胖jar了吗?@TobiSH Hi,jar是使用maven shade插件创建的,包括除FlinkJava和FlinkClient之外的所有内容(这两种用法都是在提供的范围内),我确实查看了jar文件,并且可以看到org.apache.hadoop.io类。Writable@TobiSH,我已经更新了我的帖子。我说的对吗?通过将
flink-hadoop-compatibility_2.11-1.5.6.jar
复制到集群的lib文件夹,您修复了该问题?在fat jar中使用正确的版本是行不通的?是的,将flink-hadoop-compatibility_2.11-1.5.6.jar打包到我的fat jar中也没用。到目前为止,我找到的唯一方法是将这个jar复制到FLINK_HOME/lib中。您是否尝试创建一个胖jar?@TobiSH Hi,这个jar是使用maven shade插件创建的,它包括除FLINK java和FLINK client(这两个用途提供了作用域)之外的所有内容,我确实查看了jar文件,我可以看到org.apache.hadoop.io类。Writable@TobiSH,我已经更新了我的帖子,你说的对吗?通过将
flink-hadoop-compatibility_2.11-1.5.6.jar
复制到集群的lib文件夹,您修复了该问题?在fat jar中使用正确的版本是行不通的?是的,将flink-hadoop-compatibility_2.11-1.5.6.jar打包到我的fat jar中也没用。到目前为止,我找到的唯一方法是将这个罐子复制到FLINK_HOME/lib中。
The type returned by the input format could not be automatically determined. Please specify the TypeInformation of the produced type explicitly by using the 'createInput(InputFormat, TypeInformation)' method instead.
DataSource<Tuple2<NullWritable, BytesWritable>> input = env.createInput(HadoopInputs.readHadoopFile(
    new org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat<NullWritable, BytesWritable>(),
    NullWritable.class, BytesWritable.class, path),
    TypeInformation.of(new TypeHint<Tuple2<NullWritable, BytesWritable>>() {}));
Caused by: java.lang.RuntimeException: Could not load the TypeInformation for the class 'org.apache.hadoop.io.Writable'. You may be missing the 'flink-hadoop-compatibility' dependency.