zoukankan      html  css  js  c++  java
  • Spark(一)-- Standalone HA的部署

    首先交代一下集群的规模和配置
    集群有六台机器,均是VM虚拟机,每台256M的内存(原谅楼主物理机硬件不太给力)
    主机名分别是cloud1~cloud6
    每台机器上都装有jdk6,和hadoop-2.2.0
    其中cloud4~cloud6上装有zookeeper
    cloud1为hdfs文件系统的启动节点
    cloud3为yarn资源管理的启动节点
    (注意每台机器都配置好SSH免密码登录,可以在下面的hadoop部署链接中查看具体步骤)

    有关hadoop和zookeeper的部署请看:

    hadoop-2.2.0集群安装部署

    zookeeper集群安装部署

    本次实验目标是在六台虚拟机上装上spark,并且将cloud1作为主节点

    首先将下载好的spark和scala包上传到cloud1上

    scala下载地址

    spark下载地址

    注意安装时尽量不要使用root用户(这里使用cloud自定义用户)

    安装scala:
    tar –zxvf scala-2.10.5.tgz
    mv scala-2.10.5 scala

    安装spark:
    tar -zxvf spark-1.3.0-bin-hadoop2.3.tgz
    mv spark-1.3.1 spark

    配置环境变量:
    vi /etc/profile
    export SCALA_HOME=/home/cloud/scala
    export SPARK_HOME=/home/cloud/spark
    export PATH=$$SPARK_HOME/bin:$SCALA_HOME/bin:$PATH

    source /etc/profile
    使用scala -version查看是否配置成功

    进入spark目录,修改文件slaves
    vi conf/slaves
    cloud1
    cloud2
    cloud3
    cloud4
    cloud5
    cloud6

    修改spark-env.sh
    vi conf/spark-env.sh

    export SPARK_MASTER_IP=cloud1
    export SPARK_WORKER_MEMORY=128m
    export JAVA_HOME=/usr/java/jdk
    export SCALA_HOME=/home/cloud/scala
    export SPARK_HOME=/home/cloud/spark
    export HADOOP_CONF_DIR=/home/cloud/hadoop/etc/hadoop
    export SPARK_LIBRARY_PATH=$$SPARK_HOME/lib
    export SCALA_LIBRARY_PATH=$SPARK_LIBRARY_PATH
    export SPARK_WORKER_CORES=1
    export SPARK_WORKER_INSTANCES=1
    export SPARK_MASTER_PORT=7077

    将cloud1上配置好的spark和scala通过scp复制到其他各个节点上(注意其他节点上的profile文件也要一致)
    scp -r spark cloud2:/home/cloud/
    scp -r scala cloud2:/home/cloud/

    scp -r spark cloud3:/home/cloud/
    scp -r scala cloud3:/home/cloud/

    scp -r spark cloud4:/home/cloud/
    scp -r scala cloud4:/home/cloud/

    scp -r spark cloud5:/home/cloud/
    scp -r scala cloud5:/home/cloud/

    scp -r spark cloud6:/home/cloud/
    scp -r scala cloud6:/home/cloud/

    通过
    sbin/start-all.sh
    启动spark集群
    http://cloud1:8080可以监控spark Standalone集群

    如果要启动spark-shell连接到spark Standalone集群,有两种方法:
    a:使用MASTER=spark://cloud1:7077 bin/spark-shell启动
    b:配置在conf/spark-env.sh增加:
    export MASTER=spark://$${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}
    然后使用使用./spark-shell启动

    基于文件系统的单点恢复
    主要用于开发或测试环境下
    当spark提供目录保存spark Application和worker的注册信息,并将他们的恢复状态写

    入该目录中,这时,一旦Master发生故障,就可以通过重新启动Master进程(sbin/start-master.sh),恢复已运行的spark Application和worker的注册信息。
    基于文件系统的单点恢复,主要是在spark-env里对SPARK_DAEMON_JAVA_OPTS设置:
    参数 含义
    spark.deploy.recoveryMode:设成FILESYSTEM , 缺省值为NONE
    spark.deploy.recoveryDirectory:Spark 保存恢复状态的目录

    export SPARK_DAEMON_JAVA_OPTS=”-Dspark.deploy.recoveryMode=FILESYSTEM -
    Dspark.deploy.recoveryDirectory=/home/cloud/spark/recovery”

    基于zookeeper的Standby Masters
    参数 含义
    spark.deploy.recoveryMode:设置成ZOOKEEPER,缺省值为 NONE
    spark.deploy.zookeeper.url: ZooKeeper URL(如192.168.100.111:2181,192.168.100.112:2181…)
    spark.deploy.zookeeper.dir:ZooKeeper 保存恢复状态的目录,缺省为 /spark

    Master可以在任何时候添加或移除。如果发生故障切换,新的Master将联系所有以前注册的Application和Worker告知Master的改变。

    export SPARK_DAEMON_JAVA_OPTS=”-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=cloud4:2181,cloud5:2181,cloud6:2181, -
    Dspark.deploy.zookeeper.dir=/home/cloud/spark”

    对于初次接触Spark的一些常见的问题:
    1.小的数据量,如G级别,适合在Spark上运行吗?
    大数据和数据大是两个不同的概念,大数据处理强调的是处理的速度,数据量的大小反而不是关键。例如,1G的数据要求在0.005秒之内处理完毕

    2.Standalone和ON YARN模式有什么区别?
    两者都是部署在多台节点上的分布式环境,Standalone从名字上就可以看出是Spark自己的集群,而ON YARN模式下,YARN提供了多框架并存的机制,不仅仅是Spark。并且还提供对多个框架之间是分配和调度资源的管理。

    3.运行Spark一定需要Hadoop吗?
    不一定,如果是学习需要,完全可以将Spark安装在local模式下,连HDFS都不需要
    但是一般的商业部署架构为:Hadoop+Yarn+Spark
    Hadoop的HDFS是大数据处理首选的文件系统,Spark需要历史数据,而这些数据就在HDFS中
    Yarn多框架并存,资源管理保证了集群的高效和可用性
    Spark应对大数据处理的各种场景,一套搞定,one stack to rule them all

  • 相关阅读:
    大二下每周总结
    大二下学期之阅读笔记(人月神话)
    大二下学期之阅读笔记(人月神话)
    大二下学期第一次结对作业(第一阶段:地图下钻)
    大二下学期第一次结对作业(第一阶段)
    java 多线程编程之: synchronized
    书籍
    elasticsearch size 设置最大返回条数
    Java 设计模式--策略模式,枚举+工厂方法实现
    Elasticsearch rollover API
  • 原文地址:https://www.cnblogs.com/jchubby/p/5449401.html
Copyright © 2011-2022 走看看