안녕하세요
올려주신 강의를 통해 Hue와 Oozie 사용법에 대해 어느정도 알게 된 것 같습니다.
다만, 현재 oozie에서 기본적으로 제공하는 example 중에서 pyspark 파일을 실행시켜보는 예제를 hue를 활용하여 진행 중인데 잘 되지 않아 질문을 드리고 싶습니다.
로그 결과 값으로 Main Class [org.apache.oozie.action.hadoop.SparkMain], exit code [1] 에러가 출력이 되는데 대표적인 원인 혹은 해결방법을 아시는게 있으실까요?
해당 오류 해결을 위해 몇 일 째 시간을 투자하였으나 원인을 알기 쉽지 않아 이렇게 질문 드리게 되었습니다.
관련 로그를 스크린샷으로 드립니다. 추가로 필요한 부분이 있으면 바로 알려드리겠습니다.
실행시키고자 하는 파일의 구조는 다음과 같습니다
pyspark
lib
pyspark.zip
workflow.xml
파일의 내용은 단순 pi 값을 출력하는 예제입니다.
꼭 해결하고 싶습니다
감사합니다.
안녕하세요! "kbg4676"님!
파일럿 환경에서 다양한 시도를 해보시는것 같아서 열열히 응원 드립니다!! ^^
파일럿 환경의 pyspark는 파이썬 2.x에서 작동시 문제가 됩니다.
그래서 파이썬을 3.x로 업그레이드를 해야는데요..
우선 Server02에서 아래 명령으로 파이썬을 3.x를 설치해 주시고요,
$ cd /home/pilot-pjt
$ wget https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tgz
$ tar -xvf Python-3.5.10.tgz
$ cd Python-3.5.10
$ ./configure
$ make
$ make install
다음으로 기존 python2.x의 심볼링 링크를 삭제하고, python3.x로 새로 연결해 줍니다.
$ rm /usr/bin/python
$ ln -s /usr/local/bin/python3 /usr/bin/python
이상태에서 pyspark 명령을 실행 했을때 아무 에러가 없어야 합니다. 특히 아래 Error 요~
(NameError: name 'memoryview' is not defined)
$ pyspark
이제 휴의 workflow를 만들면 되는데요..
우선 pi.py 소스를 /user/admin 경로에 올려 놓고, 이를 위해서..
Hue의 파일브라우져를 실행해서 /usr/admin/ 경로로 이동해서 pi.py 를 업로드 하시고요,
(참고로 다른 파일들은 필요 없습니다. pi.py만 있어도 동작하는 소스입니다.)
마지막으로 Oozie Workflow를 작성을 하실때 Spark Action을 드래그앤드랍 후 다음과 같이 입력후Workflow를 제출/실행 하시면 됩니다.
Files : /user/admin/pi.py
Jar/py name : pi.py
전 참고로 Pi 값이 아래같이 출력 됩니다~
-빅디 드림
답글
kbg4676
2022.11.18답변 감사드립니다.
hue에서 oozie 실행할때는 job.properties 등의 파일이 없어도 되는군요
우선 python3 세팅은 되어있어서 그 부분 밑으로 진행을 해보았습니다.
py4j, pyspark zip 파일도 필요하다는 에러가 떠서 hdfs 경로에 파일 추가하고 sharelibupdate 진행해줬습니다.
말씀해주신대로 pi.py파일로만 workflow를 실행시킬 수 있었습니다.
그래도 아직까진 동일한 에러가 뜨고 있는 상황입니다. (Main Class [org.apache.oozie.action.hadoop.SparkMain], exit code [1])
이게 강의 내용과 무관하게 임의 설치를 진행한 부분이 있지만 (해서 자유주제로 질문 드리게 됐습니다.) 버전 종속성 문제가 아니라면 정상적으로 실행이 되어야 한다고 생각되는데 어떻게 해야 할까요..?
혹시 전화든 화면 공유든 현 상황을 좀 더 상세하게 공유드려도 괜찮으시다면 어떻게든 문의를 드려보고 싶습니다.
감사합니다.
======================
아래는 해당 프로그램을 실행 시키기 위해 진행했던 내용들 같이 올려봅니다..
python 3.8, spark 3.3.0, scala 2.12.15 사용 중에 있습니다.
콘솔에서 pi.py 직접 실행 시 정상적으로 결과 출력이 잘 됩니다. (spark 2버전 이상이므로 pyspark 대신 spark-submit 사용)
hue - pyspark editor에서 if "__name__" == "__main__" 이 부분만 빼고 진행 시 잘 실행이 됩니다.
spark3 jar 내용을 sharelib에 추가하여 종속성 맞춰줬습니다.
Big.D
2022.11.19네~ 보여주신 스크린샷을 봤을땐 이전과 다른 에러가 발생한 것 입니다.
..exit code[1].. 이 발생 했지만 이는 포괄적인 종료 에러이고요,
상세 에러 내용을 보면 py4j 의존성 문제가 발생한 것으로 보입니다.
앞서 문의하신 내용중에 아래의 과정이 문제를 해결 하는 실마리로 보입니다.
"py4j, pyspark zip 파일도 필요하다는 에러가 떠서 hdfs 경로에 파일 추가하고 sharelibupdate 진행해줬습니다."
저는 테스트시 위 에러가 발생 하지 않았는데요..^^;;;;
이와 관련한 추가 또는 변경 작업이 있었는지 찾아 보셔야 할 것 같습니다.
-빅디 드림