Linux环境Spark安装配置及使用

栏目: 编程工具 · 发布时间: 5年前

  • 大数据计算引擎
  • 官网:spark.apache.org/
  • 官方介绍:Apache Spark™ is a unified analytics engine for large-scale data processing.(Apache Spark™是一个用于大规模数据处理的统一分析引擎。)
  • Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLlib等子项目,Spark是基于内存计算的大数据并行计算框架。Spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将Spark部署在大量廉价硬件之上,形成集群。
  • Spark生态圈:
    • Spark Core:RDD(弹性分布式数据集)
    • Spark SQL
    • Spark Streaming
    • Spark MLLib:协同过滤,ALS,逻辑回归等等 --> 机器学习
    • Spark Graphx:图计算

(2) 为什么要学习Spark

  • Hadoop的MapReduce计算模型存在的问题:
    • MapReduce的核心是Shuffle(洗牌)。在整个Shuffle的过程中,至少会产生6次的I/O。

      Linux环境Spark安装配置及使用
    • 中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。另外,当一些查询(如:Hive)翻译到MapReduce任务时,往往会产生多个Stage(阶段),而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果,而I/O的效率往往较低,从而影响了MapReduce的运行速度。

  • Spark的最大特点:基于内存
  • Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,弥补MapReduce的不足。

(3) Spark的特点:快、易用、通用、兼容性

  • 快——与Hadoop的MapReduce相比,Spark基于内存的运算速度要快100倍以上,即使,Spark基于硬盘的运算也要快10倍。Spark实现了高效的DAG执行引擎,从而可以通过内存来高效处理数据流。
  • 易用——Spark支持 JavaPython 和Scala的API,还支持超过80种高级算法,使用户可以快速构建不同的应用。而且Spark支持交互式的Python和Scala的shell,可以非常方便地在这些 shell 中使用Spark集群来验证解决问题的方法。
  • 通用性——Spark提供了统一的解决方案。Spark可以用于批处理、交互式查询(Spark SQL)、实时流处理(Spark Streaming)、机器学习(Spark MLlib)和图计算(GraphX)。这些不同类型的处理都可以在同一个应用中无缝使用。Spark统一的解决方案非常具有吸引力,毕竟任何公司都想用统一的平台去处理遇到的问题,减少开发和维护的人力成本和部署平台的物力成本。另外Spark还可以很好的融入Hadoop的体系结构中可以直接操作HDFS,并提供Hive on Spark、Pig on Spark的框架集成Hadoop。
  • 易用性——Spark可以非常方便地与其他的开源产品进行融合。比如,Spark可以使用Hadoop的YARN和Apache Mesos作为它的资源管理和调度器,器,并且可以处理所有Hadoop支持的数据,包括HDFS、HBase和Cassandra等。这对于已经部署Hadoop集群的用户特别重要,因为不需要做任何数据迁移就可以使用Spark的强大处理能力。Spark也可以不依赖于第三方的资源管理和调度器,它实现了Standalone作为其内置的资源管理和调度框架,这样进一步降低了Spark的使用门槛,使得所有人都可以非常容易地部署和使用Spark。此外,Spark还提供了在EC2上部署Standalone的Spark集群的工具。

2. Spark体系架构

Linux环境Spark安装配置及使用
Linux环境Spark安装配置及使用
  • Spark的运行方式
    • Yarn
    • Standalone:本机调试(demo)
  • Worker(从节点):每个服务器上,资源和任务的管理者,只负责管理一个节点。
  • 执行过程:
    • 一个Worker 有多个 Executor。 Executor是任务的执行者,按阶段(stage)划分任务。—> RDD
  • 客户端:Driver Program 提交任务到集群中。
    • spark-submit
    • spark-shell

3. Spark-2.1.0安装流程

(1) 准备工作

  • 具备java环境
  • 配置主机名
  • 配置免密码登录
  • 防火墙关闭

(2) 解压spark-2.1.0-bin-hadoop2.7.tgz安装包到目标目录下:

  • tar -zxvf .tar.gz -C 目标目录

(3) 为后续方便,重命名Spark文件夹:

  • mv spark-2.1.0-bin-hadoop2.7/ spark-2.1.0

(4) Spark目录介绍

  • bin —— Spark操作命令
  • conf —— 配置文件
  • data —— Spark测试文件
  • examples —— Spark示例程序
  • jars
  • LICENSE
  • licenses
  • NOTICE
  • python
  • README.md
  • RELEASE
  • sbin —— Spark集群命令
  • yarn —— Spark-yarn配置

(5) 修改配置文件:

  • <1>. 配置spark-env.sh:
    • 进入spark-2.1.0/conf路径,重命名配置文件:
      • mv spark-env.sh.template spark-env.sh
    • 修改spark-env.sh信息:
      • vi spark-env.sh
      • export JAVA_HOME=/opt/module/jdk1.8.0_144
        export SPARK_MASTER_HOST=bigdata01
        export SPARK_MASTER_PORT=7077
        复制代码
  • <2>. 配置slaves:
    • 进入spark-2.1.0/conf路径,重命名配置文件:
      • mv slaves.template slaves
    • 修改slaves信息:
      • vi slaves
      • bigdata02
        bigdata03
        复制代码

(6) 配置环境变量:

  • 修改配置文件:
    • vi /etc/profile
  • 增加以下内容:
    export SPARK_HOME=spark安装路径
    export PATH=$PATH:$SPARK_HOME/bin
    export PATH=$PATH:$SPARK_HOME/sbin
    
  • 声明环境变量:
    • source /etc/profile

(6) 集群配置:

  • 拷贝配置好的spark到其他机器上
    scp -r spark-2.1.0/ bigdata02:$PWD
    scp -r spark-2.1.0/ bigdata03:$PWD
    

(7) 启动:

  • 启动主节点:
    • start-master.sh
  • 启动从节点:
    • start-slaves.sh
  • 启动shell:
    • spark-shell
  • 通过网页端查看:

(8) 关闭:

  • 关闭主节点:
    • stop-master.sh
  • 关闭从节点:
    • stop-slaves.sh

4. Spark HA的实现

(1) 基于文件系统的单点恢复

  • 主要用于开发或测试环境。

  • 当spark提供目录保存spark Application和worker的注册信息,并将他们的恢复状态写入该目录中,一旦Master发生故障,就可以通过重新启动Master进程(sbin/start-master.sh),恢复已运行的spark Application和worker的注册信息。

  • 基于文件系统的单点恢复,主要是在spark-env.sh里对SPARK_DAEMON_JAVA_OPTS设置

    Linux环境Spark安装配置及使用
    • 创建存放文件夹: mkdir /opt/module/spark-2.1.0/recovery
    • 修改配置信息:
      vi spark-env.sh
      export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/opt/module/spark-2.1.0/recovery"
      

以上所述就是小编给大家介绍的《Linux环境Spark安装配置及使用》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

TCP/IP详解 卷1:协议

TCP/IP详解 卷1:协议

W.Richard Stevens / 范建华 / 机械工业出版社 / 2000-4-1 / 45.00元

《TCP/IP详解卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者W.Richard Stevens用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。 《TCP/IP详解卷1:协议》适合作为计算机专业学......一起来看看 《TCP/IP详解 卷1:协议》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

html转js在线工具
html转js在线工具

html转js在线工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具