복붙노트

[HADOOP] 왜 사용자가 외부 하이브 테이블의 위치에 대한 쓰기 권한이 필요합니까?

HADOOP

왜 사용자가 외부 하이브 테이블의 위치에 대한 쓰기 권한이 필요합니까?

Hive에서는 Managed와 External의 두 가지 테이블을 만들 수 있습니다.

관리되는 테이블의 경우 데이터를 소유하므로 테이블을 삭제하면 데이터가 삭제됩니다.

외부 테이블의 경우 데이터 소유권이 없으므로 이러한 테이블을 삭제할 때 기본 데이터는 삭제되지 않습니다. 메타 데이터 만 삭제됩니다.

최근에는 최근에 HDFS에서 쓰기 (수정) 권한이없는 위치에 외부 테이블을 만들 수 없다는 사실을 확인했습니다. 나는 이것을 완전히 이해하지 못한다.

유스 케이스 : 당신이 대량 생산하는 데이터가 읽기 쉽고 읽기 쉽다는 것은 꽤 일반적입니다. 따라서 Hive를 통해 이러한 데이터를 변환하려면이 거대한 데이터를 쓰기 권한이있는 위치로 복사해야합니까?

도와주세요.

해결법

  1. ==============================

    1.외부 데이터를 삭제해도 데이터가 삭제되지는 않지만 사실이더라도 외부 테이블이 읽기 전용임을 의미하지는 않습니다. 예를 들어, 외부 테이블에서 INSERT OVERWRITE를 수행 할 수 있어야합니다.

    외부 데이터를 삭제해도 데이터가 삭제되지는 않지만 사실이더라도 외부 테이블이 읽기 전용임을 의미하지는 않습니다. 예를 들어, 외부 테이블에서 INSERT OVERWRITE를 수행 할 수 있어야합니다.

    즉, 읽기 액세스 권한이있을 때만 (내부) 테이블을 사용할 수 있으므로 이것이 외부 테이블에서도 마찬가지라고 생각합니다. 쓰기 권한이있는 계정으로 테이블을 만든 다음 일반 계정으로 사용하십시오.

  2. from https://stackoverflow.com/questions/37538487/why-does-the-user-need-write-permission-on-the-location-of-external-hive-table by cc-by-sa and MIT license