복붙노트

[HADOOP] spark-submit을 통해 추가 병을 Spark에 전달

HADOOP

spark-submit을 통해 추가 병을 Spark에 전달

나는 MongoDB와 함께 Spark을 사용하고 있으며 따라서 mongo-hadoop 드라이버에 의존한다. 내 원래의 질문에 대한 의견을 입력 해 주셔서 감사합니다.

내 스파크 작업이 진행 중이지만 이해가 안된다는 경고를받습니다. 이 명령을 실행할 때

$SPARK_HOME/bin/spark-submit --driver-class-path /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar --jars /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar my_application.py

그것은 작동하지만, 나에게 다음과 같은 경고 메시지를 준다.

이 작업을 수행하려고 할 때 작업을 제출할 때 그 경로를 생략하면 작업이 전혀 실행되지 않습니다. 자, 그러나, 만약 내가 그 경로를 생략하면 실행됩니다

$SPARK_HOME/bin/spark-submit  my_application.py

누군가 여기서 무슨 일이 일어나는지 설명해 주시겠습니까? 동일한 경고를 참조하는 유사한 질문을 살펴본 후 설명서를 검색했습니다.

옵션을 일단 설정하면 환경 변수 또는 다른 것으로 저장됩니까? 나는 그것이 효과적이기 때문에 기쁘다. 그러나 왜 내가 때때로 다른 이유가 아닌지를 완전히 이해하지 못한다는 것을 경계한다.

해결법

  1. ==============================

    1.문제는 JARS는 쉼표로 구분해야하지만 CLASSPATH는 콜론으로 구분해야한다는 것입니다.

    문제는 JARS는 쉼표로 구분해야하지만 CLASSPATH는 콜론으로 구분해야한다는 것입니다.

    $SPARK_HOME/bin/spark-submit \
    --driver-class-path /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar:/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar \
    --jars /usr/local/share/mongo-hadoop/build/libs/mongo-hadoop-1.5.0-SNAPSHOT.jar,/usr/local/share/mongo-hadoop/spark/build/libs/mongo-hadoop-spark-1.5.0-SNAPSHOT.jar my_application.py
    
  2. ==============================

    2.Zero323 답변 상단에 추가

    Zero323 답변 상단에 추가

    나는 이것을하는 더 나은 방법이 있다고 생각한다.

    $SPARK_HOME/bin/spark-submit \
    --driver-class-path  $(echo /usr/local/share/mongo-hadoop/build/libs/*.jar | tr ' ' ',') \
    --jars $(echo /usr/local/share/mongo-hadoop/build/libs/*.jar | tr ' ' ',') my_application.py
    

    이 방법에서는 클래스 패스에서 실수로 항아리를 놓치지 않으므로 경고가 나타나지 않아야합니다.

  3. from https://stackoverflow.com/questions/33961699/passing-additional-jars-to-spark-via-spark-submit by cc-by-sa and MIT license