[HADOOP] java.lang.NoClassDefFoundError : org / apache / hadoop / fs / StorageStatistics
HADOOPjava.lang.NoClassDefFoundError : org / apache / hadoop / fs / StorageStatistics
서버에서 s3 응용 프로그램에 간단한 스파크를 실행하려고하지만 서버에 hadoop 2.7.3이 설치되어 있고 GlobalStorageStatistics 클래스가 포함되어 있지 않은 것 같아서 아래 오류가 계속 발생합니다. http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/api/org/apache/hadoop/fs/GlobalStorageStatistics.html.homeoop 2.8.x가 내 pom에 정의되어 있습니다. .xml 파일을 로컬로 실행하여 테스트하려고합니다.
만약 내가 hadoop 2.7.3과 함께 가야한다면 그 클래스를 포함 할 수있는 대안이나 해결 방법을 무시하도록 할 수 있습니까?
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/StorageStatistics
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.apache.hadoop.conf.Configuration.getClassByNameOrNull(Configuration.java:2134)
at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:2099)
at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2193)
at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2654)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
at org.apache.spark.sql.execution.datasources.DataSource.hasMetadata(DataSource.scala:301)
at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:344)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:152)
at org.apache.spark.sql.DataFrameReader.parquet(DataFrameReader.scala:441)
at org.apache.spark.sql.DataFrameReader.parquet(DataFrameReader.scala:425)
at com.ibm.cos.jdbc2DF$.main(jdbc2DF.scala:153)
at com.ibm.cos.jdbc2DF.main(jdbc2DF.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:738)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:187)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:212)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:126)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.StorageStatistics
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 28 more
해결법
-
==============================
1.하둡 조각을 섞어서 일을 기대할 수는 없습니다. hadoop-common과 hadoop-aws의 내부 클래스 간의 밀접한 결합이 아니라 hadoop-aws 모듈이 만든 amazon-aws SDK의 특정 버전과 같은 것입니다.
하둡 조각을 섞어서 일을 기대할 수는 없습니다. hadoop-common과 hadoop-aws의 내부 클래스 간의 밀접한 결합이 아니라 hadoop-aws 모듈이 만든 amazon-aws SDK의 특정 버전과 같은 것입니다.
클래스 패스를 분리 할 수있는 경우가 아니면 POM을 다시 2.7.3으로 롤백해야합니다.
죄송합니다
from https://stackoverflow.com/questions/44411493/java-lang-noclassdeffounderror-org-apache-hadoop-fs-storagestatistics by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 사용자 지정 구분 기호로 하이브에 데이터로드 (0) | 2019.06.02 |
---|---|
[HADOOP] keytab을 사용하여 보안 Kerberos 인증 클러스터에서 하이브에 연결 (0) | 2019.06.02 |
[HADOOP] Mainframe에서 Hadoop으로 데이터를 가져 오는 방법 (0) | 2019.06.02 |
[HADOOP] wholeTextFiles를 사용하여 Spark에서 gz 파일을 읽는 방법 (0) | 2019.06.02 |
[HADOOP] OOZIE-4.1.0에서 다중 워크 플로우 실행시 오류 (0) | 2019.06.02 |