2012-11-02 3 views
0

상황에 따라 Kerberos 보안 및 워크 스테이션으로 구성되지 않은 hadoop 클러스터가 있습니다. Hadoop 클러스터는 Cloudera CDH3 배포를 실행합니다. 클러스터의 데이터는 모두 'hdfs'사용자 아래에 저장됩니다.다른 사용자로 돼지 작업 실행

워크 스테이션은 PIG 클라이언트가 내장 된 복잡한 소프트웨어를 실행하는 linux 또는 macos 워크 스테이션입니다. PIG 클라이언트는 분석 작업을 실행하기 위해 클러스터에 연결합니다.

여기에 문제가 있습니다. 클러스터와 워크 스테이션의 사용자 계정은 다르고, hadoop 클러스터의 모든 데이터는 'hdfs'홈 디렉토리 사용자 아래에 저장되며 워크 스테이션은 사용자 계정을 완전히 설정합니다. PIG에게 다른 사용자 계정으로 작업을 실행하도록 지시 할 수 있습니까? 현재 돼지는 현재 워크 스테이션에 로그인 한 사용자의 계정으로 작업을 실행하려고 시도합니다. 작업은 실제로 실행되지만 스크립트는 HDFS 사용자 홈 디렉토리에 상대적인 경로를 사용하기 때문에 데이터에 액세스 할 수 없습니다.

클러스터에 보안이 구성되어 있지 않은 경우 사용자 이름이 .XML 작업 구성과 함께 전달되지만 단순히 XML 문서에 필요한 사용자 이름을 강제 적용하는 방법을 알 수없는 것을 알고 있습니다.

답변

1

속성을 통해 사용자를 전달할 수 없습니다. 보안 하부 시스템은 더 복잡하고 간단하게 사용자 이름을 전달합니다. 당신은 네 가지 해결책이 있습니다

    전혀
  1. 사용 안 함 보안 (그것은 이제까지 필요한 이유는, 만약 '루트'계정으로 저장된 모든 데이터?)는 sudo -u HDFS에서 로컬 워크 스테이션 및 소프트웨어를 실행에 HDFS 사용자를 작성
  2. hadoop 클러스터에 로컬 워크 스테이션 사용자를 생성하고 해당 사용자에 대한 그룹을 만들고이 그룹의 데이터를 파일에 읽기위한 도구를 추가하십시오.
  3. 'hdfs'에 파일을 저장하지 말고 워크 스테이션 및 hadoop 클러스터에서 비슷한 사용자를 만듭니다.

나는 귀하의 경우에 바람직한 방법이 1이라고 생각하지만, 가능하지 않다면 4가 더 좋습니다.

+0

감사합니다. 나는 옵션 1로 가야만한다고 생각한다. 설명했던 것보다 훨씬 복잡하다. 워크 스테이션은 실제로 자신의 사용자가있는 다른 워크 스테이션 세트이지만, 모두 클러스터의 동일한 데이터에 액세스해야한다. 그들의 홈 디렉토리에있다. 왜 그것이 어리석은지 나는 묻지 마라. – Vlad

3

"HADOOP_USER_NAME"환경 변수를 설정하십시오.
자세한 내용은 similar question에서 확인할 수 있습니다.

+0

이 답변은 실제로 문제를 해결하고 허용 된 것보다 훨씬 적합합니다. 특히 테스트와 개발에 관한 것입니다. –

관련 문제