>

사용자 지정 oozie FTP 작업과 같은 smth를 작성했습니다 ( "Professional Hadoop Solutions By : Boris Lublinsky;Kevin T. Smith;Alexey Yakubovich"에 설명 된 간단한 예). node1에는 HDFS가 있고 node2에는 Oozie 서버가 있습니다. Node2에는 HDFS 클라이언트도 있습니다.

내 문제 :

<올>
  • Oozie 작업이 node1 (node1의 HDFS에있는 모든 필요한 파일)에서 시작되었습니다.
  • Oozie 맞춤 FTP 작업이 node2 (oozie 서버 위치)의 FTP에서 CSV 파일을 성공적으로 다운로드했습니다.
  • 파일을 HDFS로 전달하고 node1의 CSV에서 외부 테이블을 만들어야합니다. Java 조치를 사용하고 fileSystem.moveFromLocalFile(...) 를 호출하려고했습니다.  방법. 또한 /usr/bin/hadoop fs -moveFromLocal /tmp\import_folder/filename.csv /user/user_for_import/imported/filename.csv 와 같은 Shell 동작을 사용하려고했습니다.  그러나 나는 효과가 없었다. 모든 작업이 node1에서 파일을 찾으려고합니다. node2에서 oozie 작업을 시작하면 동일한 결과입니다.
  • 질문 : node1의 FTP에서 파일을로드하도록 FTP 동작에 대한 노드를 설정할 수 있습니까? 또는 설명 된 HDFS로 다운로드 한 파일을 전달하는 다른 방법이 있습니까?


    • 답변 # 1

      Oozie는 구성된 Map Reduce 클러스터에서 노드의 MR 작업으로 모든 작업을 실행합니다. Oozie가 특정 노드에서 일부 작업을 실행하게하는 방법은 없습니다.

      기본적으로 Flume을 사용하여 파일을 HDFS로 수집해야합니다. FTP 노드에서 Flume 에이전트를 설정하십시오.

    • 답변 # 2

      Ozzie를 사용하면 oozie sssh 쉘 확장을 통해 특정 노드에서 쉘 스크립트를 실행할 수 있습니다. https://oozie.apache.org/docs/4.2.0/DG_SshActionExtension.html

  • 이전 JSON 응답에서 사용할 수없는 경우 http 200 상태 코드를 각도로 확인하는 방법
  • 다음 fedora 26의 nginx - 최적의 types_hash 오류 메시지를 작성할 수 없습니다