LinuxクラスタへのSparkの配備

5548 ワード

概要
Sparkのインストールは比較的簡単で、ユーザーは公式サイトにアクセスして最新バージョンまたは履歴バージョンをダウンロードし、公式ドキュメントを参照して参考にします.著者が本稿を書いた時、最新のバージョンは2.2.0であるため、この文章の環境構築はすべてSpark 2になった.2.0バージョンを例にとります.
Sparkは、HadoopのHDFSを永続化ストレージ層として使用しているため、Sparkをインストールする場合は、Sparkバージョンと互換性のあるHadoopをインストールする必要があります.同時にSpark計算フレームワークはScala言語で開発され,Scala,JDKバージョンにも具体的な要求がある.バージョン2.2.0を例にとるとjava 8,scala 2が必要である.11.*.
本論文の実際の構築環境はUbuntu 16である.04,他のLinuxリリース版のインストールは類似しており,ほぼ一致している.
1ローカルファイルのダウンロード
  • Spark
  • Hadoop
  • JDK
  • Scala

  • 2 JAVAのインストール
  • ダウンロードしたJDKファイルを/usr/local/jvmディレクトリ
  • に解凍
  • JDK環境構成は、エディタで/etc/profileファイルを開き、
    export JAVA_HOME = /use/local/jvm/jdk1.8.0_144
    export PATH = $PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
    
    でprofileファイル
  • を閉じて保存します.
  • コマンドsource/etc/profileを入力構成を有効にする
  • .
    3 SCALAのインストール
  • ダウンロードしたインストールパッケージscala-2.11.11を見つけました.tgz
  • 取付
    tar zxvf scala-2.11.11.tgz -C /usr/local/scala
    cd /usr/local/scala
    ln -s scala-2.11.11 scala
    
  • 構成、/etc/profileを開き、次の文を追加します:
    export SCALA_HOME = /usr/local/scala/scala
    export PATH = $PATH:$SCALA_HOME:bin
    
  • 4 SSH非密登録の設定
    分散システムでは、SSHサービスを使用してSlaveノード上のプログラムを起動するのが一般的であり、ノード数が大きい場合、頻繁にパスワードを入力してアイデンティティ認証を行うのは比較的悪い体験であり、セキュリティは必ずしも高くない.SSH公開秘密鍵を使用して、SSHにパスワードなしでログインします.
    まずMASTERノードに一対の会社鍵(公開鍵ファイル~/.ssh/id_rsa.pub;秘密鍵ファイル/.ssh/id_rsa)を作成し、公開鍵をwoekerノードにコピーする(/.ssh/authorized_keys)
    5 Hadoopのインストール構成
  • hadoop binary圧縮パッケージをターゲットディレクトリ(ソフトリンク自由選択不要)
    tar zvxf hadoop-2.7.4.tar.gz -C /usr/local/hadoop
    ln -s hadoop-2.7.4 hadoop
    
  • に解凍する.
  • 構成:「core-site.xml」:Hadoopのコア情報、一時ディレクトリ、アクセスアドレスなどを含む.
        
            fs.defaultFSname>
            hdfs://Master:9000
        
        
            hadoop.tmp.dir
            file://root/bigdata/tmp
        
        
            io.file.buffer.szie
            131702
        
    
  • 構成:「yarn-site.xml」:関連jobを構成する処理と簡単に理解できる.
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.nodemanager.auxservices.mapreduce.shuffle.class
        org.apache.hadoop.mapred.ShuffleHandler
    
    
        yarn.resourcemanager.address
        Master:8032
    
    
        yarn.resourcemanager.scheduler.address
        Master:8030
    
    
        yarn.resourcemanager.resource-tracker.address
        Master:8031
    
    
        yarn.resourcemanager.admin.address
        Master:8033
    
    
        yar.resourcemanager.webapp.address
        Master:8088
    
    
  • namenodeディレクトリとdatanodeディレクトリを作成し、パス
  • を構成します.
    mkdir -p /hdfs/namenode
    mkdir -p /hdfs/datanode
    
  • 構成:「hdfs-site.xml」:ファイルのバックアップ個数、データフォルダのパスを決定できます.
    
        dfs.namenode.name.dir
        file:/hdfs/namenode
    
    
        dfs.datanode.data.dir
        file:/hdfs/datanode
    
    
        dfs.replication
        3
    
    
        dfs.namenode.secondary.http-address
        true
    
    
  • 構成「mapredsite.xml」
    
        mapreduce.jobhistory.address
        Master:10020
    
    
        mapreduce.hobhistory.webapp.address
        Master:19888
    
    
  • 「slaves」ファイルを構成し、スレーブノードのホスト名
    x.x.x.x worker1
    x.x.x.x worker2
    
  • をすべて追加します.
  • フォーマットnamenode
  • /usr/local/hadoop/hadoop-2.7.4/bin/hadoop namenode -format
    

    6 Sparkのインストール構成Spark
  • spark binaryをターゲットディレクトリ
  • に解凍する
    tar zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /usr/local/spark/spark-2.2.0-bin-hadoop2.7
    
  • sparkの構成
  • /etc/profileファイル追加:
  • export SPARK_HOME=/usr/local/spark/spark-2.2.0-bin-hadoop2.7
    PATH=$PATH:$SPARK_HOME/bin
    
  • 構成/etc/hosts、クラスタ内のmasterおよび兄workerノードのipとhostnameのペア
  • に追加
    x.x.x.x Master-name
    x.x.x.x worker1
    x.x.x.x Worker2
    x.x.x.x Worker3
    
  • 入/usr/local/spark/spark-2..0-bin-hadoop 2.7/conf、コマンドライン実行
  • cp spark-env.sh.template spark-env.sh
    vi spark-env.sh
    
  • ファイル末尾に
  • を追加
    export JAVA_HOME=/usr/local/jvm/jdk1.8
    export SCALA_HOME=/usr/local/scala/scala
    export SPARK_MASTER_IP=127.0.1.1
    export SPARK_WORKER_MEMORY=1g
    
    保存して終了し、
    cp slaves.template slaves
    vi slaves
    #    worker   hostname
    worker1
    worker2
    worker3
    
    を実行する.
    7 HadoopとSparkクラスタのレプリケーション
    これまでに1台のホストの構成が完了し、その環境と一部のプロファイルをMasterから各Workerノードに配布しました.クラスタ環境では、1台のホストが複数のホスト間のファイル転送を行うには、psshツールを使用します.そのため、Masterにworkerlistを作成します.txtは、すべてのWorkerのIPを保存する.
    環境のコピー
    コマンドライン
    JDK環境
    pssh -h workerlist -r/usr/local/scala/
    SCALA環境
    pssh -h workerlist -r/usr/local/scala/
    Hadoop環境
    pssh -h workerlist -r/usr/local/hadoop/
    Spark環境
    pssh -h workerlistt -r/usr/local/hadoop/
    システム構成
    pssh -h workerlist/etc/hosts/, pssh -h workerlist/etc/profile/
    これでSpark Linuxクラスタ環境の構築が完了した.
    8 Sparkクラスタの試運転最近まだ勉強中で随時更新