yarn

spark 集群优化

杀马特。学长 韩版系。学妹 提交于 2020-05-07 12:49:28
只有满怀自信的人,能在任何地方都怀有自信,沉浸在生活中,并认识自己的意志。 前言 最近公司有一个生产的小集群,专门用于运行spark作业。但是偶尔会因为nn或dn压力过大而导致作业checkpoint操作失败进而导致spark 流任务失败。本篇记录从应用层面对spark作业进行优化,进而达到优化集群的作用。 集群使用情况 有数据的目录以及使用情况如下: 目录 说明 大小 文件数量 数据数量占比 数据大小占比 /user/root/.sparkStaging/applicationIdxxx spark任务配置以及所需jar包 5G 约1k 约20% 约100% /tmp/checkpoint/xxx/{commits|metadata|offsets|sources} checkpoint文件,其中commits和offsets频繁变动 2M 约4k 约80% 约0% 对于. sparkStaging目录,不经常变动,只需要优化其大小即可。 对于 checkpoint目录,频繁性增删,从生成周期和保留策略两方面去考虑。 . sparkStaging目录优化 对于 /user/root/.sparkStaging下文件,是spark任务依赖文件,可以将jar包上传到指定目录下,避免或减少了jar包的重复上传,进而减少任务的等待时间。 可以在spark的配置文件spark

Spark JVM调优:降低cache操作的内存占比和调节executor堆外内存与连接等待时长+shuffer调优

吃可爱长大的小学妹 提交于 2020-05-07 11:18:56
一.JVM调优之原理概述以及降低cache操作的内存占比 1、常规性能调优:分配资源、并行度。。。等 2、JVM调优(Java虚拟机):JVM相关的参数,通常情况下,如果你的硬件配置、基础的JVM的配置,都ok的话,JVM通常不会造成太严重的性能问题;反而更多的是,在troubleshooting中,JVM占了很重要的地位;JVM造成线上的spark作业的运行报错,甚至失败(比如OOM)。 3、shuffle调优(相当重要):spark在执行groupByKey、reduceByKey等操作时的,shuffle环节的调优。这个很重要。shuffle调优,其实对spark作业的性能的影响,是相当之高!!!经验:在spark作业的运行过程中,只要一牵扯到有shuffle的操作,基本上shuffle操作的性能消耗,要占到整个spark作业的50%~90%。10%用来运行map等操作,90%耗费在两个shuffle操作。groupByKey、countByKey。 4、spark操作调优(spark算子调优,比较重要):groupByKey,countByKey或aggregateByKey来重构实现。有些算子的性能,是比其他一些算子的性能要高的。foreachPartition替代foreach。如果一旦遇到合适的情况,效果还是不错的。 理论基础: spark是用scala开发的

Spark Shuffle 中 JVM 内存使用及配置内幕详情

送分小仙女□ 提交于 2020-05-07 02:59:58
本课主题 JVM 內存使用架构剖析 Spark 1.6.x 和 Spark 2.x 的 JVM 剖析 Spark 1.6.x 以前 on Yarn 计算内存使用案例 Spark Unified Memory 的运行原理和机制 引言 Spark 从1.6.x 开始对 JVM 的内存使用作出了一种全新的改变,Spark 1.6.x 以前是基于静态固定的JVM内存使用架构和运行机制,如果你不知道 Spark 到底对 JVM 是怎么使用,你怎么可以很有信心地或者是完全确定地掌握和控制数据的缓存空间呢,所以掌握Spark对JVM的内存使用内幕是至关重要的。很多人对 Spark 的印象是: 它是基于内存的,而且可以缓存一大堆数据 ,显现 Spark 是基于内存的观点是错的, Spark 只是优先充分地利用内存而已 。如果你不知道 Spark 可以缓存多少数据,你就误乱地缓存数据的话,肯定会有问题。 在数据规模已经确定的情况下,你有多少 Executor 和每个 Executor 可分配多少内存 (在这个物理硬件已经确定的情况下),你必须清楚知道你的內存最多能够缓存多少数据;在 Shuffle 的过程中又使用了多少比例的缓存,这样对于算法的编写以及业务实现是至关重要的!!! 文章的后部份会介绍 Spark 2.x 版本 JVM 的内存使用比例,它被称之为 Spark Unified Memory

.NET Core前后端分离快速开发框架(Core.3.1+AntdVue)

删除回忆录丶 提交于 2020-05-06 23:15:09
.NET Core前后端分离快速开发框架(Core.3.1+AntdVue) 引言 简介 环境搭建 开发环境要求: 基础数据库构建: 数据库设计规范 运行 使用教程 系统配置 快速开发 管理员登录 系统用户管理 系统角色管理 权限管理 接口秘钥管理 系统日志 操作日志 事务使用 读写分离分库分表 常见疑问 如何进行联表查询 如何切换数据库类型 如何使用多个数据库 结语 引言 时间真快,转眼今年又要过去了。回想今年,依次开源发布了 Colder.Fx.Net.AdminLTE(254Star) 、 Colder.Fx.Core.AdminLTE(335Star) 、 DotNettySocket(82Star) 、 IdHelper(47Star) ,这些框架及组件都是本着以实际出发,实事求是的态度,力求提高开发效率(我自己都是第一个使用者),目前来看反响不错。但是随着前端和后端技术的不断变革,尤其是前端,目前大环境已经是前后端完全分离为主的开发模式,在这样的大环境和必然趋势之下,传统的MVC就显得有些落伍了。在这样的背景下,一款前后端分离的.NET开发框架就显得尤为必要,由此便定了框架的升级目标: 前后端分离 。 首先后端技术的选择,从目前的数据来看,.NET Core的发展远远快于.NET Framework,最简单的分析就是Colder.Fx.Core

npm安装yarn、cnpm

血红的双手。 提交于 2020-05-06 12:32:15
安装yarn npm install -g yarn --registry=https://registry.npm.taobao.org ln -s /usr/local/nodejs/bin/yarn /usr/local/bin 获取配置 # yarn config get registry https://registry.yarnpkg.com 设置配置 # yarn config set registry https://registry.npm.taobao.org -g yarn config v1.22.4 success Set "registry" to "https://registry.npm.taobao.org". Done in 0.03s. # yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g yarn config v1.22.4 success Set "sass_binary_site" to "http://cdn.npm.taobao.org/dist/node-sass". Done in 0.03s. 安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao

Hadoop 伪分布式运行模式

╄→尐↘猪︶ㄣ 提交于 2020-05-06 09:17:42
3 Hadoop 伪分布式运行模式 3.1 启动HDFS 并运行 MapReduce 程序 3.1.1 分析 (1)配置集群 (2)启动、测试集群增、删、查 (3)执行WordCount案例 3.1.2 执行步骤 3.1.2.1 配置集群 3.1.2.1.1 配置 hadoop-env.sh [atlingtree@hadoop100 hadoop-2.9.2]$ cd etc/hadoop/ [atlingtree@hadoop100 hadoop]$ vim hadoop-env.sh 将文件中的JAVA_HOME修改成对应的位置,保存退出。 3.1.2.1.2 配置core-site.xml [atlingtree@hadoop100 hadoop]$ vim core-site.xml 添加如下配置: <!-- 指定HDFS中NameNode的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop100:9000</value> </property> <!-- 指定Hadoop运行时产生文件的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.9.2/data/tmp</value> <

第06讲:Flink 集群安装部署和 HA 配置

一笑奈何 提交于 2020-05-05 23:53:46
我们在这一课时将讲解 Flink 常见的部署模式:本地模式、Standalone 模式和 Flink On Yarn 模式,然后分别讲解三种模式的使用场景和部署中常见的问题,最后将讲解在生产环境中 Flink 集群的高可用配置。 Flink 常见的部署模式 环境准备 在绝大多数情况下,我们的 Flink 都是运行在 Unix 环境中的,推荐在 Mac OS 或者 Linux 环境下运行 Flink。如果是集群模式,那么可以在自己电脑上安装虚拟机,保证有一个 master 节点和两个 slave 节点。 同时,要注意在所有的机器上都应该安装 JDK 和 SSH。JDK 是我们运行 JVM 语言程序必须的,而 SSH 是为了在服务器之间进行跳转和执行命令所必须的。关于服务器之间通过 SSH 配置公钥登录,你可以直接搜索安装和配置方法,我们不做过度展开。 Flink 的安装包可以在这里下载。需要注意的是,如果你要和 Hadoop 进行集成,那么我们需要使用到对应的 Hadoop 依赖,下面将会详细讲解。 Local 模式 Local 模式是 Flink 提供的最简单部署模式,一般用来本地测试和演示使用。 我们在这里下载 Apache Flink 1.10.0 for Scala 2.11 版本进行演示,该版本对应 Scala 2.11 版本。 将压缩包下载到本地,并且直接进行解压,使用

cdh6.3.2配置Hive on Spark

筅森魡賤 提交于 2020-05-05 21:29:43
环境:戴尔xps15(32G内存、1T固态、外接雷电3接口的三星1T移动固态、WD Elements的4T外接机械硬盘 )win10三台Centos7虚拟机用于测试cdh6.3.2集群(免费的社区版的最高版本)以及自编译phoenix5.1.0、flink1.10.0、elasticsearch6.6.0等各源码。 首先,该集群试用企业版功能到期后,无法启动 Reports Manager 角色(见图一)且 Alert Publisher 角色部分功能被阉割(见图二)。 1.1、添加服务以搭建Hive on Spark,由于笔记本上虚拟机的cdh集群角色易挂故HDFS配置为HA高可用模式。 1.2、Hive服务的“配置”处搜索spark(见下图)勾选两配置项,且图中带蓝色回退小按钮的参数项为我调试成功后的最终配置(注:各内存若不修改默认值,则初次运行hive时各种报错) 1.3、在上图勾选spark时会提示要配置Spark On Yarn,到spark服务的“配置”处确认一下 1.4、Yarn服务“配置”处第10页修改默认资源值,可避免下面所列报错 其中yarn.nodemanager.resource.memory-mb和yarn.scheduler.maximum-allocation-mb为必修项(由默认值1改为2)。而yarn.nodemanager.resource

YARN常用参数

我只是一个虾纸丫 提交于 2020-05-05 15:43:59
name value description yarn.nodemanager.resource.memory-mb -1 Amount of physical memory, in MB, that can be allocated for containers. If set to -1 and yarn.nodemanager.resource.detect-hardware-capabilities is true, it is automatically calculated(in case of Windows and Linux). In other cases, the default is 8192MB. yarn.scheduler.maximum-allocation-mb 8192 The maximum allocation for every container request at the RM, in MBs. Memory requests higher than this will throw a InvalidResourceRequestException. yarn.scheduler.maximum-allocation-vcores 4 The maximum allocation for every container request

React Navigation5.0系列三:Drawer navigation的使用

↘锁芯ラ 提交于 2020-05-04 20:19:40
首先祝大家五四青年节及五一假期快乐。 在前面系列文章中我们了解5.0最新版本堆栈导航和选项卡导航的用法,今天我们来看看抽屉导航的使用方法。 React Navigation5.0系列一:StackNavigator的使用 React Navigation5.0系列二:TabNavigation的使用 @[toc] 安装 yarn add @react-navigation/drawer 使用 1.导入对应的组件 import { createDrawerNavigator } from '@react-navigation/drawer' 2.创建两个页面 const SettingsScreen = ({ navigation }) => { return ( <View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}> <Text>SettingScreen</Text> <Button title="Go to Details" onPress={() => navigation.navigate('Home')} /> </View> ) } const HomeScreen = ({ navigation }) => { return ( <View style={{ flex: 1,