Hive 아레나 데이터 마스터

HadoopBeginner
지금 연습하기

소개

데이터가 최고 권력을 행사하는 미래 세계에서, 데이터 조작의 궁극적인 마스터를 가리는 웅장한 토너먼트가 열립니다. 은하계 각지에서 온 참가자들이 데이터 랭글링 (data wrangling) 기술을 선보이기 위해 모이며, 가장 강력한 도전은 Hadoop Hive Shell 영역에 놓여 있습니다.

유망한 데이터 엔지니어인 당신은 이 권위 있는 행사에 당신의 고향 행성을 대표하도록 선택되었습니다. 경기장에 들어서자, 토너먼트의 수석 심판이 당신을 맞이하며 말합니다. "환영합니다, 도전자! 이 결정적인 전투에서 당신은 Hadoop 의 데이터 웨어하우스 시스템과 상호 작용할 수 있게 해주는 강력한 도구인 Hive Shell 의 깊이를 정복해야 합니다. 데이터 쿼리, 조작 및 분석 능력을 시험하는 일련의 작업을 수행하여 당신의 기량을 증명하십시오."

결연한 끄덕임과 함께, 당신은 당신의 기술을 선보이고 당신의 행성에 영광을 가져다주기 위해, 앞에 놓인 도전에 대비합니다.

Hive Shell 접속

이 단계에서는 Hive 데이터 웨어하우스 시스템과 상호 작용할 수 있게 해주는 명령줄 인터페이스인 Hive Shell 에 접속하는 방법을 배우게 됩니다.

Hive Shell 에 접속하려면 다음 단계를 따르세요:

  1. 터미널 창을 실행합니다.
  2. 다음 명령을 실행하여 hadoop 사용자로 전환합니다:
su - hadoop
  1. hadoop 사용자 환경에 들어간 후, 다음 명령을 실행하여 Hive Shell 을 시작합니다:
hive

Hive Shell 프롬프트 (hive>) 가 표시되면 Hive Shell 에 성공적으로 진입했음을 나타냅니다.

다음은 터미널에서 보게 될 내용의 예시입니다:

[hadoop@localhost ~]$ hive
Hive Session ID = 2bd4d0ce-9a9a-4c4e-a8f4-c5a6c7b9a8b9

Logging initialized using configuration in file:/etc/hive/conf.dist/hive-log4j2.properties Async: true
Hive Session Value Manager Service

hive>

이제 Hive Shell 내에서 Hive 쿼리 및 명령을 실행할 준비가 되었습니다.

데이터베이스 및 테이블 생성

이 단계에서는 Hive Shell 내에서 새로운 데이터베이스와 테이블을 생성하는 방법을 배우게 됩니다.

  1. 먼저, Hive Shell 에서 다음 명령을 실행하여 tournament_db라는 새 데이터베이스를 생성합니다:
CREATE DATABASE tournament_db;
  1. 다음으로, 새로 생성된 데이터베이스로 전환합니다:
USE tournament_db;
  1. 다음 스키마를 사용하여 contestants라는 새 테이블을 생성합니다:
CREATE TABLE contestants (
  id INT,
  name STRING,
  planet STRING,
  score INT
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ',';

이 테이블은 ID, 이름, 고향 행성 및 점수를 포함하여 토너먼트 참가자에 대한 정보를 저장합니다.

  1. 테이블이 성공적으로 생성되었는지 확인하려면 다음 명령을 실행하여 테이블 스키마를 설명할 수 있습니다:
DESCRIBE contestants;

Hive Shell 출력에 테이블 스키마가 표시되어야 합니다.

다음은 보게 될 내용의 예시입니다:

hive> DESCRIBE contestants;
OK
id                   int                 None
name                 string               None
planet               string               None
score                int                  None

테이블에 데이터 로드

contestants 테이블을 생성했으므로 이제 데이터를 채울 차례입니다.

  1. /home/hadoop/ 디렉토리에 다음 내용으로 contestants.csv라는 새 파일을 생성합니다:
1,Zara,Andromeda,85
2,Brock,Celestia,92
3,Kira,Nebula,78
4,Tara,Vega,96
5,Zion,Altair,83
  1. 다음으로, 새로 생성된 데이터베이스로 전환합니다:
USE tournament_db;
  1. Hive Shell 에서 다음 명령을 사용하여 contestants.csv 파일의 데이터를 contestants 테이블에 로드합니다:
LOAD DATA LOCAL INPATH '/home/hadoop/contestants.csv' OVERWRITE INTO TABLE contestants;

이 명령은 로컬 파일 contestants.csv의 데이터를 contestants 테이블에 로드하여 기존 데이터를 덮어씁니다.

  1. 데이터가 올바르게 로드되었는지 확인하려면 SELECT 쿼리를 실행할 수 있습니다:
SELECT * FROM contestants;

다음 출력을 보게 됩니다:

hive> SELECT * FROM contestants;
OK
1 Zara Andromeda 85
2 Brock Celestia 92
3 Kira Nebula 78
4 Tara Vega 96
5 Zion Altair 83

데이터 쿼리

contestants 테이블에 데이터가 로드되었으므로 이제 다양한 쿼리를 수행하여 데이터를 분석하고 조작할 수 있습니다.

  1. 'Andromeda' 행성의 모든 참가자의 이름과 점수를 표시하려면 다음 쿼리를 실행합니다:
SELECT name, score FROM contestants WHERE planet = 'Andromeda';

다음 출력을 보게 됩니다:

hive> SELECT name, score FROM contestants WHERE planet = 'Andromeda';
OK
Zara 85
  1. 모든 참가자의 평균 점수를 계산하려면 다음 쿼리를 실행합니다:
SELECT AVG(score) AS average_score FROM contestants;

다음 출력을 보게 됩니다:

hive> SELECT AVG(score) AS average_score FROM contestants;
OK
86.8
  1. 최고 점수를 받은 참가자를 찾으려면 다음 쿼리를 실행합니다:
SELECT name, MAX(score) AS highest_score FROM contestants GROUP BY name;

다음 출력을 보게 됩니다:

hive> SELECT name, MAX(score) AS highest_score FROM contestants GROUP BY name;
OK
Brock   92
Kira    78
Tara    96
Zara    85
Zion    83

Hive 에서 제공하는 다양한 절과 함수를 사용하여 더 많은 쿼리를 실험하고 contestants 테이블의 데이터를 자유롭게 탐색하십시오.

요약

이 랩에서는 데이터 조작 및 분석을 위한 강력한 도구인 Hadoop Hive Shell 의 세계로 여정을 시작했습니다. 일련의 몰입형 챌린지를 통해 Hive Shell 에 액세스하고, 데이터베이스와 테이블을 생성하고, 데이터를 로드하고, 다양한 절과 함수를 사용하여 데이터를 쿼리하는 기술을 익혔습니다.

미래 지향적인 토너먼트에서 영감을 얻은 이 랩의 디자인은 참여적이고 동기 부여적인 학습 경험을 만들도록 설계되었습니다. 고향 행성을 대표하는 참가자의 역할을 맡아 각 챌린지에서 탁월한 성과를 거두고, 기술을 연마하며 데이터 랭글링 (data wrangling) 실력을 입증하도록 유도되었습니다.

랩 전체에서 명령을 실행하고, 쿼리를 작성하고, 결과를 분석해야 하는 실습 과제를 접했습니다. 코드 예제와 자세한 설명이 함께 제공되는 단계별 지침은 원활한 학습 곡선을 보장하여 지식과 자신감을 점진적으로 쌓을 수 있도록 했습니다.

각 단계의 끝에 체커 스크립트 (checker scripts) 를 포함하여 자기 평가의 기회를 제공하여 이해도를 검증하고 작업을 성공적으로 완료했는지 확인할 수 있었습니다. 이러한 체커는 학습을 강화하고 올바른 방향으로 나아가고 있는지 확인하는 데 중요한 역할을 했습니다.

전반적으로 이 랩은 Hadoop Hive Shell 을 사용하는 데 필요한 필수 기술을 제공했을 뿐만 아니라, 참여적이고 몰입적인 방식으로 데이터 조작 및 분석의 강력함을 인식하도록 했습니다.