[Oracle Cloud] Presto에서 Object Storage 데이터 탐색

5470 단어 ocioraclecloudPresto

소개



Presto에서 OCI Object Storage로 참조하는 절차를 확인합니다. Object Storage에는 S3 호환 API가 있으며 이를 사용하여 액세스할 수 있습니다.

Hive/Hadoop 이나 Hive Metastore(MySQL) 의 환경은 이 기사 로 구축하고 있습니다.
Presto 의 환경은 이 기사 로 구축하고 있습니다.

Customer Secret Keys 생성



Object Storage에 S3 API를 사용하여 액세스하려면 OCI IAM 사용자에서 Customer Secret Key를 생성해야 합니다. Customer Secret Key를 생성하면 Access Key와 Secret Key가 생성됩니다. 이 두 가지 Key가 필요합니다.

OCI Console의 오른쪽 상단에 있는 사용자 이름을 선택하여 사용자 세부 정보 화면으로 이동합니다.



Customer Secret Keys 메뉴로 이동하여 Generate Secret Key를 누릅니다.



적절하게 NAME을 지정하고 Generate Secret Key를 누릅니다.
  • NAME : s3 compat



  • 키가 표시됩니다. 이것은 Secret Key입니다 (이미지의 것은 현재 비활성화되어 있습니다)



    화면을 되돌리면 Access Key가 표시됩니다.



    Object Storage Endpoint



    OCI에서 다음 두 가지 정보를 확인하면 Endpoint를 파악할 수 있습니다.
  • Region Identifier
  • Bucket 의 Namespace

  • Region Identifier는 다음 문서에 작성됩니다.



    Bucket의 Namespace는 OCI Console에서 세부 정보를 열면 볼 수 있습니다.



    이것을 다음 형식에 적용하면 S3 호환 API의 Endpoint를 알 수 있습니다.
    https://<Namespace>.compat.objectstorage.<Region Identifier>.oraclecloud.com
    

    Hive Connector 설정



    Hive Connector를 설정하고 Hive Metastore 및 OCI Object Storage(S3 호환 API)를 참조하도록 설정합니다.
  • hive.s3.use-instance-credentials : IAM Role을 사용할 수 없기 때문에 false
  • hive.s3.aws-access-key : 67f023eb4fe062a937922730caf4d6485c078bea
  • hive.s3.aws-secret-key : tDMuNoytFCLE4ol25lW159x8582oPO2s+gBuSexnrHa=
  • hive.s3.endpoint : https://nryjxkqe0mhq.compat.objectstorage.ap-tokyo-1.oraclecloud.com
  • hive.s3.path-style-access : true
  • hive.s3.ssl.enabled : false
  • cat <<'EOF' > ~/presto/presto-server-0.227/etc/catalog/hive.properties
    connector.name=hive-hadoop2
    hive.metastore.uri=thrift://10.0.0.12:9083
    hive.s3.use-instance-credentials=false
    hive.s3.aws-access-key=67f023eb4fe062a937922730caf4d6485c078bea
    hive.s3.aws-secret-key=tDMuNoytFCLE4ol25lW159x8582oPO2s+gBuSexnrHa=
    hive.s3.endpoint=https://nryjxkqe0mhq.compat.objectstorage.ap-tokyo-1.oraclecloud.com
    hive.s3.path-style-access=true
    EOF
    

    Hive 측에서 Metastore 용 서비스 시작



    Hive를 구성하는 서버에 SSH 로그인하여 Metastore에 연결하는 서비스를 시작합니다. 이른바, 리모트 메타스토어라고 불리는 접속 방식인 것 같습니다.

    전경에서 시작
    $HIVE_HOME/bin/hive --service metastore
    

    백그라운드 시작
    nohup $HIVE_HOME/bin/hive --service metastore &
    

    Hive 측에서 External Table 지정



    다음 URL에 쓰여진 내용을 이미 Hive측에서 실시하고 있습니다. 실시하지 않는 경우는 실시합니다.

    h tps:// 퀵했다. 작은 m/스기도 운 t/있어 MS/80그림 2b201C43856f74166#비베%화 81% A7-O BJ CT-S Trage % 그림 3 % 81 % A B % 그림 6 % 8 그림 % A 5 % 그림 7 % B6 % 9 A

    동작 확인



    이제 Presto를 사용하여 S3 호환 Object Storage에 액세스해 봅니다. 먼저 presto cli를 시작합니다.
    ~/presto/presto-server-0.227/bin/presto --server localhost:8080 --catalog hive
    

    use 에서 hive.<データベース名> 를 지정합니다.
    use hive.sugi;
    

    Hive에서 미리 정의된 외부 테이블 정의를 사용하여 선택합니다.
    select * from test1 limit 20;
    

    실행 예
    다음과 같이 Object Storage의 데이터를 볼 수 있습니다.
    presto:sugi> select * from test1 limit 20;
     rank |   name   
    ------+----------
        1 | satou
        2 | suzuki
        3 | tanaka
        4 | sugiyama
        5 | kato
    (5 rows)
    
    Query 20200502_161051_00012_y7m8a, FINISHED, 1 node
    Splits: 19 total, 19 done (100.00%)
    0:00 [5 rows, 71B] [13 rows/s, 196B/s]
    
    presto:sugi>
    

    참고 URL

    좋은 웹페이지 즐겨찾기