TT Lab

한국어 English 日本語

Get started
Blog

Blog

How to Fix Hadoop-Client NoClassDefFoundError (IntelliJ)

Overview

When running a Java program that accesses a Hadoop cluster, the following error occurs.

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/conf/Configuration
	at org.example.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.conf.Configuration
	at java.net.URLClassLoader.findClass(URLClassLoader.java:387)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	... 1 more

Main.java
package org.example;

import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

public class Main {

    public static void main(String[] args) throws IOException {
        Configuration configuration = new Configuration();
        configuration.set("fs.defaultFS", "hdfs://my_hdfs_fqdn:8020");
        FileSystem fileSystem = FileSystem.get(configuration);
        String directoryName = "tmp/test";
        Path path = new Path(directoryName);
        fileSystem.mkdirs(path);

    }
}

Solution

By commenting out the scope in the dependency, you can resolve the error where the class cannot be found.

pom.xml
    <dependencies>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.0</version>
            <!-- <scope>provided</scope> -->
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.0</version>
        </dependency>

    </dependencies>

Quiz

Q1: What is the main topic covered in "How to Fix Hadoop-Client NoClassDefFoundError (IntelliJ)"?

How to fix Hadoop-Client NoClassDefFoundError

Q2: What is Solution? By commenting out the scope in the dependency, you can resolve the error where the class cannot be found.

Sign in to like

Comments

No comments yet.

Sign in to leave a comment