cuốn sách gpt4 ai đã làm

java - initMiniDFSCluster ném NoClassDefFoundError (kiểm tra ứng dụng khách hadoop)

In lại Tác giả: Hồ Xil Thời gian cập nhật: 2023-11-01 14:44:23 26 4
mua khóa gpt4 Nike

Tôi đang viết một phần mềm có nhiệm vụ lưu trữ các tệp trong hadoop-hdfs và tất nhiên tôi muốn viết các trường hợp thử nghiệm cho chức năng cụ thể này. Thật không may khi tôi thử build()MiniDFSCluster, tôi nhận được thông báo sau.

10/16/07 16:16:33 THÔNG TIN hdfs.MiniDFSCluster: cụm bắt đầu: numNameNodes=1, numDataNodes=2
16/10/07 16:16:33 INFO hdfs.MiniDFSCluster: Tắt cụm Mini HDFS

java.lang.NoClassDefFoundError: org/apache/hadoop/net/StaticMapping

tại org.apache.hadoop.hdfs.MiniDFSCluster.initMiniDFSCluster(MiniDFSCluster.java:792)
tại org.apache.hadoop.hdfs.MiniDFSCluster.(MiniDFSCluster.java:475)
tại org.apache.hadoop.hdfs.MiniDFSCluster$Builder.build(MiniDFSCluster.java:434)
tại de.tuberlin.cit.storageassistant.ArchiveManagerTest.setUp(ArchiveManagerTest.java:33)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:497)
tại org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
tại org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
tại org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
tại org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
tại org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
tại org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
tại org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
tại org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
tại org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
tại org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
tại org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
tại org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
tại org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
tại org.junit.runners.ParentRunner.run(ParentRunner.java:363)
tại org.junit.runner.JUnitCore.run(JUnitCore.java:137)
tại com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
tại com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
tại com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
tại sun.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.lang.reflect.Method.invoke(Method.java:497)
tại com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Nguyên nhân là do: java.lang.ClassNotFoundException: org.apache.hadoop.net.StaticMapping
tại java.net.URLClassLoader.findClass(URLClassLoader.java:381)
tại java.lang.ClassLoader.loadClass(ClassLoader.java:424)
tại sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
tại java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 31 thêm


Quá trình kết thúc với mã thoát 255

Đây là các phần phụ thuộc hadoop pom.xml của tôi:


org.apache.hadoop
hadoop-common
${hadoop.version



org.apache.hadoop
hadoop-hdfs
${hadoop.version



org.apache.hadoop
hadoop-hdfs
bình kiểm tra
${hadoop.version
kiểm tra

Đây có phải là cách chính xác để gỡ lỗi các công cụ sử dụng hadoop không? Nếu có, làm thế nào tôi có thể làm cho nó hoạt động. Tôi đang sử dụng mã ví dụ cổ điển để thử nghiệm:

@org.junit.Trước
public void setUp() ném ngoại lệ {
// super.setUp();
Cấu hình conf = Cấu hình mới();
// conf.set("fs.defaultFS", "hdfs://localhost:9000");
Tệp baseDir = Tệp mới("./target/hdfs/").getAbsoluteFile();
FileUtil.fullDelete(baseDir);
conf.set(MiniDFSCluster.HDFS_MINIDFS_BASEDIR, baseDir.getAbsolutePath());
dfsCluster = MiniDFSCluster mới
.Builder(conf)
.checkExitOnShutdown(true)
.numDataNodes(2)
.format (đúng)
.racks(null)
.xây dựng();
hdfsURI = "hdfs://localhost:"+ dfsCluster.getNameNodePort() + "/";
}

@org.junit.After
public void TearsDown() ném ngoại lệ {
nếu (dfsCluster != null) {
dfsCluster.shutdown();
}
}

Bất kỳ trợ giúp hoặc gợi ý?

câu trả lời hay nhất

Gặp phải vấn đề tương tự, bằng cách thêmhadoop-common:kiểm traSự phụ thuộc có thể giải quyết nó:


org.apache.hadoop
hadoop-common
${hadoop.version
kiểm tra

mã sản xuất hadoop-chung Lớp thích hợp bị thiếu trong Artifact.

Về java - initMiniDFSCluster ném NoClassDefFoundError (kiểm tra ứng dụng khách hadoop), chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/39919648/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress