작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
36
·
수정됨
0
안녕하세요 강사님 강의 잘 보고 있습니다.
spark 관련된 질문을 드려도 될까요..?
도커에 spark 컨테이너를 띄워서 airflow의 bash operator로 spark-submit을 해보려 하는데 로그가 다음과 같이 나오면서 spark-submit이 안됩니다.
compose 파일도 network 설정을 다시했고,
docker network inspect 로 확인해보니 잘 연결된 것이 확인됐습니다.
spark submit도 master container 내부에서 잘 실행이되는 상황입니다.
shell 파일을 이런식으로 작성한다고 해서 airflow dags로 spark-submit을 할 수 있는건 아닌가요 ?
#!/bin/bash
script=$1
echo "${script}"
echo "start spark submit with bash operator"
spark-submit \
--master spark://spark-master:7077 \
${script}
답변 3
0
안녕하세요 brianbok97님!
해결되었다니 다행입니다. 그런데 저도 궁금한 게 있는데
spark 컨테이너 서비스를 추가로 정의해준거에요? 아니면
기존 airflow 이미지에 pip install apache-airflow-providers-apache-spark 라이브러리 추가 설치해주고 그 이미지로 올리신거에요?
참고로 airflow + spark 조합은 아주 좋은 조합중에 하나입니다. airflow가 직접 파이썬으로 Extract 나 Transform 로직을 airflow worker가 처리하기는 것보다는 Spark에게 처리를 지시하도록 구성하는게 좋습니다. Spark은 병렬 처리가 가능해서 전처리를 훨씬 빠르게 수행할 수도 있어서 컴퓨팅 프레임워크로 Spark을 쓰면 좋습니다.
참고로 위 파이썬 패키지를 설치하면 spark_submit operator도 사용 가능합니다. 하지만 굳이 패키지 설치하기 번거롭다면 spark_submit 오퍼레이터를 사용하지 않아도 됩니다.
spark-submit 명령이 수행되도록 하는 오퍼레이터를 직접 만들던가 ssh operator로 spark-submit 명령을 전송하는 것도 좋은 방법입니다.
직접 spark도 사용해서 테스트해보시는 것을 보니 실력이 금방 느시겠네요. 화이팅입니다!
0
0
안녕하세요, 인프런 AI 인턴입니다.
brianbok97님, 도커 컨테이너를 사용하여 Airflow의 BashOperator로 Spark 작업을 실행하시려는 상황이네요. Spark의 spark-submit
명령어를 사용할 때 컨테이너 내에서 명령이 제대로 작동하지 않는 경우는 일반적으로 두 가지 이슈로 귀결될 수 있습니다: 환경 설정 문제 또는 파일 경로 문제입니다.
해당 문제를 해결하기 위한 몇 가지 체크포인트를 제시해 드리겠습니다:
환경 변수 확인: spark-submit
명령이 제대로 인식되지 않는 경우는 컨테이너 내에서 PATH
나 Spark 관련 환경 변수가 제대로 설정되지 않았을 수도 있습니다. Dockerfile
이나 컨테이너 설정 파일을 다시 확인하여 Spark가 설치된 경로가 PATH
에 포함되었는지 확인해 보세요.
파일 경로 문제: sparktest.sh
스크립트가 실행될 때, 경로나 파일이 잘못 지정되었을 수 있습니다. 특히, Docker 컨테이너 내의 파일 시스템 경로 설정을 잘못한 경우입니다. 컨테이너 내부에서 스크립트 파일이 올바르게 위치해 있는지 확인해 보세요.
네트워크 설정 확인: Docker Compose에서 네트워크 설정이 올바르게 설정되었는지 확인해야 합니다. 특히, Spark Master와 Worker가 같은 네트워크에서 통신 가능한지 확인하세요.
로그 파일 분석: 오류 로그에서 추가적인 힌트를 얻을 수 있을지도 모릅니다. 구체적인 오류 메시지를 확인해 보시고, 환경 변수가 정확하게 설정되었는지 확인하세요.
만약, 여전히 해결되지 않거나 명확하지 않다면, 유사한 문제를 다룬 답변들을 확인하시거나 추가적인 정보를 제공해 주시면 더 도움이 될 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
기존 이미지에
필요한 패키지랑 dockerfile 새로 작성해서 도커파일로 빌드했습니다..!
답변감사합니다 ㅎㅎ