yarn

Spark学习之路 (十二)SparkCore的调优之资源调优

不想你离开。 提交于 2021-02-14 07:06:44
摘抄自: https://tech.meituan.com/spark-tuning-basic.html 一、概述 在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪种情况,都会导致Spark作业的运行效率低下,甚至根本无法运行。因此我们必须对Spark作业的资源使用原理有一个清晰的认识,并知道在Spark作业运行过程中,有哪些资源参数是可以设置的,以及如何设置合适的参数值。 二、Spark作业基本运行原理 详细原理见上图。我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程。根据你使用的部署模式(deploy-mode)不同,Driver进程可能在本地启动,也可能在集群中某个工作节点上启动。Driver进程本身会根据我们设置的参数,占有一定数量的内存和CPU core。而Driver进程要做的第一件事情,就是向集群管理器(可以是Spark Standalone集群

Hadoop High Availability高可用

时间秒杀一切 提交于 2021-02-14 05:34:30
HDFS HA Namenode HA 详解     hadoop2.x 之后,Clouera 提出了 QJM / Qurom Journal Manager ,这是一个基于 Paxos 算法(分布式一致性算法)实现的 HDFS HA 方案,它给出了一种较好的解决思路和方案,QJM 主要优势如下:   不需要配置额外的高共享存储,降低了复杂度和维护成本。   消除 spof(单点故障)。   系统鲁棒性(Robust)的程度可配置、可扩展。    基本原理就是用 2N+1 台 JournalNode 存储 EditLog,每次写数据操作有>=N+1 返回成功时即认为该次写成功,数据不会丢失了 。当然这个算法所能容忍的是最多有 N台机器挂掉,如果多于 N 台挂掉,这个算法就失效了。这个原理是基于 Paxos 算法。   在 HA 架构里面 SecondaryNameNode 已经不存在了,为了保持 standby NN 时时的与 Active NN 的元数据保持一致,他们之间交互通过 JournalNode 进行操作同步。   任何修改操作在 Active NN 上执行时,JournalNode 进程同时也会记录修改 log到至少半数以上的 JN 中,这时 Standby NN 监测到 JN 里面的同步 log 发生变化了会读取 JN 里面的修改 log

已有的react-native 项目配置TypeScript

丶灬走出姿态 提交于 2021-02-13 14:53:34
来自:https://zhuanlan.zhihu.com/p/83291118 1.给RN项目添加 TypeScript yarn add --dev typescript 或者 npm install typescript --save 2.给项目添加 react-native-typescript-transformer 库 yarn add --dev react-native-typescript-transformer 3.初始化 TypeScript 配置文件 yarn tsc --init --pretty --jsx react-native 打开tsconfig.json文件 { "compilerOptions" : { /* Basic Options */ // "incremental": true, /* Enable incremental compilation */ "target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */ "module": "commonjs", /* Specify module code

hadoop(1)---hadoop的介绍和几种模式。

元气小坏坏 提交于 2021-02-13 12:16:15
一、什么是hadoop? Hadoop软件库是一个开源框架, 允许使用简单的编程模型跨计算机集群分布式处理大型数据集。 它旨在从单个服务器扩展到数千台计算机,每台计算机都提供本地计算和存储。 库本身不是依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,从而在计算机集群之上提供高可用性服务,每个计算机都可能容易出现故障。是大数据技术的基础。 hadoop所包含的模块(从官网借鉴的): ♥ hadoop分布式文件系统(HDFS):一种分布式文件系统,能够提供高可靠、高可用、可扩展以及对应用程序数据的高吞吐量访问。 ♥ yarn :作业调度和资源管理的框架。 ♥ MapReduce :基于yarn框架,用于并行计算处理大型数据集,是一种计算框架。 ♥ ambari :基于Web的工具,用于配置,管理和监控Apache Hadoop集群,包括对Hadoop HDFS,Hadoop MapReduce,Hive,HCatalog,HBase,ZooKeeper,Oozie,Pig和Sqoop的支持。Ambari还提供了一个用于查看群集运行状况的仪表板,例如热图,以及可视化查看MapReduce,Pig和Hive应用程序的功能,以及以用户友好的方式诊断其性能特征的功能。 ♥ avro :数据序列化系统。 ♥ cassandra:可扩展的多主数据库,没有单点故障。 ♥ hbase

MapReduce与Yarn 的详细工作流程分析

可紊 提交于 2021-02-11 21:28:41
MapReduce详细工作流程之Map阶段 如上图所示 首先有一个200M的待处理文件 切片:在客户端提交之前,根据参数配置,进行任务规划,将文件按128M每块进行切片 提交:提交可以提交到本地工作环境或者Yarn工作环境,本地只需要提交切片信息和xml配置文件,Yarn环境还需要提交jar包;本地环境一般只作为测试用 提交时会将每个任务封装为一个job交给Yarn来处理(详细见后边的Yarn工作流程介绍),计算出MapTask数量(等于切片数量),每个MapTask并行执行 MapTask中执行Mapper的map方法,此方法需要k和v作为输入参数,所以会首先获取kv值; 首先调用InputFormat方法,默认为TextInputFormat方法,在此方法调用createRecoderReader方法,将每个块文件封装为k,v键值对,传递给map方法 map方法首先进行一系列的逻辑操作,执行完成后最后进行写操作 map方法如果直接写给reduce的话,相当于直接操作磁盘,太多的IO操作,使得效率太低,所以在map和reduce中间还有一个shuffle操作 map处理完成相关的逻辑操作之后,首先通过outputCollector向环形缓冲区写入数据,环形缓冲区主要两部分,一部分写入文件的元数据信息,另一部分写入文件的真实内容 环形缓冲区的默认大小是100M

如何将vue/html在Hbuilder里进行apk打包封装生成直接可用程序

↘锁芯ラ 提交于 2021-02-11 20:51:20
在此简单讲述一下个人的理解; 方法: 对于Hbuilder里的项目文件: 1。直接右键:转换成移动app,然后生成一个json文件manifest.json,在该json文件下配置好应用程序的图标、和功能权限设置 2。点击上方的菜单栏“发行”--》发行为原生安装包,载2进行一系列的打包操作,下载即可像用一般程序一样了 对于vue项目app: 在vue项目目录下打开终端并运行项目(yarn serve/npm serve) 然后打开vue脚手架(vue ui):进入项目管理,配置项目将dist打包路劲: 在这里配置路径为:/storage/emulated/0/Android/data/io.dcloud.HBuilder/.HBuilder/apps/HBuilder/www/ 因为在配置原来路径为当前目录时在网页打开的浏览路径为: 谷歌远程移动端调试方式: 改好路径确认修改后到终端输入命令:yarn build 运行,即可生成一个dist包到我们的项目目录下,这时我们可以将该包拖拽到Hbuilder里,并通过步骤一再到步骤3的运行测试,即可生成一个完整app应用了 当然在手机端和电脑端先安装一个电脑控制手机的软件: 3.然后手机和电脑连接(软件上面有教程),再打开Hbuild:运行 手机运行——在手机上会自动安装一个Hbuilder软件并运行测试刚生成的项目 来源:

Symfony 5 and sudo commad using Windows 10

孤街醉人 提交于 2021-02-11 12:19:07
问题 I am following Fabien Potencier's book "Symfony 5: The Fast Track". I develop the project using Windows 10 pro 64 bit. The author of the book, however, works with Linux. In chapter 27 the following command should be executed, which works on Linux, but not on Windows 10: sudo API_ENDPOINT = 'symfony var: export SYMFONY_DEFAULT_ROUTE_URL --dir = ..' yarn encore dev I have installed Sudo for Windows, but the problem is not solved. How do I run this command on Windws 10? 来源: https://stackoverflow

create-react-app 引入ant design 及 使用 less

雨燕双飞 提交于 2021-02-10 13:27:42
全局引入: 第一步 :全局安装 create-react-app npm install create-react-app -g 第二步 :安装 yarn npm install -g yarn 第三步 :安装 antd yarn add antd 第四步 :安装 babel-plugin-import npm install babel-plugin-import --save-dev 第五步 :暴露配置项 npm run eject 发现执行此操作报错了,不管他什么错,接着执行 yarn install 然后执行 npm run eject 此时可以成功 .会自动生成一个config的文件夹,时候我们先配置dev模式 第五点一步 :打开config文件夹下面的webpack.config.dev.js文件 添加一下代码 (可要可不要) plugins: [ ' transform-runtime ' , [ ' import ' , { libraryName: ' antd ' , style: ' css ' }]] 但是当你执行npm start 的时候会发现不行 报错了. 那么此时只要是再执行一次npm install 就可以 然后执行 npm start 项目就可以运行啦 第六步 :引入css文件 import ' antd/dist/antd.css '

降本增效利器!趣头条Spark Remote Shuffle Service最佳实践

自古美人都是妖i 提交于 2021-02-10 11:43:54
作者简介 王振华,趣头条大数据总监,趣头条大数据负责人 曹佳清,趣头条大数据离线团队高级研发工程师,曾就职于饿了么大数据INF团队负责存储层和计算层组件研发,目前负责趣头条大数据计算层组件Spark的建设 范振,花名辰繁,阿里云计算平台EMR高级技术专家,目前主要关注开源大数据技术以及云原生技术 业务场景与现状 趣头条是一家依赖大数据的科技公司,在2018-2019年经历了业务的高速发展,主App和其他创新App的日活增加了10倍以上,相应的大数据系统也从最初的100台机器增加到了1000台以上规模。多个业务线依赖于大数据平台展开业务,大数据系统的高效和稳定成了公司业务发展的基石,在大数据的架构上我们使用了业界成熟的方案,存储构建在HDFS上、计算资源调度依赖Yarn、表元数据使用Hive管理、用Spark进行计算,具体如图1所示: 图1 趣头条离线大数据平台架构图 其中Yarn集群使用了单一大集群的方案,HDFS使用了联邦的方案,同时基于成本因素,HDFS和Yarn服务在ECS上进行了DataNode和NodeManager的混部。 在趣头条每天有6W+的Spark任务跑在Yarn集群上,每天新增的Spark任务稳定在100左右,公司的迅速发展要求需求快速实现,积累了很多治理欠债,种种问题表现出来集群稳定性需要提升,其中Shuffle的稳定性越来越成为集群的桎梏,亟需解决。

Spark(四十四):使用Java调用spark-submit.sh(支持 --deploy-mode client和cluster两种方式)并获取applicationId

妖精的绣舞 提交于 2021-02-09 09:43:49
之前也介绍过使用yarn api来submit spark任务,通过提交接口返回applicationId的用法,具体参考《 Spark2.3(四十):如何使用java通过yarn api调度spark app,并根据appId监控任务,关闭任务,获取任务日志 》; 但是我更喜欢使用该篇文章中介绍的使用java来调用spark-submit.sh shell提交任务,并从spark-sbumit.sh执行界面获取applicationId的方案。使用hadoop api方式需要配置好环境,以及根据hadoop版本不同,需要引入不通包。 用java调用shell使用说明: 用java调用shell,使用 1 Process p=Runtime.getRuntime().exec(String[] cmd); Runtime.exec()方法将产生一个本地的进程,并返回一个Process子类的实例,该实例可用于控制进程或取得进程的相关信息。 由于调用Runtime.exec方法所创建的子进程没有自己的终端或控制台,因此该子进程的标准IO(如stdin,stdou,stderr)都通过 1 p.getOutputStream(), 2 p.getInputStream(), 3 p.getErrorStream() 方法重定向给它的父进程了.用户需要用这些stream来向