

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 예제: HCatalog 테이블 생성 및 Pig를 사용하여 테이블에 쓰기
<a name="emr-hcatalog-pig"></a>

Amazon S3에서 데이터 소스를 사용하는 HCatStorer를 통해 HCatalog 테이블을 생성하고 Apache Pig를 사용하여 테이블에 쓸 수 있습니다. HCatalog를 사용하려면 직접 쓰기를 비활성화해야 합니다. 그렇지 않으면 작업이 자동으로 실패합니다. `mapred.output.direct.NativeS3FileSystem ` 분류를 사용하거나 Grunt 셸에서 수동으로 `mapred.output.direct.EmrFileSystem`및 `false` 구성을 모두 `mapred-site`로 설정합니다. 다음 예제에서는 HCat CLI를 사용하여 생성된 테이블을 보여 준 다음, Amazon S3의 샘플 데이터 파일에서 테이블을 채우기 위해 Grunt 쉘에서 실행되는 명령을 보여줍니다.

이 예제를 실행하려면 [SSH를 사용하여 프라이머리 노드에 연결](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html)합니다.

다음 콘텐츠가 포함된 HCatalog 스크립트 파일 `wikicount.q`를 생성합니다. 이 파일은 `wikicount`라는 이름의 HCatalog 테이블을 생성합니다.

```
CREATE EXTERNAL TABLE IF NOT EXISTS wikicount( 
col1 string, 
col2 bigint 
) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' 
STORED AS ORC 
LOCATION 's3://amzn-s3-demo-bucket/hcat/wikicount';
```

HCat CLI 명령을 사용하여 파일에서 스크립트를 실행합니다.

```
hcat -f wikicount.q
```

다음에는 `-useHCatalog` 옵션을 선택하여 Grunt 셸을 시작하고, 직접 쓰기를 비활성화하도록 구성을 설정한 다음, S3 위치에서 데이터를 로드하고, 결과를 wikicount 테이블에 기록합니다.

```
pig -useHCatalog
SET mapred.output.direct.NativeS3FileSystem false; 
SET mapred.output.direct.EmrFileSystem false; 
A = LOAD 's3://support.elasticmapreduce/training/datasets/wikistats_tiny/' USING PigStorage(' ') AS (Site:chararray, page:chararray, views:int, total_bytes:long); 
B = GROUP A BY Site; 
C = FOREACH B GENERATE group as col1, COUNT(A) as col2; 
STORE C INTO 'wikicount' USING org.apache.hive.hcatalog.pig.HCatStorer();
```