文档章节

SPARK配置

pearma
 pearma
发布于 2017/02/08 13:21
字数 766
阅读 62
收藏 0

SPARK配置

  1. spark的配置有几种,这里主要讲如何与yarn结合。

    其实也没什么好讲,因为实在太简单了。如果运用yarn机制,那么spark没有什么服务需要启动。只是在执行spark代码时,需要通过yarn来临时加载spark解释器,并执行用户的spark程序。原理就是这么简单。

    所以在提交spark程序的时候,告诉spark解释器, 这次的程序通过yarn来分配节点,每个节点计划使用多少内存和cpu来运行程序。这就实现了spark和yarn的结合。这个问题的难点就在于如何来指挥yarn,合理的分配资源。

    首先看一下yarn的资源管理架构。yarn负责提供container,让每个资源请求方的任务,都放在container里运行。每个节点上都可以产生若干个container。当然,这个是yarn的术语,对于spark来说container就是executor。

    yarn的container里面有啥,无非就是cpu+内存.这里的cpu,yarn称之为vcore,也就是intel cpu核的概念。spark在执行任务的时候,首先要规划一下,本次任务申请几个容器来跑,每个容器里放几颗cpu和多大内存 。

    一般来说,我们运行spark任务,都希望能够把集群资源用满。那么集群的资源,是怎么定的呢?这个通常是由yarn来定的。yarn会确定总的资源大小,然后spark任务就只能在这个总的资源大小里来申请。假设yarn划定的资源池为每节点,15vcore, 63G内存,那么这就是可分配资源。

    根据总的资源,我们来规划我们需要的executor/container,以及对应的cpu和内存。一般来说,容器的数量其实是根据cpu个数来反推的。所以我们会先确定每个容器里的cpu个数,通常不要超过5个,这样就可以限制每个容器中并行任务的数量。一个cpu对应一个任务。确定cpu数量之后,根据集群总的cpu数量,来计算可以有多少个容器。例如以上例子中,如果有6个节点,那么集群总的cpu数量为90,那么集群上最多可以有18个container,也就是18个executor。但是,通常要给master节点留出点资源,所以17个executor就差不多了。

此外,为了提高执行效率,可以事先把$SPARK_HOME/jars里的jar包,都上传到hdfs文件系统,避免每次在执行用户程序时,都要上传一遍。然后修改spark-defaults.conf文件,告知spark程序,文件放在hdfs什么地方。

>hadoop fs -put $SPARK_HOME/jars/*.jar /user/spark/share/lib
>vi $SPARK_HOME/conf/spark-defaults.conf
spark.yarn.jars hdfs://hd-master:9000/user/spark/share/lib/*.jar

spark执行错误,例如客户端连接超时.此时有可能是因为资源不足的缘故.例如cpu不够分,内存不够分。

© 著作权归作者所有

pearma
粉丝 3
博文 67
码字总数 26042
作品 0
徐汇
高级程序员
私信 提问
spark单机模式 和 集群模式 安装

1.spark单机模式安装 实现步骤: 1)安装和配置好JDK 2)上传和解压Spark安装包 3)进入Spark安装目录下的conf目录 复制conf spark-env.sh.template 文件为 spark-env.sh 在其中修改,增加如...

仟昭
03/01
134
0
Spark安装启动 and 在程序中调用spark服务

1.软件准备 我的系统环境为ubuntu 13.10 1.scala-2.9.3.tgz http://www.scala-lang.org/files/archive/scala-2.9.3.tgz 由于spark是依赖scala2.9.3开发的,所以只能安装2.9.3,我试的时候一开...

zachary124
2014/01/25
18.4K
9
Hive on Spark 伪分布式环境搭建过程记录

进入hive cli是,会有如下提示: Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) ......

PeakFang-BOK
2018/12/13
69
0
Spark成为大数据高手进阶步骤

什么是Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapRedu...

MoksMo
2015/11/05
2.1K
1
spark1.2.0版本搭建伪分布式环境

、下载scala2.11.5版本,下载地址为:http://www.scala-lang.org/download/2.11.5.html 2、安装和配置scala: 第一步:上传scala安装包 并解压 第二步 配置SCALAHOME环境变量到bashprofile 第...

stark_summer
2015/02/09
312
2

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
4
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
6
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
4
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
993
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部