Hadoop 저장 형식 탐색
이 단계에서는 Hadoop 저장 형식 (storage formats) 의 영역을 탐구하고, 다양한 데이터 유형과 워크로드에 대한 강점, 약점 및 적합성을 탐색합니다.
먼저, 터미널에서 다음 명령을 실행하여 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
이제 다양한 저장 형식과 사용 사례를 살펴보겠습니다.
-
텍스트 파일 (Text Files): 텍스트 파일은 가장 단순하고 사람이 읽기 쉬운 형식입니다. 작은 데이터 세트와 프로토타입 제작에는 적합하지만, 압축 및 스키마 적용이 부족하여 대규모 데이터 세트에는 비효율적일 수 있습니다.
-
시퀀스 파일 (Sequence Files): 시퀀스 파일은 바이너리 키 - 값 쌍으로 구성된 플랫 파일입니다. 압축 가능하고 분할 가능하므로 비교적 작은 레코드를 가진 대규모 데이터 세트에 효율적입니다. 그러나 스키마 적용이 부족하고 복잡한 데이터 유형으로 작업하기 어려울 수 있습니다.
-
Avro 파일 (Avro Files): Apache Avro 는 스키마 적용 및 효율적인 압축을 지원하는 행 기반 데이터 직렬화 형식입니다. 복잡한 데이터 유형을 가진 대규모 데이터 세트에 적합하며, 다양한 프로그래밍 언어 간의 뛰어난 상호 운용성을 제공합니다.
-
Parquet 파일 (Parquet Files): Apache Parquet 은 뛰어난 압축과 효율적인 데이터 건너뛰기를 제공하는 열 지향 저장 형식입니다. 복잡한 스키마와 많은 열을 가진 대규모 데이터 세트를 포함하는 분석 워크로드에 특히 적합합니다.
-
ORC 파일 (ORC Files): ORC(Optimized Row Columnar) 형식은 복잡한 스키마를 가진 대규모 데이터 세트에 최적화된 또 다른 열 지향 저장 형식입니다. 뛰어난 압축, 데이터 건너뛰기 기능 및 분석 워크로드에 대한 효율적인 읽기를 제공합니다.
이러한 형식을 더 자세히 탐색하려면 Hadoop 의 내장 도구 또는 Apache Hive 또는 Apache Spark 와 같은 라이브러리를 사용할 수 있습니다. 예를 들어, 텍스트 형식을 사용하여 Hive 테이블을 만들려면 다음을 수행합니다.
다음 명령을 실행하여 Hive 셸을 시작합니다.
hive
텍스트 형식을 사용하여 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 테이블이 생성되고 데이터가 텍스트 형식으로 저장됩니다.