나는 새 항목을 hadoop하고 내 오지 쉘 조치가 kinit을 수행 한 후에도 새 티켓을 가져 오지 않는 이유를 이해하려고합니다. 여기에 내 시나리오가있다.kerberos 티켓 및 위임 토큰 사용법 Hadoop Oozie 쉘 작업
나는 내 ID "A"를 사용하여 로그인하고 아이디 용 kerberos 티켓을 가지고 있습니다. 나는 신분증을 사용하여 쉘 액션으로 오크 워크 워크 플로우를 제출합니다. ID 카드 "B"의 티켓을 얻기 위해 또 다른 키감을했습니다. 이 ID "B"만 일부 HDFS 파일에 액세스 할 수 있습니다. klist가 id "B"티켓을 보여주기 때문에 kinit는 정상적으로 작동합니다. 이제 B 만 액세스 할 수있는 HDFS 파일을 읽을 때 "A"에이 파일에 대한 액세스 권한이 없다는 내용의 권한 거부 오류가 표시됩니다. 하지만 내가 kinit을하고 "B"에 대한 티켓을 가져온 후 리눅스 클리에서 같은 일을 할 때, HDFS 파일을 "B"로 읽을 수 있습니다. 그러나 동일한 단계가 oozie 쉘 작업에서 작동하지 않으며 hadoop fs 명령은 kerberos 티켓이있는 사용자가 아닌 oozie 워크 플로를 제출 한 사용자로 항상 작동하는 것처럼 보입니다. 누군가 이런 일이 발생하는 이유를 설명해 주실 수 있습니까? 나는 이것을 이해할 수 없다.
동일한 쉘 동작에서 hadoop fs 명령이 "B"사용자로 변경되지 못했지만 hbase 쉘은 사용자 B로 작동합니다. 테스트 용으로 "A"만 액세스 할 수있는 hbase 테이블을 만들었습니다. 나는이 테이블에서 명령어를 얻기 위해 hbase 쉘을 추가했다. 사용자 "B"에 대해 kinit -kt를 수행하고 티켓을 얻는다면 "B"가이 테이블에 액세스 할 수 없다는 내용도 실패했습니다. 그래서 hoz는 oozie 워크 플로우를 제출하는 사용자의 위임 토큰 대신 새 티켓을 가져 오는 것입니다. 쉘 작업 내에서 kinit -kt를 수행하지 않으면 hbase 명령이 성공합니다. 내가 kinit을 수행하는 경우 "A"가/tmp/B /와 같은 일부 디렉토리에 대한 액세스 권한이 없기 때문에 "B"만 액세스 권한을 갖고 있으므로 하이브가 작동하는 방식을 이해할 수 없다는 하이브 쿼리를 실행할 수도 없습니다. oozie 워크 플로우가 제출 될 때 또는 새 사용자를 위해 작성된 새 티켓을 가져 오는 경우 작성되는 위임 토큰을 가져 오는 경우.
누가 위의 시나리오를 이해할 수 있습니까? 어떤 hadoop 서비스가 인증을 위해 새로운 티켓을 받고 어떤 명령이 (hadoop fs 명령과 같은) 위임 토큰을 사용합니까? 이 방법이 효과가 있습니까, 아니면 제가 잘못하고있는 것입니까? 필자는 왜 같은 hadoop fs 명령이 다른 사용자로서 외부 oozie에서 작동하지만 kinit 후에도 oozie shell 작업을하지 않는 이유를 이해하지 못합니다.- 실제로이 위임 토큰은 언제 만들어 집니까? oozie worklow가 제출되거나 심지어 hadoop fs 명령을 내릴 때만 생성됩니까? 감사합니다. 이론적으로
정보 주셔서 감사합니다. :) – Kumar
좋은 설명 삼손 Scharfrichter! - cred 섹션은 hbase, hiveserver2 및 hms 서비스에 대한 위임 토큰을 가져 오는 데 사용됩니다. –