코스믹 Hive 통합 여정

HadoopBeginner
지금 연습하기

소개

머나먼 은하계에는 우주의 신비를 연구하는 외계 연구 기지가 존재합니다. 수석 연구원 중 한 명인 외계생물학자 Zara 는 다양한 천체에서 수집된 방대한 양의 데이터를 분석하는 임무를 맡았습니다. 그러나 데이터의 엄청난 양과 복잡성으로 인해 기존 방법으로는 가치 있는 통찰력을 처리하고 추출하는 데 어려움이 있었습니다.

Zara 의 목표는 강력한 데이터 웨어하우징 도구인 Hadoop Hive 를 활용하여 천문 데이터를 효율적으로 저장, 처리 및 분석하는 것입니다. 기지의 Hadoop 클러스터에 Hive 를 설정함으로써, 그녀는 천체의 기원과 진화에 대한 단서를 제공하고 궁극적으로 우주에 대한 이해를 높일 수 있는 숨겨진 패턴과 관계를 밝혀내기를 희망합니다.

Hive 설치

이 단계에서는 SQL 과 유사한 쿼리를 사용하여 천문 데이터를 처리하고 분석할 수 있도록 Apache Hive 를 Hadoop 클러스터에 설치합니다.

먼저, 터미널에서 다음 명령을 실행하여 hadoop 사용자로 전환합니다.

su - hadoop

그런 다음, 공식 웹사이트에서 최신 안정 버전의 Apache Hive 를 다운로드합니다.

wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz

다운로드한 아카이브를 압축 해제합니다.

tar -xzf apache-hive-3.1.3-bin.tar.gz

다음으로, ~/.bashrc 파일에 다음 줄을 추가하여 HIVE_HOME 환경 변수를 설정합니다.

echo 'export HIVE_HOME=/home/hadoop/apache-hive-3.1.3-bin' >> ~/.bashrc
export HIVE_HOME=/home/hadoop/apache-hive-3.1.3-bin

다음 내용으로 $HIVE_HOME/conf 디렉토리에 hive-site.xml 파일을 생성하여 Hive 가 Hadoop 클러스터와 함께 작동하도록 구성합니다.

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:derby:;databaseName=/home/hadoop/metastore_db;create=true</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>org.apache.derby.jdbc.EmbeddedDriver</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
  </property>
</configuration>

이 구성 파일은 Hive 테이블 및 파티션에 대한 메타데이터를 저장하는 Hive 메타스토어를 설정합니다.

마지막으로, 다음 명령을 사용하여 메타베이스를 초기화합니다.

$HIVE_HOME/bin/schematool -dbType derby -initSchema

Hive 테이블 생성

이 단계에서는 다양한 천체에서 수집된 천문 데이터를 저장하기 위해 Hive 테이블을 생성합니다.

  1. 다음 명령을 실행하여 Hive 셸을 시작합니다.
$HIVE_HOME/bin/hive
  1. astronomy라는 새 데이터베이스를 생성합니다.
CREATE DATABASE astronomy;
  1. astronomy 데이터베이스를 사용합니다.
USE astronomy;
  1. 다음 스키마를 사용하여 celestial_bodies라는 새 테이블을 생성합니다.
CREATE TABLE celestial_bodies (
  id INT,
  name STRING,
  type STRING,
  distance DOUBLE,
  mass DOUBLE,
  radius DOUBLE
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

이 테이블은 ID, 이름, 유형 (예: 별, 행성, 소행성), 지구로부터의 거리, 질량 및 반경을 포함하여 다양한 천체에 대한 정보를 저장합니다.

  1. 로컬 파일에서 celestial_bodies 테이블에 샘플 데이터를 로드합니다.
LOAD DATA LOCAL INPATH '/home/hadoop/celestial_data.csv' OVERWRITE INTO TABLE celestial_bodies;

팁: celestial_data.csv라는 시뮬레이션 파일이 이미 /home/hadoop/ 경로에 존재합니다.

  1. Hive 셸을 종료합니다.
EXIT;

Hive 테이블 쿼리

이 단계에서는 천문 데이터를 분석하기 위해 celestial_bodies 테이블에 대해 SQL 과 유사한 쿼리를 실행합니다.

  1. Hive 셸이 아직 실행 중이지 않은 경우 시작합니다.
$HIVE_HOME/bin/hive
  1. astronomy 데이터베이스를 사용합니다.
USE astronomy;
  1. 테이블에 있는 천체의 수를 구합니다.
SELECT COUNT(*) FROM celestial_bodies;
  1. 질량이 1.0 보다 큰 천체를 찾습니다.
SELECT name, type, mass FROM celestial_bodies WHERE mass > 1.0;
  1. 지구로부터 행성의 평균 거리를 구합니다.
SELECT AVG(distance) FROM celestial_bodies WHERE type = 'Planet';
  1. Hive 셸을 종료합니다.
EXIT;

분석 요구 사항에 따라 더 많은 쿼리를 자유롭게 실험해 보십시오.

요약

이 랩에서는 Hadoop 클러스터에 Apache Hive 를 설정하고 이를 사용하여 천문 데이터를 저장하고 분석하는 과정을 살펴보았습니다. Hive 를 설치하고, Hive 데이터베이스와 테이블을 생성하고, 데이터를 테이블에 로드하고, SQL 과 유사한 쿼리를 실행하여 데이터에서 가치 있는 통찰력을 추출하는 방법을 배웠습니다.

Hive 의 강력한 기능을 활용하여 외계 생물학자 Zara 는 이제 외계 연구 기지에서 수집한 방대한 양의 천체 데이터를 효율적으로 처리하고 분석할 수 있습니다. 이 데이터에 대해 복잡한 쿼리와 집계를 수행하는 능력은 숨겨진 패턴과 관계를 발견할 수 있게 해주며, 이는 천체의 기원과 진화에 대한 획기적인 발견으로 이어질 수 있습니다.

이 랩은 Hive 설정 및 데이터 분석에 대한 실질적인 경험을 제공했을 뿐만 아니라 대규모 데이터 처리 작업을 처리하는 Hadoop 생태계의 다재다능함과 확장성을 강조했습니다. 우리가 계속해서 우주의 미스터리를 탐구함에 따라 Hive 와 같은 도구는 광대한 천체 데이터 내에 숨겨진 비밀을 밝히는 데 중요한 역할을 할 것입니다.