无法在hadoop jar上加载application.properties(nullpointerexception)

dxpyg8gm  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(474)

我已经研究了这个问题的各种答案。它们都不起作用。
我有以下代码:

  1. import java.util.Properties;
  2. import org.slf4j.Logger;
  3. import org.slf4j.LoggerFactory;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. public class ApplicationConfig {
  7. private static Logger LOG;
  8. private String appConfigFileLocation = "application.properties";
  9. private Properties appConfig;
  10. private static ApplicationConfig instance;
  11. public static ApplicationConfig getInstance() {
  12. if(instance == null) {
  13. instance = new ApplicationConfig();
  14. }
  15. return instance;
  16. }
  17. private ApplicationConfig() {
  18. LOG = LoggerFactory.getLogger(this.getClass().getSimpleName());
  19. appConfig = new Properties();
  20. try {
  21. LOG.info("Reading config from " + appConfigFileLocation);
  22. appConfig.load(ClassLoader.getSystemResourceAsStream(appConfigFileLocation));
  23. LOG.info("Done reading config from " + appConfigFileLocation);
  24. } catch (FileNotFoundException e) {
  25. LOG.error("Encountered FileNotFoundException while reading configuration: " + e.getMessage());
  26. throw new RuntimeException(e);
  27. } catch (IOException e) {
  28. LOG.error("Encountered IOException while reading configuration: " + e.getMessage());
  29. throw new RuntimeException(e);
  30. }
  31. }
  32. }

我创建了一个jar文件。jar文件 application.properties 从根本上说。我还复制了 application.properties 文件输入 /etc/hadoop/conf 而在 target/classes/ 目录。
我使用 hadoop jar 命令来执行代码。
但我一直得到一个错误: java.lang.NullPointerException at java.util.Properties$LineReader.readLine(Properties.java:434) 请帮助我解决这个令人沮丧的错误!

yr9zkbsy

yr9zkbsy1#

找到错误。 hadoop jar 签入hadoop类路径。即使文件在hadoop类路径中,它也没有hadoop用户的读取权限。
一个简单的 sudo chmod a+r /etc/hadoop/conf/application.properties 成功了!

相关问题