赞
踩
spark的主要特点概括
1.运行模式多样,可运行于独立的集群模式,Hadoop,Amazon EC2等云环境中,并且可以访问HDFS,Cassandra,HBase,HIve等多种数据源
2.运行速度快,使用DAG执行引擎以支持循环数据流与内存计算
3.通用性,spark提供了完整而强大的技术栈
4.容易使用,支持使用Scala,Java,python和r语言进行编程
Mapreduce
MR主要分成map和reduce两个阶段,核心思想就是分而治之,mapreduce主要负责拆分,即把复杂的任务分解成若干个小任务进行处理,reduce阶段是将mapper阶段得到的结果进行汇总
spark对比mapreduce
spark和Hadoop区别
spark运行架构特点
1.每个application都有自己专属的Executor进程,并且该进程在application运行期间一直驻留,executor进程以多线程的方式运行Task
2.Spark运行过程与资源管理无关,子要能够获取Executor进程并保持通信即可
3.Task采用了数据本地性和推测执行等优化机制,实现“计算向数据靠拢”
核心RDD特点
1.高效的容错性
现有容错机制:数据复制或者记录日志RDD具有天生的容错性:血缘关系,重新计算丢失分区,无需回滚系统,重算过程在不同节点之间并行,只记录粗粒度的操作
2.中间结果持久化到内存,数据在内存中的多个RDD操作直接按进行传递,避免了不必要的读写磁盘开销
3.存放的数据可以是JAVA对象,避免了不必要的对象序列化和反序列化
RDD运行过程
1.创建RDD对象
2.SparkContext负责计算RDD之间的依赖关系,构建DAG
3.DAGScheduler负责把DAG图分解成多个Stage,每个Stage中包含了多个Task,每个Task会被TaskScheduler分发给各个WorkerNode上的Executor去执行
RDD的宽窄依赖
窄依赖是指父RDD的一个分区最多被子RDD的一个分区所用。例如map()、filter()、union()等操作都会产生窄依赖
宽依赖是指,父RDD的一个分区被子RDD的多个分区所用。例如groupByKey()、reduceByKey()、sortByKey()等操作都会产生宽依赖
注意!!!
1. 对于join算子,两种依赖都可能产生!
2.在数据容错方面,窄依赖要优于宽依赖。当子RDD的某一个分区的数据丢失时,若是窄依赖,只需重算和该分区对应的父RDD分区即可,而宽依赖则可能需要重算父RDD的所有分区。
spark的部署与安装
上传并解压安装spark安装包
tar -zxvf / export/ software/ spark-3.0.3-bin-hadoop2.7.tgz
设置环境变量
export SPARK_HOME=/usr/local/soft/spark-3.0.3
export PATH=$PATH:${SPARK_HOME}/bin
export PATH=$PATH:${SPARK_HOME}/sbin
source /etc/profile使环境变量生效
先备份文件cp spark env.sh.template spark env.sh
加一些环境变量:
export SCALA_HOME=/usr/local/soft/scala-2.12.12
export JAVA_HOME=/usr/local/soft/jdk1.8.0_202
export SPARK_MASTER_IP=master
export SPARK_WOKER_CORES=2
export SPARK_WOKER_MEMORY=2g
export HADOOP_CONF_DIR=/usr/local/soft/hadoop-3.1.3/etc/hadoop
#export SPARK_MASTER_WEBUI_PORT=8080
#export SPARK_MASTER_PORT=7070
修改从节点ip
分发文件
scp -r /usr/local/soft/spark-3.0.3/ slave1:/usr/local/soft/
scp -r /usr/local/soft/spark-3.0.3/ slave2:/usr/local/soft/
分别在slave1 slave2上设置环境变量
export SPARK_HOME=/usr/local/soft/spark-3.0.3
export PATH=$PATH:${SPARK_HOME}/binexport PATH=$PATH:${SPARK_HOME}/sbin
source /etc/profile使环境变量生效
查看节点:
Slave1:
Slave2:
在主节点master上出现Master 在s1上出现Worker在s2上出现Worker
Spark-shell
Scala安装
scala是spark编程常用语言之一
网站搜索Scala下载安装
scala部署安装
上传并解压安装scala安装包
设置环境变量
export SCALA_HOME=/usr/local/soft/scala-2.12.12
export PATH=$PATH:${SCALA_HOME}/bin
source /etc/profile使环境变量生效
验证scala 启动成功
scala启动成功
Scala的特点
1.Scala具备强大的并发性,支持函数式编程,可以更好地支持分布式系统
2. Scala语法简洁,能提供优雅的API
3.Scala兼容Java,运行速度快,且能融合到Hadoop生态圈中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。