Как использовать локальный файл свойств core-site.xml hadoop в Intellij для локальной разработки - PullRequest
0 голосов
/ 01 марта 2019

Как настроить конфигурацию запуска приложения, чтобы использовать собственный файл core-site.xml для конфигураций hadoop?Я хотел бы добавить свойства в опции vm, которые хорошо работали для настроек spark, таких как -Dspark.hadoop.fs.defaultFS=localhost:9000, но я хотел бы сделать то же самое для моих локальных объектов конфигурации hadoop.Я знаю, что могу создать код, который будет читать мой core-site.xml, но я не хочу этого делать из-за того, что для удаленных кластеров уже настроен соответствующий fs.defaultsFS, поэтому он предназначен только для локального тестирования.Итак, прямо сейчас у меня есть это:

  def getHdpConfig(): Configuration = {
    val hadoopConf  = new Configuration()
    val coreSiteXML = s"${System.getenv("HADOOP_CONF_DIR")}/core-site.xml"
    val hdfsSiteXML = s"${System.getenv("HADOOP_CONF_DIR")}/hdfs-site.xml"
    hadoopConf.addResource(new Path("file:///" + coreSiteXML))
    hadoopConf.addResource(new Path("file:///" + hdfsSiteXML))
    hadoopConf
  }
  val hadoopConf = new Configuration()
  println(hadoopConf.get("fs.defaultFS"))     // -> file:/// (should be hfds://localhost:9000 picked up from core-site.xml
  println(getHdpConfig().get("fs.defaultFS")) // don't want to do this -> hfds://localhost:9000

Также это работает точно так же, как и ожидалось в Spark-Shell, потому что у меня есть моя искра, настроенная для получения моего HADOOP_CONF_DIR.

scala> val hadoopConf  = new Configuration()
hadoopConf: org.apache.hadoop.conf.Configuration = Configuration: core-default.xml, core-site.xml, mapred-default.xml, mapred-site.xml, yarn-default.xml, yarn-site.xml, hdfs-default.xml, hdfs-site.xml

scala> hadoopConf.get("fs.defaultFS")
res2: String = hdfs://localhost:9000
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...