一文讀懂spark yarn集群搭建


文是超簡單的spark yarn配置教程:

yarn是hadoop的一個子項目,目的是用於管理分布式計算資源,在yarn上面搭建spark集群需要配置好hadoop和spark。我在搭建集群的時候有3台虛擬機,都是centos系統的。下面就開始一步一步地進行集群搭建。

一、配置hosts文件

  hosts文件是主機名到ip的映射,目的是為了方便地查找主機,而不用去記各個主機的IP地址,比如配置master 10.218.20.210 就是為10.218.20.210地址取名為master,在以后的url中就可以用master代替10.218.20.210。

這里我們為了在配置文件中更方便地寫url,所以需要在這里配置各個節點的host-ip映射。

 

10.217.2.240 master
10.217.2.241 slave1
10.217.2.242 slave2

  這里我的三個節點分別對應master slave1 slave2.

二、配置ssh

  啟動hdfs和spark的時候各個節點需要相互訪問,所以要配置好ssh秘鑰。可以為每個主機生成各自的rsa秘鑰也可以只生成一個rsa秘鑰,並發送到所有主機。

三、安裝JAVA

  spark是基於java寫的,這里把java解壓到某目錄然后配置環境變量,修改/etc/profile

  export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
  export JRE_HOME=$JAVA_HOME/jre
  export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
  export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

  

四、安裝scala

  使用spark最好還是用scala語言,解壓后配置環境變量,修改/etc/profile

    export SCALA_HOME=/home/hadoop/scala-2.10.6
    export PATH=$PATH:$SCALA_HOME/bin

  

五、安裝配置HADOOP和YARN

  yarn的包是包含在hadoop里面的,解壓hadoop壓縮包,tar -zcvf hadoop-2.7.5.tar.gz,配置環境變量,

    export HADOOP_HOME=/home/hadoop/hadoop-2.7.5
    export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    export YARN_HOME=/home/hadoop/hadoop-2.7.5
    export YARN_CONF_DIR=${YARN_HOME}/etc/hadoop

  環境變量配置完了,現在要配置hadoop自身的配置文件,目錄在hadoop目錄下的etc/hadoop文件夾,里面有很多配置文件.我們需要配置七個:hadoop-env.sh,yarn-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml。

 

hadoop-env.sh:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77

  yarn-env.sh:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77

  slaves:

slave1
slave2

  core-site.xml:

<configuration>
        <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000/</value>
        </property>
        <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.2/tmp</value>
        </property>
</configuration>

  hdfs-site.xml:

<configuration>
        <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
        </property>
        <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.5/dfs/name</value>
        </property>
        <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop-2.7.5/dfs/data</value>
        </property>
        <property>
        <name>dfs.replication</name>
        <value>3</value>
        </property>
</configuration>

 mapred-site.xml:

<configuration>
        <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
</configuration>

  yarn-site.xml:

<configuration>
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
        </property>
        <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
        <name>yarn.resourcemanager.address</name>
        <value>fang-ubuntu:8032</value>
        </property>
        <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
        </property>
        <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8035</value>
        </property>
        <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
        </property>
        <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
        </property>
</configuration>

  

 配置好了以后,需要調用hadoop namenode 格式化,配置改變以后就需要格式化namenode,其實就是創建一些目錄,增添一些文件,以后配置不變的話就不需要再格式化。如果配置變了就需要刪除tmp,dfs,logs文件夾,再進行格式化。

bin/hadoop namenode -format    #格式化namenode

  現在就可以啟動hdfs系統和yarn系統了:

 sbin/start-dfs.sh              #啟動dfs 
 sbin/start-yarn.sh              #啟動yarn

  啟動成功后可以使用jps命令查看各個節點上是否啟動了對應進程。

master節點上:

[root@CTUGT240X sbin]# jps
23809 SecondaryNameNode
23971 ResourceManager
24071 NodeManager
23512 NameNode
23644 DataNode
24173 Jps

  

slave節點上:

[root@CTUGT241X hadoop]# jps
31536 Jps
31351 DataNode
31454 NodeManager

  

六、安裝配置spark:

解壓spark壓縮包

 tar -zcvf spark-2.2.0-bin-hadoop2.7.tar

  

配置spark配置文件:

    cd ~spark-2.2.0-bin-hadoop2.7/conf    #進入spark配置目錄
    cp spark-env.sh.template spark-env.sh  #從配置模板復制
    vim spark-env.sh    #添加配置內容
    在spark-env.sh末尾添加以下內容(這是我的配置,你可以自行修改):
    export SPARK_HOME=/home/hadoop/spark-2.2.0-bin-hadoop2.7
    export SCALA_HOME=/home/hadoop/scala-2.11.12
    export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
    export HADOOP_HOME=/home/hadoop/hadoop-2.7.5
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export YARN_CONF_DIR=$YARN_HOME/etc/hadoop
    export SPARK_MASTER_IP=20.2.217.123
    SPARK_LOCAL_DIRS=/home/haodop/spark-2.2.0-bin-hadoop2.7
    SPARK_DRIVER_MEMORY=1G
    export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native

  上述的版本那些根據個人的進行修改,還有運行內存那些要根據硬件配置來,太大了啟動spark會失敗。

slaves文件:

slave1
slave2

  

配置好后再各個節點上同步,scp ...

啟動spark,

sbin/start-dfs.sh
sbin/start-yarn.sh

  

看終端報錯沒有,沒報錯基本就成功了,再去UI看看,訪問:http://master:8088

沒毛病,集群就搭建好了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM