복붙노트

[HADOOP] 비보안 YARN 클러스터에서 Spark를 실행할 때 보안 하이브에 액세스하십시오.

HADOOP

비보안 YARN 클러스터에서 Spark를 실행할 때 보안 하이브에 액세스하십시오.

우리는 두 개의 cloudera 5.7.1 클러스터를 가지고 있는데, 하나는 Kerberos를 사용하고 다른 하나는 안전하지 않습니다.

보안 클러스터에 저장된 하이브 테이블에 액세스하는 동안 보안되지 않은 YARN 클러스터를 사용하여 Spark를 실행할 수 있습니까? (스파크 버전은 1.6)

그렇다면 구성 방법에 대한 설명을 제공해주십시오.

최신 정보:

나는 나의 질문 뒤에 약간의 최종 목표를 설명하고 싶다. 당사의 주요 보안 클러스터는 과도하게 활용되며 합리적인 시간 내에 완료 할 수있는 충분한 리소스를 얻을 수 없습니다. 이를 극복하기 위해 클러스터간에 데이터를 복사하지 않고도 다른 보안되지 않은 클러스터의 리소스를 사용하려고했습니다.

데이터 지역성 수준이 최적이 아니기 때문에 최선의 해결책은 아니라는 것을 알고 있습니다. 그러나 이것이 우리가 지금 생각해 낼 수있는 최상의 솔루션입니다.

우리가 위와 같이 할 수없는 것처럼 보이는 다른 해결책이 있다면 알려 주시기 바랍니다.

해결법

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

    1.Spark을 로컬 모드에서 실행하면, 임의의 Hadoop conf 파일 세트 (예 : core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml, hive-site)를 사용할 수 있습니다 .xml은 Kerberos 클러스터에서 복사됩니다. 따라서 해당 클러스터에 대한 액세스 권한을 부여하는 Kerberos 티켓이있는 경우 해당 클러스터에서 HDFS에 액세스 할 수 있습니다.

    Spark을 로컬 모드에서 실행하면, 임의의 Hadoop conf 파일 세트 (예 : core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml, hive-site)를 사용할 수 있습니다 .xml은 Kerberos 클러스터에서 복사됩니다. 따라서 해당 클러스터에 대한 액세스 권한을 부여하는 Kerberos 티켓이있는 경우 해당 클러스터에서 HDFS에 액세스 할 수 있습니다.

      export HADOOP_CONF_DIR=/path/to/conf/of/remote/kerberized/cluster
      kinit sylvestre@WORLD.COMPANY
      spark-shell --master local[*]
    

    그러나 yarn-client 또는 yarn-cluster 모드에서는 로컬 클러스터에서 컨테이너를 시작하고 다른 클러스터에서 HDFS에 액세스 할 수 없습니다.

    안전하지 않은 비보안 또는 안전 보안 조합을 사용하면 사용자 정의 hdfs-site.xml을 해킹하여 다른 네임 스페이스를 정의하여 다른 클러스터의 HDFS에 액세스 할 수 있습니다. 그러나 단일 인증 모델에 머물러 있습니다. Mighty Steve Loughran이 로컬의 안전한 클러스터에서 원격 보안 HDFS에 액세스하는 추가 Spark 속성에 대한 의견을 참조하십시오.

    DistCp의 경우 똑같은 방식으로 고정되어 있습니다. 단, 보안 상태에서 보안 상태로 이동할 수있는 "치트 (cheat)"속성이 있다는 점만 다릅니다.

  2. from https://stackoverflow.com/questions/42650562/access-a-secured-hive-when-running-spark-in-an-unsecured-yarn-cluster by cc-by-sa and MIT license