

# 4단계: HDFS로 데이터 로드
<a name="EMRforDynamoDB.Tutorial.LoadDataIntoHDFS"></a>

이 단계에서는 데이터 파일을 Hadoop 분산 파일 시스템(HDFS)으로 복사한 후 해당 데이터 파일로 매핑되는 외부 Hive 테이블을 생성합니다.

**샘플 데이터 다운로드**

1. 샘플 데이터 아카이브(`features.zip`)를 다운로드합니다.

   ```
   wget https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/features.zip
   ```

1. 아카이브에서 `features.txt` 파일을 추출합니다.

   ```
   unzip features.zip
   ```

1. `features.txt` 파일의 처음 몇 줄을 확인합니다.

   ```
   head features.txt
   ```

   결과가 다음과 비슷할 것입니다.

   ```
   1535908|Big Run|Stream|WV|38.6370428|-80.8595469|794
   875609|Constable Hook|Cape|NJ|40.657881|-74.0990309|7
   1217998|Gooseberry Island|Island|RI|41.4534361|-71.3253284|10
   26603|Boone Moore Spring|Spring|AZ|34.0895692|-111.410065|3681
   1506738|Missouri Flat|Flat|WA|46.7634987|-117.0346113|2605
   1181348|Minnow Run|Stream|PA|40.0820178|-79.3800349|1558
   1288759|Hunting Creek|Stream|TN|36.343969|-83.8029682|1024
   533060|Big Charles Bayou|Bay|LA|29.6046517|-91.9828654|0
   829689|Greenwood Creek|Stream|NE|41.596086|-103.0499296|3671
   541692|Button Willow Island|Island|LA|31.9579389|-93.0648847|98
   ```

   `features.txt` 파일에는 미국 지명위원회([http://geonames.usgs.gov/domestic/download\$1data.htm](http://geonames.usgs.gov/domestic/download_data.htm))의 데이터의 하위 집합이 포함되어 있습니다. 각 행의 필드는 다음 정보를 표시합니다.
   + 지형 ID(고유 식별자)
   + 이름
   + 클래스(호수, 산림, 강 등)
   + State
   + 위도(각도)
   + 경도(각도)
   + 고도(피트)

1. 명령 프롬프트에 다음 명령을 입력합니다.

   ```
   hive
   ```

   명령 프롬프트 이렇게 바뀝니다. `hive>` 

1. 다음 HiveQL 문을 입력하여 고유 Hive 테이블을 생성합니다.

   ```
   CREATE TABLE hive_features
       (feature_id             BIGINT,
       feature_name            STRING ,
       feature_class           STRING ,
       state_alpha             STRING,
       prim_lat_dec            DOUBLE ,
       prim_long_dec           DOUBLE ,
       elev_in_ft              BIGINT)
       ROW FORMAT DELIMITED
       FIELDS TERMINATED BY '|'
       LINES TERMINATED BY '\n';
   ```

1. 다음 HiveQL 문을 입력하여 테이블에 데이터를 로드합니다.

   ```
   LOAD DATA
   LOCAL
   INPATH './features.txt'
   OVERWRITE
   INTO TABLE hive_features;
   ```

1. 이제 고유 Hive 테이블에 `features.txt` 파일 데이터가 채워졌습니다. 확인하려면 다음 HiveQL 문을 입력합니다.

   ```
   SELECT state_alpha, COUNT(*)
   FROM hive_features
   GROUP BY state_alpha;
   ```

   출력에 주 목록과 각 주의 지형 수가 표시되어야 합니다.

**다음 단계**  
[5단계: DynamoDB로 데이터 복사](EMRforDynamoDB.Tutorial.CopyDataToDDB.md)