我正在尝试使用s3后端与自定义端点。但是,在中不支持它hadoop-aws@2.7.3,我至少需要使用2.8.0版本。underyling的原因是请求的发送方式如下
DEBUG [main] (AmazonHttpClient.java:337) - Sending Request: HEAD http://mustafa.localhost:9000 / Headers:
因为 fs.s3a.path.style.acces"
旧版本中无法识别。我希望域保持不变,将bucket名称附加到路径中( http://localhost:9000/mustafa/...
)
我不能盲目地增加 aws-java-sdk
版本到最新版本,会导致:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.amazonaws.ClientConfiguration
at org.apache.hadoop.fs.s3a.S3AFileSystem.initialize(S3AFileSystem.java:182)
所以,如果我增加 hadoop-aws
至 2.8.0
对于最新客户端,它会导致以下错误:
据我所知,我需要 hadoop-aws@2.7.2
以及https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/aws.html#provide-s3文件系统依赖关系
Caused by: java.lang.IllegalAccessError: tried to access method org.apache.hadoop.metrics2.lib.MutableCounterLong.<init>(Lorg/apache/hadoop/metrics2/MetricsInfo;J)V from class org.apache.hadoop.fs.s3a.S3AInstrumentation
at org.apache.hadoop.fs.s3a.S3AInstrumentation.streamCounter(S3AInstrumentation.java:194)
我应该排除吗 hadoop-common
从Flink那里?从源头上建造flink mvn clean install -DskipTests -Dhadoop.version=2.8.0
工作,但我想管理它通过maven尽可能多。
1条答案
按热度按时间zpqajqem1#
不要尝试混用hadoopjar,它不会工作,所有支持jira的都会被拒绝。
在maven中,您可以尝试从flink导入中排除hadoop2.7依赖项,然后显式地拉入hadoopclient、hadoopaws。。。我没有flink的设置,但是这里有一个spark的设置,可以让我在Hadoop3.0测试版和Spark2.2中混合使用,不包括spark的hadoop内容,以及hadoop中所有的jackson和jetty部分。是的,很痛,但这是我唯一能完全控制自己的结局的方法。
不知道flink snapshot,这取决于它是用什么构建的。在邮件列表上询问