Ich verwende typsichere ConfigFactory, um die Konfiguration in meine scala-Anwendung zu laden. Ich möchte die Konfigurationsdateien nicht in mein jar aufnehmen, sondern sie stattdessen von einem externen hdfs-Dateisystem laden. Allerdings kann ich nicht auf einfache Weise findet die Config vom fsDataInputStream Objekt, das ich von hadoop erhalten zu laden:Wie man Typesafe ConfigFactory von der Akte auf hdfs lädt?
//get HDFS file
val hadoopConfig: Configuration = sc.hadoopConfiguration
val fs: FileSystem = org.apache.hadoop.fs.FileSystem.get(hadoopConfig)
val file: FSDataInputStream = fs.open(new Path("hdfs://SOME_URL/application.conf"))
//read config from hdfs
val config: Config = ConfigFactory.load(file.readUTF())
Doch dies wirft ein EOFException. Gibt es eine einfache Möglichkeit, das FSDataInputStream-Objekt in die erforderliche java.io.File zu konvertieren? Ich fand Converting from FSDataInputStream to FileInputStream, aber das wäre für solch eine einfache Aufgabe ziemlich umständlich.
funktioniert gut! Danke – Malte
Können wir Dateien innerhalb der typsicheren Konfigurationsdatei von den hdfs einschließen. 'Include-Datei (" hdfs: //home//XYZ.conf ")' –
Ich weiß es nicht. Warum versuchst du es nicht? –