spark 2.1 on yarn deployment

来源:互联网 发布:vb安装未响应 编辑:程序博客网 时间:2024/06/06 03:47

1. 准备三台机器, hostname 分别为 spark-master (10.64.xx.155), spark-work1(10.64.xx.154), spark-work2(10.64.xx.157)

    将上面的信息写到/etc/hosts 中

    10.64.xx.155  spark-master

    10.64.xx.154  spark-worker1

    10.64.xx.157  spark-worker2


2. 设置master 与各个work 之间ssh password less 登录

    在每个work上用 ssh-keygen -t rsa 来生成私钥和公钥, 并将公钥scp 到master 机器上, 命名区分

    scp id_rsa.pub root@spark-master:~/.ssh/id_rsa.pub.work1(2)

    然后在master 上cat  ~/.ssh/id_rsa.pub* >> authorized_keys 

   然后将authorized_keys scp 到每一个台worker 上的~/.ssh/, 测试一下看看,如果不行,看看authorized_keys 的权限设置成600

  

3. setup java , 我这边选择是java 1.8 , master 和worker 都要安装。

    安装之后要做一下环境变量, 在/etc/profile 中增加, 我的java 安装在/usr/java 下面
   export JAVA_HOME=/usr/java/jdk1.8.0_101
   export JRE_HOME=$JAVA_HOME/jre
   export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

   然后source /etc/profile

   

4. 安装scala  我选择是download scala 的rpm 直接安装的


5. 安装hadoop 在官网上去download 我选择是2.7.3 进行安装的:

    5.1 在hadoop 的etc/hadoop/hadoop-env.sh 配置 java 的路径

    export JAVA_HOME=${JAVA_HOME}

    5.2 在yarn-env.sh 中同样加上   export JAVA_HOME=${JAVA_HOME}

    5.3 修改core-site.xml 的配置:

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

    5.4 修改hdfs-site.xml 的配置:

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

   5.5 修改mapred-site.xml 的配置

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

5.6 修改 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>spark-master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>spark-master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>spark-master:8035</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>spark-master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>spark-master:8088</value>
    </property>
</configuration>

5.6 将上面的所有配置都copy 一份到各个worker 上


6. 启动hadoop , 在master 上应该去格式化一下namenode (hadoop-2.7.3/bin/hadoop namenode -format)

    到每一个instance 的hadoop 下面的sbin下面run start-all.sh 

    然后看看master 上应该是有下面的这些进程 run jps:

    


   worker 下面有下面的进程

   


7. download spark  : spark-2.1.0-bin-hadoop2.7.tgz

    配置spark conf:

 export SPARK_HOME=/home/spark-2.1.0-bin-hadoop2.7
#export SCALA_HOME=/home/fang/scala-2.10.6
export JAVA_HOME=/usr/java/jdk1.8.0_101
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=10.64.78.155
SPARK_LOCAL_DIRS=/home/spark-2.1.0-bin-hadoop2.7
SPARK_DRIVER_MEMORY=1G
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native

    在slaves 中加入

     spark-worker1

     spark-worker2

启动脚本 sbin 下的start-all.sh 



配置完成了,可以用spark-ui 看看:

http://10.64.xx.155:8080/




 



   

0 0
原创粉丝点击