zoukankan      html  css  js  c++  java
  • spark1.6.1 on yarn搭建部署

    注:本文是建立在hadoop已经搭建完成的基础上进行的。

    Apache Spark是一个分布式计算框架,旨在简化运行于计算机集群上的并行程序的编写。该框架对资源调度,任务的提交、执行和跟踪,节点间的通信以及数据并行处理的内在底层操作都进行了抽象。它提供了一个更高级别的API用于处理分布式数据。从这方面说,它与Apache Hadoop等分布式处理框架类似。但在底层架构上,Spark与它们有所不同。

    Spark起源于加利福利亚大学伯克利分校的一个研究项目。学校当时关注分布式机器学习算法的应用情况。因此,Spark从一开始便为应对迭代式应用的高性能需求而设计。在这类应用中,相同的数据会被多次访问。该设计主要靠利用数据集内存缓存以及启动任务时的低延迟和低系统开销来实现高性能。再加上其容错性、灵活的分布式数据结构和强大的函数式编程接口,Spark在各类基于机器学习和迭代分析的大规模数据处理任务上有广泛的应用,这也表明了其实用性。

    Spark支持四种运行模式。

    • 本地单机模式:所有Spark进程都运行在同一个Java虚拟机(Java Vitural Machine,JVM)中。
    • 集群单机模式:使用Spark自己内置的任务调度框架。
    • 基于Mesos:Mesos是一个流行的开源集群计算框架。
    • 基于YARN:即Hadoop 2,它是一个与Hadoop关联的集群计算和资源调度框架

    spark是由Scala语言编写的,但是运行的环境是jvm,所以需要安装JDK 
    编译过程:Python、java、Scala编写的代码 -> scala编译器编译解释,生成class文件 -> 由jvm负责执行class文件(与java代码执行一致)

    Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处

    由于 spark是由Scala语言编写的,所以依赖Scala环境,且由Scala编写的执行代码也需要环境进行编译。

    hdfs是作为spark的持久层,所以需要安装Hadoop,同时如果需要配置spark on yarn,则Hadoop需要安装yarn版本的

    spark官方详细参数配置手册:http://spark.apache.org/docs/latest/configuration.html

    下载地址:http://spark.apache.org/downloads.html

    ---------------------------------------------------------------------------------------------------------

    1、安装Scala

    官网下载地址: http://www.scala-lang.org/download/all.html

    下载后解压到指定目录,例如 /usr/local/scala

    # tar -zxvf scala-2.11.8.tgz  ;  mv scala-2.11.8 /usr/local/scala

    配置环境变量:

    # vim /etc/profile

    export  SCALA_HOME=/usr/local/scala/

    export  PATH=$SCALA_HOME/bin:$PATH 

    2、编辑conf/spark-env.sh文件

    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export SPARK_MASTER_IP=dataMaster30
    export SPARK_EXECUTOR_INSTANCES=3
    export SPARK_EXECUTOR_CORES=3
    export SPARK_EXECUTOR_MEMORY=8g
    export SPARK_DRIVER_MEMORY=2g

    3、编辑slaves文件

    #localhost
    dataSlave31
    dataSlave32
    dataSlave33
    dataSlave34
    dataSlave35

    4、启动spark集群:

    /usr/local/spark/sbin/start-all.sh

    关闭spark集群:

    /usr/local/spark/sbin/stop-all.sh

     

    5、检测是否安装成功:

    # jps (Master节点) 此时会多出现一个Master进程

     

    1701 Master
    1459 SecondaryNameNode
    2242 NameNode
    1907 ResourceManage

    # jps  (Worker节点) 此时会多出现一个Worker进程

    5387 Worker
    4269 DataNode
    4398 NodeManager

     

    执行以下测试命令,查看spark单机运行是否成功:

    /usr/local/spark/bin/run-example SparkPi 1000 

    执行以下测试命令,查看spark集群运行是否成功: 

    cd /usr/local/spark

     ./bin/spark-submit --master spark://master60:7077 --class org.apache.spark.examples.SparkPi  lib/spark-examples-1.6.1-hadoop2.6.0.jar 1000

    如果没有报错的话,则证明spark确实部署成功。

     

    6、查看集群状态:

    http://master30:8080

     

    最后设置开机自启动:

    vim /etc/rc.local

    su - hadoop -c "/usr/local/hadoop/sbin/start-all.sh"
    su - hadoop -c "/usr/local/spark/sbin/start-all.sh"

     

  • 相关阅读:
    监听属性改变defineProperty和文档碎片createDocumentFragment
    this指向bind、call、apply
    css mask文字渐变+clip-path裁剪路径+border-image图片边框
    浅谈 Hybrid App
    activiti与flowable的区别(转)
    JAVA:定时器的三种方法(详细注解)
    Activiti5
    别再写满屏的try-catch了,真丑,全局异常处理不会吗?(转)
    共享锁、排他锁、互斥锁、悲观锁、乐观锁、行锁、表锁、页面锁、不可重复读、丢失修改、读脏数据...(转)
    什么是跨域?跨域解决方法(转)
  • 原文地址:https://www.cnblogs.com/wjoyxt/p/5531857.html
Copyright © 2011-2022 走看看