Spark环境部署

==> Spark 集群体系结构

创新互联成立十年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供做网站、网站设计、网站策划、网页设计、域名与空间、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。

    ---> Spark 环境部署

==> Spark安装与部署  

        Spark 的安装部署有四种模式:Standalone, YARN, Mesos, Amazon EC2, 这里主要讲解Standalone 方式

    ---> 环境部署准备工作:(此处不作详细讲解)

        ---- 四台 Linux 主机(虚拟机)

        ---- 修改主机名

        ---- 免密码登陆

        ---- 安装 JDK 环境

   ---> Spark Standalone 伪分布的部署

wget  
tar zxf spark-2.2.1-bin-hadoop2.7.tgz -C /app
cd /app/spark-2.2.1-bin-hadoop2.7/conf
cp spark-env.sh.template spark-env.sh
cp slaves.template slaves
-----------------------------------------------------------------------------------
vim spark-env.sh
    export JAVA_HOME=/app/java/jdk1.8.0_102
    export SPARK_MASTER_HOST=bigdata0
    export SPARK_MASTER_PORT=7077
-----------------------------------------------------------------------------------
vim slaves
    bigdata0

    ---> Spark Standalone 全分布的部署

        ---- 环境架构:

Masterbigdata1

Workerbigdata2bigdata3bigdata4


        ---- 主节点部署:

wget http://mirrors.hust.edu.cn/apache/spark/spark-2.2.1/spark-2.2.1-bin-hadoop2.7.tgz 
tar zxf spark-2.2.1-bin-hadoop2.7.tgz -C /app
cd /app/spark-2.2.1-bin-hadoop2.7/conf
cp spark-env.sh.template spark-env.sh
cp slaves.template slaves
-----------------------------------------------------------------------------------
vim spark-env.sh
    export JAVA_HOME=/app/java/jdk1.8.0_102
    export SPARK_MASTER_HOST=bigdata0
    export SPARK_MASTER_PORT=7077
-----------------------------------------------------------------------------------
vim slaves
    bigdata2
    bigdata3
    bigdata4

        ---- 将主节点的安装目录 cp 到其它从节点上即可

scp -r spark-2.2.1-bin-hadoop2.7/ bigdata2:/app &
scp -r spark-2.2.1-bin-hadoop2.7/ bigdata3:/app &
scp -r spark-2.2.1-bin-hadoop2.7/ bigdata4:/app &

        ---- 启动

start-all.sh

==> Spark HA 的实现

            Spark HA 有两种实现方式:

    ---> 基于文件系统的单点故障恢复:只有一个主节点、只能用于开发测试

        ---- 特点:把 Spark 的运行信息入到一个本地的恢复目录,如果Master死掉,恢复 master 的时候从恢复目录上读取之前的信息

        ---- 配置:在 standalone 的基础上修改 spark-env.sh 文件,文件内容为:

vim  spark-env.sh
    export JAVA_HOME=/app/java/jdk1.8.0_102
    export SPARK_MASTER_HOST=bigdata0
    export SPARK_MASTER_PORT=7077
    export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/data/spark_recovery"

        ---- 参数讲解:

            --- spark.deploy.recoveryMode  

                => 此参数默认值为:None

                => 基于文件系统的单点故障修复: FILESYSTEM

                => 基于 Zookeeper 实现 Standby 的 Master:  ZOOKEEPER

            --- spark.deploy.recoveryDirectory  指定恢复目录

        ---- 测试:bin/spark-shell --master spark://bigdata1:7077

    ---> 基于 ZooKeeper 实现 Standby 的 Master

        ---- 特点:

Zookeeper 提供了一个 Leader Election 机制,利用这个机制可以保证虽然集群存在多个 Master, 但是只有一个是Active 的,其他的都是 Standby , 当 Active 的 Master 出现故障时,另外的一个 Standby Master 会被选举出来。 由于集群的信息包括 Worker, Driver 和 Application 的信息都已经持久化到 Zookeeper , 因此在切换的过程中只会影响新的 Job 的提交 , 对于正在进行 Job 没有任何的影响

        ---- 配置:在 standalone 的基础上修改 spark-env.sh 文件,文件内空为:

vim  spark-env.sh
    export JAVA_HOME=/app/java/jdk1.8.0_102
    export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=bigdata2:2181,bigdata3:2181,bigdata4:2181 -Dspark.deploy.zookeeper.dir=/spark"

        ---- 测试:

bigdata1: sbin/start-all.sh
bigdata2: sbin/start-master.sh


网站名称:Spark环境部署
文章出自:http://scyanting.com/article/pdesio.html