Hadoop 을 활용한 우주 자원 최적화

HadoopBeginner
지금 연습하기

소개

은하계 무역 기지에 오신 것을 환영합니다. 이곳은 은하계 전역의 상인과 여행객들이 상품과 서비스를 교환하기 위해 모이는 번화한 허브입니다. 숙련된 우주 정거장 정비공으로서, 귀하는 정거장의 시스템을 원활하게 유지하기 위해 높은 수요를 받고 있습니다. 오늘, 귀하는 사용 패턴을 기반으로 데이터를 정렬하여 정거장의 자원 할당을 분석하고 최적화하는 임무를 맡았습니다.

귀하의 목표는 대규모 데이터 세트를 효율적으로 처리하고 정렬할 수 있는 Hadoop 기반 솔루션을 개발하여, 정거장의 자원이 다양한 방문객들의 끊임없이 변화하는 요구 사항을 충족할 수 있도록 효율적으로 할당되도록 하는 것입니다.

환경 설정

이 단계에서는 Hadoop 프로젝트를 위한 환경을 설정하고 샘플 데이터 세트를 생성합니다.

  1. 터미널을 열고 다음 명령을 실행하여 hadoop 사용자로 전환합니다.
su - hadoop
  1. /home/hadoop 디렉토리에 sorting_lab이라는 새 디렉토리를 생성합니다.
mkdir /home/hadoop/sorting_lab
  1. sorting_lab 디렉토리로 이동합니다.
cd /home/hadoop/sorting_lab
  1. 다음 명령을 실행하여 샘플 데이터 세트를 생성합니다.
echo -e "apple\t5\nbanana\t3\norange\t7\ngrape\t2\nstrawberry\t6" > fruit_sales.txt

이 명령은 다음과 같은 내용의 fruit_sales.txt 파일을 생성합니다.

apple   5
banana  3
orange  7
grape   2
strawberry  6

파일의 각 줄은 탭 문자로 구분된 과일과 판매량을 나타냅니다.

Hive 에 데이터 로드

이 단계에서는 Hive 테이블을 생성하고 샘플 데이터 세트를 로드합니다.

  1. 다음 명령을 실행하여 Hive 셸을 시작합니다.
hive
  1. sorting_db라는 새 데이터베이스를 생성합니다.
CREATE DATABASE sorting_db;
  1. sorting_db 데이터베이스를 사용합니다.
USE sorting_db;
  1. fruit (string) 및 count (int) 의 두 열을 가진 fruit_sales라는 새 테이블을 생성합니다.
CREATE TABLE fruit_sales (fruit STRING, count INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
  1. fruit_sales.txt 파일을 fruit_sales 테이블에 로드합니다.
LOAD DATA LOCAL INPATH '/home/hadoop/sorting_lab/fruit_sales.txt' OVERWRITE INTO TABLE fruit_sales;
  1. SELECT 쿼리를 실행하여 데이터가 올바르게 로드되었는지 확인합니다.
SELECT * FROM fruit_sales;

다음과 같이 출력되어야 합니다.

apple   5
banana  3
orange  7
grape   2
strawberry  6
  1. 다음 명령을 실행하여 Hive 셸을 종료합니다.
quit;

사용량별 데이터 정렬

이 단계에서는 Hive 의 ORDER BY 절을 사용하여 fruit_sales 테이블을 count 열을 기준으로 내림차순으로 정렬합니다.

  1. 다음 명령을 실행하여 Hive 셸을 시작합니다.
hive
  1. sorting_db 데이터베이스를 사용합니다.
USE sorting_db;
  1. count 열을 기준으로 fruit_sales 테이블을 내림차순으로 정렬하려면 다음 쿼리를 실행합니다.
CREATE TABLE result AS
SELECT * FROM fruit_sales ORDER BY count DESC;
SELECT * FROM result;

다음과 같이 출력되어야 합니다.

orange  7
strawberry  6
apple   5
banana  3
grape   2
  1. 다음 명령을 실행하여 Hive 셸을 종료합니다.
quit;

요약

이 랩에서는 Hadoop Hive 의 "사용량별 정렬" 기능을 살펴보았습니다. 환경을 설정하고 샘플 데이터 세트를 생성하는 것으로 시작했습니다. 그런 다음, 데이터를 Hive 테이블에 로드하고 ORDER BY 절을 사용하여 특정 열을 기준으로 테이블을 정렬하는 방법을 배웠습니다.

이 랩은 Hive 를 사용한 실습 경험을 제공했으며 사용 패턴을 기반으로 데이터를 정렬하는 방법을 보여주었습니다. 이 기술을 숙달함으로써 은하 간 무역 기지와 같은 다양한 시나리오에서 리소스 할당을 효율적으로 분석하고 최적화할 수 있습니다.

랩 전체에서 각 단계의 성공적인 완료를 확인하기 위해 체커 (checkers) 를 사용하여, 향후 유사한 과제를 해결하는 데 필요한 지식과 실질적인 경험을 얻었는지 확인했습니다.