Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
Cloudera CDH/CDP [CDP7.1.7, Replication]Encryption Zone내 HDFS파일을 비Encryption Zone으로 HDFS Replication시 User hdfs가 아닌 hadoop으로 수행하는 방법
일반적으로 Replication]Encryption Zone내 HDFS파일을 비Encryption Zone으로 혹은 비Encryption Zone에서 비Encryption Zone으로 HDFS Replication 수행시 User hdfs를 사용하게 된다.
그래야 권한등을 보존하여 Replication을 수행할 수 있다.
(참고적으로 Hive External Table Replication은 User hdfs로 수행해도 정상 수행되며 HDFS Replication만 문제가 발생한다)
하지만 Replication]Encryption Zone내 HDFS파일을 비Encryption Zone으로 HDFS Replication을 수행시 User hdfs가 Ranger KMS with Key Trustee Server의 Hadoop KMS Blacklist Decrypt EEK(hadoop.kms.blacklist.DECRYPT_EEK)항목에 등록되어 있어 Replication과정에서 User:hdfs not allowed to do "DECRYPT_EEK' on 'enc_key'라는 오류가 발생하면서 실패한다.
Hadoop KMS Blacklist Decrypt EEK(hadoop.kms.blacklist.DECRYPT_EEK)에서 hdfs를 지우면 되겠지만 이는 보안에 취약하게 만들 수 있다.
그래서 User hdfs대신 hadoop으로 동일한 작업을 수행할 수 있으나 Replication Policy에서 다음과 같이 설정해줘야 한다.
(다른 설정은 일반적인 설정과 같음)
General -> Run As Username : hadoop
General -> Run on Peer as Username : 빈칸
Advanced -> Error Handling -> Skip Checksum Checks : uncheck
Advanced -> Error Handling -> Skip Listing Checksum Checks : uncheck
와 같이 설정하고 HDFS Replication을 다시 수행하면 정상적으로 수행된다.
다만, 권한을 유지 하지 못하고 User등이 hadoop으로 변경되어 checksum을 보장할 수 없다는 단정이 있다.