Java s3 hadoop错误:NoSuchMethodError:org.apache.hadoop.metrics2.lib.MetricsRegistry.newCounter
我创建了如下凭据:Java s3 hadoop错误:NoSuchMethodError:org.apache.hadoop.metrics2.lib.MetricsRegistry.newCounter,java,hadoop,amazon-s3,parquet,hadoop2,Java,Hadoop,Amazon S3,Parquet,Hadoop2,我创建了如下凭据: Configuration conf = new Configuration(); conf.set("fs.s3a.impl", org.apache.hadoop.fs.s3a.S3AFileSystem.class.getName()); conf.set("fs.s3a.access.key", "ACCESS_ID"); conf.set("fs.s3a.secret.key", "SECRET VALUE"); conf.s
Configuration conf = new Configuration();
conf.set("fs.s3a.impl", org.apache.hadoop.fs.s3a.S3AFileSystem.class.getName());
conf.set("fs.s3a.access.key", "ACCESS_ID");
conf.set("fs.s3a.secret.key", "SECRET VALUE");
conf.set("fs.s3a.endpoint", "s3.us-east-1.amazonaws.com");
conf.set("fs.s3a.aws.credentials.provider", SimpleAWSCredentialsProvider.NAME);
conf.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
和路径
Path path = new Path("s3a://<backet>/<directory>/my.parquet");
你知道如何解决这个问题吗
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.metrics2.lib.MetricsRegistry.newCounter(Ljava/lang/String;Ljava/lang/String;J)Lorg/apache/hadoop/metrics2/lib/MutableCounterLong;
MetricsRegistry
类是库的一部分。您在依赖项列表中缺少它。
确保此jar的版本与hadoop aws的版本相同
此外,建议所有hadoop依赖项jar使用相同的版本
更新:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
您正在尝试使用Hadoop库写入S3。在这种情况下,Hadoop将尝试使用本地文件系统来创建临时文件。这是Windows操作系统,您需要
winutils.exe
二进制文件和其他所需文件%HADOOP\u HOME%
设置为指向安装这些二进制文件的目录MetricsRegistry
类是库的一部分。您在依赖项列表中缺少它。
确保此jar的版本与hadoop aws的版本相同
此外,建议所有hadoop依赖项jar使用相同的版本
更新:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z
您正在尝试使用Hadoop库写入S3。在这种情况下,Hadoop将尝试使用本地文件系统来创建临时文件。这是Windows操作系统,您需要
winutils.exe
二进制文件和其他所需文件%HADOOP\u HOME%
设置为指向安装这些二进制文件的目录阅读更多信息:谢谢,我试过了,但没有帮助。因此我使用了s3n,它工作正常。但是一旦添加了hadoop公共jar,这个错误应该已经解决了。你还收到同样的错误吗?我收到了org.apache.hadoop.io.nativeio.nativeio$Windows.access0(Ljava/lang/String;I)Z错误,而且我更新到了3.0.0,这没有帮助你知道如何解决这个问题吗?a3n在3.0.0版本中不受欢迎…我将其设置为那样,并将HADOOP_HOME设置为System.setProperty(“HADOOP.HOME.dir”,“C:\\Users\\avalieva\\Downloads\\winutils master\\HADOOP-3.0.0”);谢谢你,我试过了,但帮不上忙。因此我使用了s3n,它工作正常。但是一旦添加了hadoop公共jar,这个错误应该已经解决了。你还收到同样的错误吗?我收到了org.apache.hadoop.io.nativeio.nativeio$Windows.access0(Ljava/lang/String;I)Z错误,而且我更新到了3.0.0,这没有帮助你知道如何解决这个问题吗?a3n在3.0.0版本中不受欢迎…我将其设置为那样,并将HADOOP_HOME设置为System.setProperty(“HADOOP.HOME.dir”,“C:\\Users\\avalieva\\Downloads\\winutils master\\HADOOP-3.0.0”);
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.metrics2.lib.MetricsRegistry.newCounter(Ljava/lang/String;Ljava/lang/String;J)Lorg/apache/hadoop/metrics2/lib/MutableCounterLong;
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z