Festlegen von Apache Hadoop-Eigenschaften in core-site.xml

Sie verfügen über ein Szenario, in dem Apache Hadoop-Eigenschaften festgelegt werden müssen.

Normalerweise würden Sie dies in der Datei core-site.xml tun.

In diesem Artikel wird erläutert, wie Sie in einem core-site.xml Cluster festlegen können.

Erstellen der core-site.xml Datei in DBFS

Sie müssen eine Datei core-site.xml erstellen und in DBFS in Ihrem Cluster speichern.

Eine einfache Möglichkeit zum Erstellen dieser Datei ist ein Bash-Skript in einem Notebook.

Dieser Beispielcode erstellt einen hadoop-configs Ordner in Ihrem Cluster und schreibt dann eine einzelne core-site.xml Eigenschaftendatei in diesen Ordner.

mkdir -p /dbfs/hadoop-configs/
cat << 'EOF' > /dbfs/hadoop-configs/core-site.xml
 <property>
    <name><property-name-here></name>
    <value><property-value-here></value>
 </property>
EOF

Sie können der Datei mehrere Eigenschaften hinzufügen, indem Sie dem Skript zusätzliche Name-Wert-Paare hinzufügen.

Sie können diese Datei auch lokal erstellen und dann in Ihren Cluster hochladen.

Erstellen eines init-Skripts, das geladen wird core-site.xml

Dieser Beispielcode erstellt ein Init-Skript namens set-core-site-configs.sh , das die gerade erstellte Datei core-site.xml verwendet.

Wenn Sie eine Datei manuell hochgeladen und an anderer Stelle gespeichert haben, sollten Sie core-site.xml den Wert im config_xml Beispielcode aktualisieren.

dbutils.fs.put("/databricks/scripts/set-core-site-configs.sh", """
#!/bin/bash

echo "Setting core-site.xml configs at `date`"

START_DRIVER_SCRIPT=/databricks/spark/scripts/start_driver.sh
START_WORKER_SCRIPT=/databricks/spark/scripts/start_spark_slave.sh

TMP_DRIVER_SCRIPT=/tmp/start_driver_temp.sh
TMP_WORKER_SCRIPT=/tmp/start_spark_slave_temp.sh

TMP_SCRIPT=/tmp/set_core-site_configs.sh

config_xml="/dbfs/hadoop-configs/core-site.xml"

cat >"$TMP_SCRIPT" <<EOL
#!/bin/bash
## Setting core-site.xml configs

sed -i '/<\/configuration>/{
    r $config_xml
    a \</configuration>
    d
}' /databricks/spark/dbconf/hadoop/core-site.xml

EOL
cat "$TMP_SCRIPT" > "$TMP_DRIVER_SCRIPT"
cat "$TMP_SCRIPT" > "$TMP_WORKER_SCRIPT"

cat "$START_DRIVER_SCRIPT" >> "$TMP_DRIVER_SCRIPT"
mv "$TMP_DRIVER_SCRIPT" "$START_DRIVER_SCRIPT"

cat "$START_WORKER_SCRIPT" >> "$TMP_WORKER_SCRIPT"
mv "$TMP_WORKER_SCRIPT" "$START_WORKER_SCRIPT"

echo "Completed core-site.xml config changes `date`"

""", True)

Anfügen des Init-Skripts an Ihren Cluster

Sie müssen das neu erstellte Init-Skript als clusterspezifisches Init-Skript konfigurieren.

Wenn Sie den Beispielcode verwendet haben, ist Ihr Ziel und der Init-Skriptpfad ist .

Wenn Sie den Beispielcode angepasst haben, stellen Sie sicher, dass Sie den richtigen Pfad und Namen des Init-Skripts eingeben, wenn Sie es an den Cluster anfügen.