Spark/Scala를 Jupyter Notebook에서 실행

5381 단어 스파크JupyterScala
잠시 동안 Spark/Scala 코드를 팀에 공유 할 때,
Jupyter 노트북으로 코드를 공유하는 것이 더 좋을까,
  • Python 설치
  • Spark 설치
  • 노트북에서 코드 실행

  • 코라라의 일련의 순서에 대해 정리해 보았습니다.
    흔한 Apache Toree를 사용한 절차입니다.

    Python (Anaconda) 설치



    pyenv 설치


    $ brew update
    $ brew install pyenv
    

    환경 변수 설정
    $ echo 'export PYENV_ROOT="${HOME}/.pyenv"' >> ~/.zshrc
    $ echo 'export PATH="${PYENV_ROOT}/bin:$PATH"' >> ~/.zshrc
    $ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
    
    $ exec $SHELL -l
    

    Anaconda 설치



    설치 가능한 anaconda 버전 목록을 가져옵니다.
    $ pyenv install -l | grep anaconda
      anaconda-1.4.0
      anaconda-1.5.0
     ...
      anaconda3-5.3.1
      anaconda3-2018.12
    

    현재 최신 버전을 설치합니다.
    $ pyenv install anaconda3-5.3.1
    

    버전을 최신 버전으로 전환합니다.
    # バージョンの設定
    $ pyenv global anaconda3-5.3.1
    
    # 切り替わったことの確認
    $ pyenv versions
      system
    * anaconda3-5.3.1 (set by /Users/yuichi.nagakura/.pyenv/version)
    

    한 번 로그아웃한 다음 Python 버전을 확인합니다.
    $ python -V
    Python 3.7.0
    

    Jupyter도 설치되어 있는지 확인합니다.
    $ jupyter --version
    4.4.0
    

    Apache Spark 설치



    Apache Toree를 사용하려면 Spark가 필요합니다.
    Spark를 설치합니다.
    # ダウンロード
    $ curl -O http://ftp.kddilabs.jp/infosystems/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
    
    # 解凍
    $ tar xvfz spark-2.4.0-bin-hadoop2.7.tgz
    
    # シンボリックリンクの作成
    $ ln -s $HOME/spark-2.4.0-bin-hadoop2.7 $HOME/spark
    

    환경 변수를 설정합니다.
    $ echo 'export SPARK_HOME=$HOME/spark' >> ~/.bash_profile
    $ echo 'export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin' >> ~/.bash_profile
    
    $ source ~/.bash_profile
    

    Apache Toree 설치



    참고) Apache Toree Quickstart
    h tps : // 취해. 아파치. 오 rg / 두 cs / 쿠렌 t / 우세 r / 쿠이 ck s rt /
    $ pip install --upgrade toree
    
    $ jupyter toree install --spark_home=$SPARK_HOME --interpreters=Scala
    

    이것으로 준비 완료입니다.

    Jupyter Notebook 시작



    노트북을 시작합니다.
    나는 SparkContext가 필요하지 않았고 로컬 모드에서 Spark를 사용하고 싶었기 때문에 다음과 같이 옵션을 지정하여 시작했습니다.
    $ TOREE_OPTS='--nosparkcontext' SPARK_OPTS='--master=local[2]' jupyter notebook
    

    Scala 코드를 JupyterNotebook에 작성


    NewApache Toree Scala를 선택하여 노트북을 만듭니다.



    코드는 다음과 같은 느낌으로 써 보았습니다.
    코드와 실행 결과를 기록으로 남길 수 있기 때문에 좋은 느낌입니다.



    헛된 포인트로서 노트북에서 실행하는 경우에는, spark 세션 생성시에 enableHiveSupport를 붙이지 않으면 MetaStore가 유효하게 되지 않았던 것일까요? MetaStore의 데이터베이스를 MySQL이나 PostgreSQL등의 DB를 사용하고 있지 않는 경우는 불필요한 것 같습니다.
    val spark = SparkSession.builder()
        .enableHiveSupport
        .master("local")
        .getOrCreate()
    

    좋은 웹페이지 즐겨찾기