簡體   English   中英

無法在Hadoop jar上加載application.properties(NullPointerException)

[英]Unable to load application.properties on Hadoop jar (NullPointerException)

我已經看過這個問題的各種答案。 他們都沒有工作。

我有以下代碼:

import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileNotFoundException;
import java.io.IOException;

public class ApplicationConfig {

    private static Logger LOG;

    private String appConfigFileLocation = "application.properties"; 
    private Properties appConfig;

    private static ApplicationConfig instance;

    public static ApplicationConfig getInstance() {
        if(instance == null) {
            instance = new ApplicationConfig();
        }

        return instance;
    } 

    private ApplicationConfig() {
        LOG = LoggerFactory.getLogger(this.getClass().getSimpleName());

        appConfig = new Properties();

        try {
            LOG.info("Reading config from " + appConfigFileLocation);

            appConfig.load(ClassLoader.getSystemResourceAsStream(appConfigFileLocation));

            LOG.info("Done reading config from " + appConfigFileLocation);
        } catch (FileNotFoundException e) {
            LOG.error("Encountered FileNotFoundException while reading configuration: " + e.getMessage());
            throw new RuntimeException(e);
        } catch (IOException e) {
            LOG.error("Encountered IOException while reading configuration: " + e.getMessage());
            throw new RuntimeException(e);
        }
    }
}

我創建了一個JAR文件。 JAR文件在根目錄下有application.properties 我還復制了/etc/hadoop/conftarget/classes/目錄中的application.properties文件。

我使用hadoop jar命令來執行代碼。

但是我一直收到錯誤: java.lang.NullPointerException at java.util.Properties$LineReader.readLine(Properties.java:434)

請幫我解決這個令人沮喪的錯誤!

發現錯誤。

hadoop jar檢查Hadoop類路徑。 即使該文件存在於Hadoop類路徑中,它也沒有Hadoop用戶的讀取權限。

一個簡單的sudo chmod a+r /etc/hadoop/conf/application.properties就可以了!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM