2017-11-12 13 views
0

oozie를 사용하여 가장자리 노드에서 HDFS로 파일을 복사하려고합니다. 많은 분들이 비밀 번호를 적게 설치하도록 권장합니다.oozie를 사용하여 로컬에서 hdfs로 파일을 복사하는 방법

Iome 서비스 사용자인데도 oozie 사용자는 로그인 할 수 없습니다.

비밀 번호가 적은 다른 방법이 있습니까?

미리 감사드립니다.

+0

edgenode에 액세스하려고하면 인증 메커니즘이 필요합니다. 오지 작업은 클러스터의 데이터 노드에서 맵 감소 작업으로 실행되기 때문입니다. edgenode에서 파일을 가져와야하는 경우, 일부 인증 메커니즘이 필요합니다. 개인 키와 공개 키를 사용하여 패스워드없는 인증을하거나 Linux에서 expect 명령을 사용할 수 있습니다. 나는 패스워드를 덜 사용하는 것을 선호한다. –

+0

또한 비밀번호없는 인증을 수행하려는 경우 언제나 oozie 사용자로 로그인 할 필요는 없습니다. oozie ssh 작업을 사용하는 경우, oozie 실행 프로그램은 ssh 명령을 실행하며 암호가없는 인증을 사용하려면 oozie 공용 키와 개인 키가 필요합니다. oozie shell action을 사용하면 실 작업자가 사용하는 Linux 사용자 또는 셸 사용자가 수행 한 작업이이 링크와 같이 클러스터 원사 설정에서 구성되어있는 내용을 정확하게 확인할 수 있습니다. https : // blog .cloudera.com/blog/2013/03/how-to-use-oozie-shell-and-java-actions /). –

+0

답변 해 주셔서 감사합니다. 내가 패스워드가없는 인증을 가능케하기 위해 누출 된 공개 키를 얻는 방법을 알아낼 수 없다. –

답변

0

암호가없는 것 외에도 두 가지 옵션이 있습니다. 1. 선호하는 옵션 : JSch java 라이브러리를 사용하고 인수로 실행될 쉘 스크립트를 허용하는 Java 응용 프로그램을 만듭니다. JSch를 사용하면 구성된 에지 노드에서 ssh를 수행하고 에지 노드에서 쉘 스크립트를 실행합니다. jsch에서 edgenode 사용자 이름과 암호를 구성 할 수 있습니다. 'JCEKS'파일을 사용하여 암호를 저장하십시오. 그런 다음 JSch를 사용하여 작성된 Java 응용 프로그램을 실행하기 위해 Oozie에서 Java Action을 추가하십시오. 2. "/ usr/bin/expect"라이브러리를 사용하여 edgenode에 ssh를 수행 한 다음 구성된 쉘 스크립트를 실행하는 쉘 스크립트를 작성하십시오. 자세한 내용은 여기 Use expect in bash script to provide password to SSH command