In diesem Schritt werden Sie in das Gebiet der Hadoop-Speicherformate eintauchen und deren Stärken, Schwächen und Eignung für verschiedene Datentypen und Workloads untersuchen.
Stellen Sie zunächst sicher, dass Sie als Benutzer hadoop
angemeldet sind, indem Sie den folgenden Befehl in der Konsole ausführen:
su - hadoop
Erstellen Sie dann ein Verzeichnis, um unsere Datenfiles zu speichern:
mkdir /home/hadoop/data
Als Nächstes werden wir einige Beispiel-Datenfiles generieren, mit denen wir arbeiten können:
echo "Alice,25,New York" >> /home/hadoop/data/people.csv
echo "Bob,32,Los Angeles" >> /home/hadoop/data/people.csv
echo "Charlie,19,Chicago" >> /home/hadoop/data/people.csv
Lassen Sie uns nun verschiedene Speicherformate und ihre Anwendungsfälle untersuchen:
-
Text-Dateien: Text-Dateien sind das einfachste und am besten menschenlesbare Format. Sie eignen sich gut für kleine Datensätze und Prototypen, können jedoch bei großen Datensätzen aufgrund fehlender Kompression und Schema-Pflichtenhebung ineffizient sein.
-
Sequence-Dateien: Sequence-Dateien sind einfache Dateien, die aus binären Schlüssel-Wert-Paaren bestehen. Sie sind komprimiert und spaltbar, was sie effizient für große Datensätze mit relativ kleinen Datensätzen macht. Sie haben jedoch keine Schema-Pflichtenhebung und können für komplexe Datentypen schwierig zu verwenden sein.
-
Avro-Dateien: Apache Avro ist ein zeilenbasiertes Daten-Serialisierungsformat, das Schema-Pflichtenhebung und effiziente Kompression unterstützt. Es eignet sich gut für große Datensätze mit komplexen Datentypen und bietet hervorragende Interoperabilität zwischen verschiedenen Programmiersprachen.
-
Parquet-Dateien: Apache Parquet ist ein spaltenorientiertes Speicherformat, das ausgezeichnete Kompression und effizientes Daten-Springen bietet. Es eignet sich besonders gut für analytische Workloads, die große Datensätze mit komplexen Schemata und vielen Spalten betreffen.
-
ORC-Dateien: Das Optimized Row Columnar (ORC)-Format ist ein weiteres spaltenorientiertes Speicherformat, das für große Datensätze mit komplexen Schemata optimiert ist. Es bietet ausgezeichnete Kompression, Daten-Sprungfähigkeiten und effiziente Lesevorgänge für analytische Workloads.
Um diese Formate weiter zu untersuchen, können Sie die integrierten Tools oder Bibliotheken von Hadoop wie Apache Hive oder Apache Spark verwenden. Beispielsweise um eine Hive-Tabelle im Text-Format zu erstellen:
Starten Sie die Hive-Shell, indem Sie den folgenden Befehl ausführen:
hive
Erstellen Sie eine Hive-Tabelle im Text-Format:
CREATE TABLE people (
name STRING,
age INT,
city STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
Laden Sie die Daten in die Tabelle:
LOAD DATA LOCAL INPATH '/home/hadoop/data/people.csv' INTO TABLE people;
Dies wird eine Hive-Tabelle namens people
mit dem angegebenen Schema erstellen und die Daten im Text-Format speichern.