云服务器内容精选
-
Flink性能优化 概述 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。 集群服务部署架构 服务规模与业务容量参数配置 Flink作为流数据处理引擎,依赖内存和CPU。用户在规划规格时,应根据当前的业务容量和增长速度,规划合理的内存和CPU资源,特别需要关注以下几点: 根据自己的业务目标,规划CPU资源和内存资源。规划时,需要结合当前的数据分布情况,业务复杂度,设置JobManager的内存,TaskManager的数量,TaskManager的内存,每个TaskManager的slot数量,规划适当的CPU核数和内存大小。 在规划内存时,要预留一定量的内存空间作为操作系统的buffer cache,一般预留20%。 从HDFS中读入数据时,要考虑block解压缩后的数据膨胀。 规划一定的磁盘作为缓存空间,包括缓存数据与日志。 调优目标 Flink调优的目标是在不影响其他业务正常运行的前提下,高效的完成业务目标,通常为了达成该目标,一般需要最大限度利用集群的物理资源,如CPU、内存、磁盘IO,使其某一项达到瓶颈。 调优原则 提高CPU使用率同时减少额外性能开销。 提高内存使用率。 优化业务逻辑,减少计算量和IO操作。 性能调优常用方法-DataStream调优 配置内存:调整老年代和新生代的比值;开发Flink应用程序时,优化datastream的数据分区活分组操作。 设置并行度:用户可以根据实际的内存,CPU,数据以及应用程序逻辑的情况调整并行度参数。任务的并行度可以按优先级从高到低排列,由算子层次、执行环境层次、客户端层次、系统层次这四种层次指定。 配置进程参数:配置JobManager内存、TaskManager个数、TaskManager Slot数、TaskManager内存。 设计分区方法:可设置随机分区、rebalancing(round-robin partitioning,基于round-rebin对元素进行分区,使得每个分区负责均衡)、rescaling(以round-robin的形式将元素分区到下游操作的子集中)、广播分区(广播每个元素到所有分区)、自定义分区。 配置netty网络通信:可在客户端的“conf/flink-conf.yaml”配置文件中进行修改适配。 指标观测方法 性能衡量指标包含吞吐量、资源利用率、伸缩性。 吞吐量:在相同资源环境下,执行相同计算任务,查看任务的完成速度。 资源利用率:执行计算任务,查看在不同负载情况下,CPU、内存、网络的使用率。 伸缩性: − 横向扩容带来的性能提升曲线:增加资源,执行相同计算任务,查看性能提升比率。 − 增加系统负担带来的性能下降曲线:在相同资源环境下,增加计算负载,查看性能下降比率。 父主题: 大数据性能优化
-
Spark性能优化 概述 Spark是基于内存的分布式计算框架。在迭代计算的场景下,数据处理过程中的数据可以存储在内存中,提供了比MapReduce高10到100倍的计算能力。Spark可以使用HDFS作为底层存储,使用户能够快速地从MapReduce切换到Spark计算平台上去。Spark提供一站式数据分析能力,包括小批量流式处理、离线批处理、SQL查询、数据挖掘等,用户可以在同一个应用中无缝结合使用这些能力。 Spark的特点如下: 通过分布式内存计算和DAG(无回路有向图)执行引擎提升数据处理能力,比MapReduce性能高10倍到100倍。 提供多种语言开发接口(Scala/Java/Python),并且提供几十种高度抽象算子,可以很方便构建分布式的数据处理应用。 结合SQL、Streaming、MLlib、GraphX等形成数据处理栈,提供一站式数据处理能力。 完美契合Hadoop生态环境,Spark应用可以运行在Standalone、Mesos或者YARN上,能够接入HDFS、HBase、Hive等多种数据源,支持MapReduce程序平滑转接。 集群服务部署规划 服务规模与业务容量参数配置对照表 Spark作为内存计算引擎,需要更多的内存和CPU。用户在规划规格时,应根据当前的业务容量和增长速度,规划合理的内存和CPU资源,特别需要关注以下几点: 当程序运行在yarn-client模式下时,需要关注在driver端汇聚的数据量大小,根据自己的业务场景,为driver设置合理的内存。 根据自己的业务目标,规划CPU资源和内存资源。规划时,需要结合当前的数据分布情况,业务复杂度,设置“executor-memory”,“executor-cores”,“Executor-num”,并在此基础上,规划需要的CPU核数和内存大小。 在规划内存时,要预留一定量的内存空间作为操作系统的buffer cache,一般预留20%。 从HDFS中读入数据时,要考虑block解压缩后的数据膨胀。 规划一定的磁盘作为缓存空间,包括缓存数据、日志、Shuffle数据。 调优原则 提高cpu使用率同时减少额外性能开销。 提高内存使用率。 优化业务逻辑,减少计算量和IO操作。 典型业务的调优 优化代码逻辑:在进行Spark参数调优之前,要进行相应的规划设计,优化代码逻辑。 Spark任务跑的比较慢,cpu利用率低:检测室executor线程不能全部吃满,此时应减少每个executor的core数量,增加executor个数,同事增加partition个数。 任务容易出现内存溢出:部分数据分片较大,单个task处理数据过大,或者executor中并行度不足,单个task内存不足导致。此时应减少executor数量,增大数据分片。 数据量少,但小文件数量多:减少数据分片,在reduce算子后执行coalesce算子,以减少task数量,减少cpu负载。 使用spark sql查找一个大表,表列数较多,但是查找的列较少:尽量使用rcfile或parquet格式,减少文件读取成本,同时选择合适的压缩格式,减少内存负载。 指标观测方法 性能衡量指标包括吞吐量、资源利用率、伸缩性。 吞吐量:在相同资源环境下,执行相同计算任务,查看任务的完成速度 资源利用率:执行计算任务,查看在不同负载情况下,cpu、内存、网络的使用率。 伸缩性: − 横向扩容带来的性能提升曲线:增加资源,执行相同计算任务,查看性能提升比率。 − 增加系统负担带来的性能下降曲线:在相同资源环境下,增加计算负载,查看性能下降比率 父主题: 大数据性能优化
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格