欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Spark-Unit1-spark概述与安装部署

程序员文章站 2024-01-07 20:26:22
一、Spark概述 spark官网:spark.apache.org Spark是用的大规模数据处理的统一计算引擎,它是为大数据处理而设计的快速通用的计算引擎。spark诞生于加油大学伯克利分校AMP实验室。 mapreduce(MR)与spark的对比: 1.MR在计算中产生的结果存储在磁盘上,s ......

一、spark概述

  spark官网:spark.apache.org

  spark是用的大规模数据处理的统一计算引擎,它是为大数据处理而设计的快速通用的计算引擎。spark诞生于加油大学伯克利分校amp实验室。

  mapreduce(mr)与spark的对比:

    1.mr在计算中产生的结果存储在磁盘上,spark存储在内存中;

    2.磁盘运行spark的速度是mr的10倍,内存运行spark是mr的100多倍;

    3.spark并不是为了替代hadoop,而是为了补充hadoop;

    4.spark没有存储,但他可以继承hdfs。

  spark启用的是内存分布式数据集,而scala语言可以轻松的处理分布式数据集,scala语言可以说是为spark而生的,而spark 的出现推动了scala语言的发展。

 

二、spark特点

  1.速度快

    磁盘运行spark的速度是mr的10倍,内存运行spark是mr的100多倍;

    spark使用最先进的dag调度程序,查询优化器和物理执行引擎,实现批处理和流处理的高性能。

    注释:dag:有向无环图,上一个rdd的计算结果作为下一个rdd计算的初始值,可以迭代成千上万次。

          查询优化器:指的是spark sql

       批处理:spark sql

       流处理:spark streaming

  2.便于使用

    支持java/scala/python/r/sql编写应用程序

  3.通用性高

    不仅支持批处理、流处理,

    还支持机器学习(mllib:machine learning library)和图形计算(graphx)

  4.兼容性高

    spark运行在hadoop,apache mesos。kubernetes,独立或云端。它可以访问各种数据源。

    spark实现了standalone模式作为内置的资源管理和调度框架。

 

三、spark的安装部署

  1.准备工作:

    新建三台虚拟机(建议2g内存,1g也可以)/使用远程连接工具连接 / 关闭防火墙 / 修改主机名

    / 修改映射文件 / 设置免密登陆 / 安装jdk(1.8以上版本)

  2.在官网下载spark 安装包(我是2.2.0版本)

    然后上传到linux系统,解压,删包,重命名

  3.修改spark部分配置文件

    进入spark->conf

    1)重命名spark-env.sh.template 为 spark-env.sh,进入该文件

    添加配置信息:

    export java_home=/root/sk/jdk1.8.0_132    //jdk安装路径

    export spark_master_host=spark-01    //spark主节点机器名

    export spark_master_port=7077       //spark主机点端口号

    2)重命名slaves.template(好像是这个)为slaves,进入该文件

    删除最后一行“localhost”

    添加:spark-02

       spark-03    //其他两台从节点worker,便于一键启动

  4.发送修改好的spark解压文件夹到其他两台机器

    scp -r sprk sprk-02:$pwd

  5.启动spark,访问web页面

    在spark 的sbin目录下输入命令:

    ./start-all.sh

    然后通过ip:端口号访问ui界面,如:

    192.168.50.186:8080Spark-Unit1-spark概述与安装部署

四、spark的ui界面详解
   url:统一资源定位符,spark-master的访问地址
   rest url:可以通过rest的方式访问集群
   alive workers:存活的worker数量
   cores in use:可以使用的核心数量
   memory in use:可以使用的内存大小
   applications:正在运行和已经完成的应用程序
   driver:通过driver提交的任务情况
   status:节点的状态