Hadoop 을 이용한 화성 데이터 탐색

HadoopBeginner
지금 연습하기

소개

2150 년, 지구의 자원은 고갈되었고, 인류는 화성에 번성하는 대도시, 즉 Martropolis 를 건설했습니다. 환경 보호관으로서, 당신의 임무는 자원 활용을 분석하고 최적화하여 이 미래 도시의 지속 가능성을 보장하는 것입니다. 당신의 주요 책임 중 하나는 Hadoop 과 Hive 의 강력한 기능을 활용하여 방대한 양의 환경 데이터를 처리하고 분석하는 것이며, 이는 당신의 의사 결정 과정을 안내할 것입니다.

당신의 목표는 Hive 데이터베이스를 탐색하고, 구조를 조사하며, 포함된 데이터에 대한 통찰력을 얻는 것입니다. Hive 에서 테이블을 설명하는 기술을 마스터함으로써, 데이터 내에 숨겨진 비밀을 풀고 Martropolis 의 미래를 형성하고 섬세한 생태계를 보호하는 데 도움이 되는 정보에 입각한 결정을 내릴 수 있게 될 것입니다.

Hive 에 연결하고 사용 가능한 데이터베이스 목록 보기

이 단계에서는 Hive 환경에 연결하고 사용 가능한 데이터베이스를 나열하는 방법을 배우게 됩니다.

먼저, 터미널에서 다음 명령을 실행하여 hadoop 사용자로 로그인했는지 확인합니다.

su - hadoop

이제 다음 명령을 실행하여 Hive 쉘을 시작합니다.

hive

Hive 쉘에 들어가면 SHOW DATABASES 명령을 사용하여 사용 가능한 모든 데이터베이스를 나열할 수 있습니다.

SHOW DATABASES;

이 명령은 기본 데이터베이스를 포함하여 데이터베이스 목록을 표시합니다. 예시 출력:

hive> SHOW DATABASES;
OK
default
martropolis
Time taken: 0.528 seconds, Fetched: 2 row(s)

'martropolis' 데이터베이스로 전환

이 단계에서는 당신의 임무와 관련된 테이블이 포함된 martropolis 데이터베이스로 전환합니다.

USE martropolis;

이 명령을 실행하면 martropolis 데이터베이스 내에서 작업하게 됩니다.

팁: martropolis는 이 랩을 위한 샘플 데이터베이스로 시스템에 의해 자동으로 생성되었습니다.

'martropolis' 데이터베이스의 테이블 목록 보기

이제 martropolis 데이터베이스에 있으므로 SHOW TABLES 명령을 사용하여 포함된 모든 테이블을 나열할 수 있습니다.

SHOW TABLES;

이 명령은 martropolis 데이터베이스에서 사용 가능한 테이블 목록을 표시합니다. 예시 출력:

hive> SHOW TABLES;
OK
sensor_data
Time taken: 0.028 seconds, Fetched: 1 row(s)

테이블 구조 설명

테이블의 구조를 이해하려면 테이블 이름 뒤에 DESCRIBE 명령을 사용하면 됩니다.

DESCRIBE sensor_data;

이 명령은 테이블의 열 이름, 데이터 유형 및 추가 메타데이터를 포함하여 테이블의 열에 대한 자세한 정보를 제공합니다. 예시 출력:

hive> DESCRIBE sensor_data;
OK
sensor_id               int
sensor_name             string
reading                 double
dt                      string

## Partition Information
## col_name              data_type               comment
dt                      string
Time taken: 0.154 seconds, Fetched: 8 row(s)

테이블 속성 탐색

테이블 구조 외에도 DESCRIBE EXTENDED 명령을 사용하여 테이블의 속성을 탐색할 수 있습니다.

DESCRIBE EXTENDED sensor_data;

이 명령은 테이블 유형, 입력 및 출력 형식, 위치 및 기타 관련 메타데이터와 같은 테이블 속성을 포함하여 테이블에 대한 더 자세한 정보를 제공합니다. 예시 출력:

hive> DESCRIBE EXTENDED sensor_data;
OK
sensor_id               int
sensor_name             string
reading                 double
dt                      string

## Partition Information
## col_name              data_type               comment
dt                      string

Detailed Table Information      Table(tableName:sensor_data, dbName:martropolis, owner:hadoop, createTime:1711106250, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:sensor_id, type:int, comment:null), FieldSchema(name:sensor_name, type:string, comment:null), FieldSchema(name:reading, type:double, comment:null), FieldSchema(name:dt, type:string, comment:null)], location:hdfs://localhost:9000/user/hive/warehouse/martropolis.db/sensor_data, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}, skewedInfo:SkewedInfo(skewedColNames:[], skewedColValues:[], skewedColValueLocationMaps:{}), storedAsSubDirectories:false), partitionKeys:[FieldSchema(name:dt, type:string, comment:null)], parameters:{totalSize=49, numRows=2, rawDataSize=47, COLUMN_STATS_ACCURATE={\"BASIC_STATS\":\"true\"}, numFiles=1, numPartitions=1, transient_lastDdlTime=1711106250, bucketing_version=2}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE, rewriteEnabled:false, catName:hive, ownerType:USER)
Time taken: 0.367 seconds, Fetched: 10 row(s)

테이블 파티션 분석 (선택 사항)

테이블이 파티션되어 있는 경우, SHOW PARTITIONS 명령을 사용하여 특정 테이블의 파티션을 볼 수 있습니다.

SHOW PARTITIONS sensor_data;

이 명령은 지정된 테이블의 파티션 목록과 해당 파티션 값을 표시합니다. 예시 출력:

hive> SHOW PARTITIONS sensor_data;
OK
dt=2023-05-01
Time taken: 0.099 seconds, Fetched: 1 row(s)

요약

이 랩에서는 Hive 환경을 탐색하고, 데이터베이스 간을 전환하며, 테이블을 나열하고, 테이블의 구조와 속성을 설명하는 방법을 배웠습니다. 이러한 기본적인 기술을 습득함으로써 Martropolis 의 환경 데이터 내에 숨겨진 귀중한 통찰력을 얻기 위한 첫 번째 단계를 내디뎠습니다.

실습을 통해 SHOW DATABASES, USE, SHOW TABLES, DESCRIBE, DESCRIBE EXTENDED, 그리고 SHOW PARTITIONS 명령에 대한 더 깊은 이해를 얻었습니다. 이러한 명령은 Hive 에서 데이터의 구성을 탐색하고 이해하는 데 필수적인 도구이며, Martropolis 의 미래를 형성하고 섬세한 생태계를 보호하는 데 도움이 되는 정보에 입각한 결정을 내릴 수 있도록 합니다.