ハドープの格納形式を探る
このステップでは、ハドープの格納形式の世界に入り、それらの強み、弱み、および異なるデータ型とワークロードに対する適合性を探ります。
まず、ターミナルで以下のコマンドを実行して、hadoop
ユーザーとしてログインしていることを確認します。
su - hadoop
次に、データファイルを保管するディレクトリを作成しましょう。
mkdir /home/hadoop/data
次に、使用するサンプルデータファイルを生成します。
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
さて、異なる格納形式とその使用例を探りましょう。
-
テキストファイル:テキストファイルは最も単純で人間が読みやすい形式です。小規模なデータセットやプロトタイピングには適していますが、圧縮やスキーマの強制が欠けているため、大規模なデータセットには非効率的です。
-
シーケンスファイル:シーケンスファイルは、バイナリキーバリューペアで構成されるフラットファイルです。圧縮されており、分割可能であるため、比較的小さなレコードの大規模なデータセットに対して効率的です。ただし、スキーマの強制が欠けており、複雑なデータ型を扱うのは難しい場合があります。
-
Avroファイル:Apache Avroは、行ベースのデータ直列化形式で、スキーマの強制と効率的な圧縮をサポートしています。複雑なデータ型の大規模なデータセットに適しており、異なるプログラミング言語間で優れた相互運用性を提供します。
-
Parquetファイル:Apache Parquetは、列指向の格納形式で、優れた圧縮と効率的なデータスキップを提供します。複雑なスキーマと多数の列を持つ大規模なデータセットを対象とした分析ワークロードに特に適しています。
-
ORCファイル:Optimized Row Columnar (ORC) 形式は、複雑なスキーマを持つ大規模なデータセットに最適化されたもう一つの列指向の格納形式です。優れた圧縮、データスキップ機能、および分析ワークロードに対する効率的な読み取りを提供します。
これらの形式をさらに詳しく調べるには、Apache HiveやApache Sparkなどのハドープの組み込みツールやライブラリを使用できます。たとえば、Text形式を使用してHiveテーブルを作成するには:
以下のコマンドを実行してHiveシェルを起動します。
hive
Text形式を使用してHiveテーブルを作成します。
CREATE TABLE people (
name STRING,
age INT,
city STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
テーブルにデータを読み込みます。
LOAD DATA LOCAL INPATH '/home/hadoop/data/people.csv' INTO TABLE people;
これにより、指定されたスキーマを持つ people
という名前のHiveテーブルが作成され、データがText形式で保存されます。