하이브의 빅 데이터 BigData는 어떻게 직접에 .gz S3 아마존 파일을 데이터를 읽을 수 있도록?

이 글을 읽는하기 전에 다음 사항을

  • 설치된 JDK
  • 설치된 하둡 (항아리 패키지를 사용할 준비가 필요 기억)
  • 설치된 하이브 (두드러기 데이터베이스, 사용할 준비가 항아리 패키지의 필요성을 기억)
  • 하둡 파일 S3 아마존 연결 구성
  • 구성 하이브 파일은 S3 아마존 연결
  • 하이브 하둡 사이의 연결을 구성합니다

어떻게 S3에서 아마존 데이터를 직접 된 .gz 파일을 읽을 수 있도록 하이브?

우리는 세 부분으로 나누어이 질문을 분해 :

  1. 하이브 S3 아마존 데이터에서 파일을 읽을 수 없습니다?
  2. 하이브는 .gz 파일 데이터를 읽을 수 없습니다?
  3. 하이브에 .gz 파일 데이터의 아마존 S3에서 읽을 수 없습니다?


1. 하이브 S3 아마존 데이터에서 파일을 읽을 수 없습니다?

데이터의 준비 1.1

S3A에 a.txt이 데이터 파일의 준비에 앞서 : // 버킷 / 테스트 / 디렉토리 아래에.

$ s3cmd put a.txt s3://bucket/test/

다음과 같이 a.txt이 읽습니다

Edward,Lear,Baker Street 202
Stephen,Hawking,Baker Street 203
John,Dalton,Baker Street 204
Charles,Darwin,Baker Street 205
Sherlock,Holmes,Baker Street 221B

1.2 외부 테이블을 만듭니다

하이브 CLI에, 그리고 S3A에, 탐색을 외부 테이블을 만들 : // 버킷 / s3aTestBaker / 디렉토리

CREATE EXTERNAL TABLE test
(FirstName STRING, LastName STRING, StreetAddress STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION 's3a://bucket/test/';

표가 자동으로 S3A를 읽습니다 : // bucketms / s3aTestBaker / 파일 디렉토리 (이 디렉토리의 모든 파일을 읽을 수있는 파일, 또는 다음 쿼리 오류입니다해야합니다 구문 분석 파일 형식 없음)

1.3 쿼리 데이터

실시간 S3A : bucketms 아래 // 파일 데이터 / s3aTestBaker는 / 디렉토리는 좋은 외부 테이블을 생성하여 선택

hive>select * from test;
Edward    Lear     Baker Street 202
Stephen   Hawking  Baker Street 203
John      Dalton   Baker Street 204
Charles   Darwin   Baker Street 205
Sherlock  Holmes   Baker Street 221B

2. 하이브는 .gz 파일 데이터를 읽을 수 없습니다?

읽기 현지 시도
문서 위는 .gz해서 a.txt로 압축 된 파일을 로컬 작업

$ gzip a.txt
$ ls
a.txt    a.gz		//已经看到压缩成功了

이 때, 다음 로컬 테이블을 생성

CREATE TABLE test_local
(FirstName STRING, LastName STRING, StreetAddress STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/home/user/a.gz';

3. 하이브는 .gz 파일 데이터의 아마존 S3에서 읽을 수 없습니다?

하자의 시도

게시 된 204 개 원래 기사 · 원 찬양 59 ·은 14 만 + 조회수

추천

출처blog.csdn.net/baidu_34122324/article/details/85166733