Können wir auf das HDFS -Dateisystem und der Garnplaner in Apache Spark zugreifen?
-
16-10-2019 - |
Frage
Wir können im Apache-Hadoop auf HDFS-Dateisystem und Garnplaner zugreifen. Aber Spark hat eine höhere Codierung. Ist es möglich, auch in Apache-Spark auf HDFs und Garn zugreifen zu können?
Vielen Dank
Lösung
Ja.
Es gibt Beispiele zum offiziellen Dokument aus Spark: https://spark.apache.org/examples.htmlSetzen Sie einfach Ihren HDFS -Datei -URI wie unten in Ihren Eingabedateipfad (Scala -Syntax) ein.
val file = spark.textFile("hdfs://train_data")
Andere Tipps
HDFS
Spark wurde als Alternative zu MapReduce gebaut und unterstützt somit den größten Teil seiner Funktionalität. Insbesondere bedeutet dies, dass "Spark verteilte Datensätze aus jeder von Hadoop unterstützten Speicherquelle erstellen kann, einschließlich Ihres lokalen Dateisystems, HDFS, Cassandra, HBase, Amazon S3 usw."1. Für die meisten häufigen Datenquellen (wie HDFS oder S3) erkennt das Schema automatisch: z. B.:
val sc = SparkContext(...)
val localRDD = sc.textFile("file://...")
val hdfsRDD = sc.textFile("hdfs://...")
val s3RDD = sc.textFile("s3://...")
Für kompliziertere Fälle müssen Sie möglicherweise mit Funktionen auf niedrigerer Ebene arbeiten newAPIHadoopFile
:
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat],
classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
classOf[org.apache.hadoop.hbase.client.Result])
val customRDD = sc.newAPIHadoopRDD(conf, classOf[MyCustomInputFormat],
classOf[MyCustomKeyClass],
classOf[MyCustomValueClass])
Die allgemeine Regel ist jedoch, dass, wenn eine Datenquelle für MapReduce verfügbar ist, leicht in Spark wiederverwendet werden kann.
GARN
Derzeit unterstützt Spark 3 Cluster -Manager / Modi:
- Eigenständige
- Mesos
- GARN
Der Standalone -Modus verwendet Sparks eigener Master -Server und arbeitet nur für Spark, während Garn- und Mesos -Modi darauf abzielen, denselben Satz von Systemressourcen zwischen mehreren Frameworks (z. B. Spark, MapReduce, Impala usw.) zu teilen. Vergleich von Garn und Mesos kann gefunden werden hier, und detaillierte Beschreibung des Funkens auf Garn hier.
Und in den besten Traditionen des Funkens können Sie zwischen verschiedenen Modi einfach wechseln, indem Sie sich ändern Master -URL.