zl程序教程

您现在的位置是:首页 >  工具

当前栏目

spark 介绍以及集群搭建

集群Spark 介绍 搭建 以及
2023-09-27 14:22:12 时间

1.1 spark的介绍

Spark是一种快速、通用、可扩展的大数据分析引擎,是基于内存计算的大数据并行计算框架,spark基于内存计算,提高了在大数据环境下数据处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价的硬件之上,形成spark集群。

Spark是基于内存计算的框架,计算速度非常快,但是需要注意到是,spark仅仅只涉及数据的计算,并没有涉及数据存储。(只有计算功能,没有存储功能和hadoop有明显区别

1.2 spark和M/R的区别

Spark是基于map reduce算法实现的分布式计算,拥有hadoop mapreducer所具有的优点,但不同于map reducer的是,spark中的job中间输出和结果可以保存在内存中,从而不需要读写hdfs

具有更好的适应用数据挖据和机器学习等需要迭代的map reducer算法

1.3 spark的特性

1.3.1 速度快

据不完全统计,同样的数据在磁盘处理的情况,spark比hadoop快10倍,在内存中spark比hadoop快100倍

1.3.2 易用性

可以快速写一个spark程序,支持java ,scala,python等主流语言

1.3.3 通用性

包括sparksql,spark streaming,mlib,Graphx等不同子项目。

1.3.4 兼容性

Spark的任务就是一个计算程序。

StandAlone,它是spark集群自带的模式,整个任务的资源分配有master老大去负责。

Yarn:可以把spark程序提交到yarn中运行,整个任务的资源分配到ResourceManager。

1.4 spark比mapreducer快的原因

1.mapreducer在处理任务的时候,每一个job的输出结果都会落地到磁盘,后续有其他的job需要依赖于前面job的输出结果,这个时候只能够从磁盘中加载得到,需要大量的磁盘I/O操作。

Spark在处理任务的时候,每一个job的输出结果可以保存在内存中,后续有其它的job需要依赖于前面的job输出结果,这个时候可以直接从内存中获取得到,大大减少磁盘的I/O操作,最后性能肯定是大大的提升。

例如:select name,age from (select name,age from studnet age>30);

       Job2----------------------------------->job1,job2依赖job1的输出结果。

  1. mapreduce任务是以进程的方式在yarn的集群中。比如说一个mapreducer任务中有100个map task,后期处理这100个map task就需要开启100个进程。

Spark任务是以线程的方式运行在spark集群中的进程里面,比如说一个spark任务有100个maptask,这个时候可以极端一点,只需要启动一个进程,在一个进程中运行100个线程就可以。

注意:进程的启动与线程的启动代价肯定是不一样的,一个进程的启动需要的调度时间和资源远远大于一个线程。

 

  • Spark集群的安装部署
  • 下载对应的安装包

 

 

    1.  规划安装目录

                                                                

    /etc/servers/

    1.   上传安装包到服务器中
    2.    解压安装包到指定的规划目录

Tar   -zxvf   spark-2.13-bin-hadoop2.7.tgz -C /export/servers

 

    1.    重命名解压目录

Mv     spark-2.13-bin-hadoop2.7    spark

    1.    修改配置文件

进入到spark安装目录下的conf文件夹中

Vim   spark-env.sh (mv spark-env.sh.template spark-env.sh)

内容如下:

#配置java环境变量

Export  JAVA_HOME=/export/servers/jdk

#配置master地址

Export  SPARK_MASTER_HOST=node1

#配置master的端口

Export  SPARK_MASTER_PORT=7077

 

Vim  slaves (mv slaves.template slaves)

#配置内容如下:指定哪些节点是小弟worker

Node2

Node3

    1. 配置spark的环境变量

   Vim   /etc/profile

Exprot SPARK_HOME=export/servers/spark

Export PATH=$PATH:$SPARK_HOME/sbin:$SPARK_HOME/bin

    1. 分发spark的安装目录和环境变量

Scp  -r  spark node2:/export/servers

Scp  -r  spark node3: /export/servers

 

Scp  /etc/profile  node2:/etc

Scp   /etc/profile  node3:/etc

    1. 让所有spark节点的环境变量生效

在所有的节点上执行:

Source   /etc/profile

    1. 启动和关闭

#启动

在主节点进入到sbin目录下:

./start-all.sh

#停止

在主节点进入到sbin目录下:

./stop-all.sh