自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(80)
  • 收藏
  • 关注

转载 Spark性能优化指南——高级篇

继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的性能。数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢。比如,总共有1000个ta

2020-11-29 12:00:34 251

转载 spark task与stage数量过多调优

图片发自简书App昨天群里的一个朋友出现了任务执行过慢。通过运行过程来看,我们发现task比较多,更值得注意的是这些task都在一个stage之中。首先要分析这个问题我们应该要清楚task和stage的关系。图片发自简书App通过这个图我们可以看出job-stage-task的对应关系。首先job的划分是遇到action操作时,被发现后经过sparkcontext的runjob方法来到DAGscheduler,这个类中它会通过依赖关系划分出stage,一个stage是一个t...

2020-11-29 00:36:02 3823 3

转载 Spark提交参数说明和常见优化

载请注明出处:http://blog.csdn.net/gamer_gyt博主微博:http://weibo.com/234654758Github:https://github.com/thinkgamer最近在搞一个价格分类模型,虽说是分类,用的是kmeans算法,求出聚类中心,对每个价格进行级别定级。虽然说起来简单,但做起来却是并没有那么容易,不只是因为数据量大,在执行任务时要不是效率问题就是shuffle报错等。但在这整个过程中对scala编程,Spark rdd 机制,以及海量数据背景下

2020-11-28 23:53:48 333

转载 Spark性能调优篇一之任务提交参数调整

写在前面的一些”废话“:最近在做spark的项目,虽然项目基本功能都实现了,但是在真正的成产环境中去运行,发现程序运行效率异常缓慢;迫于无奈(实际是自己都不忍直视了),所以决定对程序做一番优化操作。在网上查看了不上关于spark程序的优化方法,但是都比较分散不够全面,所以决定就自己编写的基于Java的spark程序,记录一下我所做过的一些优化操作,加深印象方面以后的项目调优使用。这是一个Spark系列的优化操作,包括了很多方面,欢迎大家一块讨论学习。好了,废话好像有点多,下面开始进入正题:关于spa

2020-11-28 23:44:37 831

转载 Spark的四种部署方式概括

1.Local模式Local模式就是运行在一台计算机上的模式,通常用于在本机上测试,当不设置master参数的值时,默认此模式,具体有以下几种设置master的方式。local:所有计算都运行在一个线程当中,没有任何并行计算。 local[n]:指定使用n个线程来运行计算。 local[*]:按照CPU的最多核数来设置线程数。2.Standalone模式设置master参数的值为spark://host:port,即开启Standalone模式,将构建一个基于Master/Slave的资源

2020-11-28 23:34:33 1593

转载 hbase的rowKey设计原则

前言访问hbase table中的行,只有三种方式:1 通过单个row key访问2 通过row key的range3 全表扫描可以看出rowkey设计的好与坏直接决定了查询速度,在hbase中快速定位也是依靠布隆过滤器,然而布隆过滤器依靠的就是rowkey,所以设计一个好的row可以省不少事情。但是下面列出的方式紧紧是提供一种设计原则,最重要的还是要具体问题具体分析,然后设计出比较符合业务内容的rowkey.rowkey长度原则rowkey是一个二进制码流,可以是任意字符串

2020-11-28 16:56:13 738

转载 hive-数据倾斜解决详解

ive在跑数据时经常会出现数据倾斜的情况。使的作业经常reduce时卡住较长时间,有时完成任务的百分百比甚至会回退,如果你碰到这种情况,”恭喜“你,你遇到数据倾斜了。以下是几种常见的数据倾斜场景:1、join的key值发生倾斜,key值包含很多空值或是异常值这种情况可以对异常值赋一个随机值来分散key如:select a.uuid,count(1)from dw_space_dau_orc_dt ajoin(selectcasewhenuuidisnullthen...

2020-11-28 16:06:48 842

转载 Kafka集群消息积压问题及处理策略

通常情况下,企业中会采取轮询或者随机的方式,通过Kafka的producer向Kafka集群生产数据,来尽可能保证Kafk分区之间的数据是均匀分布的。在分区数据均匀分布的前提下,如果我们针对要处理的topic数据量等因素,设计出合理的Kafka分区数量。对于一些实时任务,比如Spark Streaming/Structured-Streaming、Flink和Kafka集成的应用,消费端不存在长时间"挂掉"的情况即数据一直在持续被消费,那么一般不会产生Kafka数据积压的情况。但是这些都是有前提的,

2020-11-28 12:40:22 2234 1

转载 Kafka之acks参数对消息持久化的影响

(0)写在前面面试大厂时,一旦简历上写了Kafka,几乎必然会被问到一个问题:说说acks参数对消息持久化的影响?这个acks参数在kafka的使用中,是非常核心以及关键的一个参数,决定了很多东西。所以无论是为了面试还是实际项目使用,大家都值得看一下这篇文章对Kafka的acks参数的分析,以及背后的原理。(1)如何保证宕机的时候数据不丢失?如果要想理解这个acks参数的含义,首先就得搞明白kafka的高可用架构原理。比如下面的图里就是表明了对于每一个Topic,我们都可以设..

2020-11-28 02:11:33 294

转载 Kafka参数调优实战

1、背景引入:很多同学看不懂kafka参数今天给大家聊一个很有意思的话题,大家知道很多公司都会基于Kafka作为MQ来开发一些复杂的大型系统。而在使用Kafka的客户端编写代码与服务器交互的时候,是需要对客户端设置很多的参数的。所以我就见过很多年轻的同学,可能刚刚加入团队,对Kafka这个技术其实并不是很了解。此时就会导致他们看团队里的一些资深同事写的一些代码,会看不懂是怎么回事,不了解背后的含义,这里面尤其是一些Kafka参数的设置。所以这篇文章,我们还是采用老规矩画图的形式,来聊聊K

2020-11-28 02:10:28 213

转载 Apache Kafka监控与调优

前言虽然目前Apache Kafka已经全面进化成一个流处理平台,但大多数的用户依然使用的是其核心功能:消息队列。对于如何有效地监控和调优Kafka是一个大话题,很多用户都有这样的困扰,今天我们就来讨论一下。一、Kafka综述在讨论具体的监控与调优之前,我想用一张PPT图来简单说明一下当前Kafka生态系统的各个组件。就像我前面所说,Kafka目前已经进化成了一个流处理平台,除了核心的消息队列组件Kafka core之外,社区还新引入Kafka Connect和Kafka Strea..

2020-11-28 01:30:47 361

转载 kafka消费者消费消息的流程

1.1消费流程1.消息有生产者发布到kafka集群后,会被消费者消费。消息的消费模型有两种,推送模型(push)和拉取模型(pull)。1.1 基于推送模型(push)的消息系统,有消息代理记录消费者的消费状态。消息代理在将消息推送到消费者后,标记这条消息已经消费,但这种方式无法很好地保证消费被处理。如果要保证消息被处理,消息代理发送完消息后,要设置状态为“已发送”,只要收到消费者的确认请求后才更新为“已消费”,这就需要代理中记录所有的消费状态,但显然这种方式不可取。缺点:标记为消费后,其...

2020-11-28 01:29:29 2028 1

转载 kafka配置参数

参数 说明(解释) broker.id =0 每一个broker在集群中的唯一表示,要求是正数。当该服务器的IP地址发生改变时,broker.id没有变化,则不会影响consumers的消息情况 log.dirs=/data/kafka-logs kafka数据的存放地址,多个地址的话用逗号分割/data/kafka-logs-1,/data/kafka-logs-2 por...

2020-11-27 22:07:58 294

转载 项目经验之Kafka机器数量计算

Kafka机器数量(经验公式)=2*(峰值生产速度*副本数/100)+1先要预估一天大概产生多少数据,然后用Kafka自带的生产压测(只测试Kafka的写入速度,保证数据不积压),计算出峰值生产速度。再根据设定的副本数,就能预估出需要部署Kafka的数量。比如我们采用压力测试测出写入的速度是10M/s一台,峰值的业务数据的速度是50M/s。副本数为2。Kafka机器数量=2*(50*2/100)+1=3台...

2020-11-27 21:52:06 623

转载 kafka压力测试

1. 介绍最近kafka集群要换机房了。为了确保新环境正常,我们来做一些压力测试。这次压力测试重点会关注一些异常情况下,kafka收发消息的状况。2. 基本信息3台broker,使用kafka0.10.1版本,每台broker使用6T硬盘,内存100G。broker配置按照官方文档推荐的生产配置来配置。3. broker挂掉的情况3.1 整个broker集群挂掉这个同事做过测试,所以这里直接放结论了:即使设置了acks=all,但是如果整个集群都连接不上了,也是不能避免消息丢失的(重

2020-11-27 21:48:05 961

转载 flume到底会丢数据吗?

先给出答案:需要结合具体使用的source、channel和sink来分析,具体结果可看本文最后一节。Flume事务  一提到事务,我们首先就想到的是MySQL中的事务,事务就是将一批操作做成原子性的,即这一批要么都成功,要么都失败。  同样的道理,在flume中也有事务,那么Flume中的事务在哪个地方呢?在Flume中的批量操作又是指什么呢?Flume中的事务存在于哪个位置?  在Flume中一共有两个事务,一个是在Source到Channel之间,一个是Channel到Sink之

2020-11-27 18:54:20 1511

转载 Flume监控之Ganglia

Ganglia简介Ganglia是UC Berkeley发起的一个开源集群监视可视化工具,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。其详细介绍和工作原理请参考百度百科,地址:https://baike.baidu.com/item/Ganglia/1283012?fr=

2020-11-27 18:38:12 692

转载 ZooKeeper基本概念

一、Zookeeper简介Zookeeper是一个开源的分布式协调服务,目前由Apache进行维护。Zookeeper可以用于实现分布式系统中常见的发布/订阅、负载均衡、命令服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。它具有以下特性:顺序一致性:从一个客户端发起的事务请求,最终都会严格按照其发起顺序被应用到Zookeeper中; 原子性:所有事务请求的处理结果在整个集群中所有机器上都是一致的;不存在部分机器应用了该事务,而另一部分没有应用的情况; 单一视图..

2020-11-27 16:13:39 7423

转载 Zookeeper的选举机制原理(图文深度讲解)——过半选举

三个核心选举原则:(1)Zookeeper集群中只有超过半数以上的服务器启动,集群才能正常工作;(2)在集群正常工作之前,myid小的服务器给myid大的服务器投票,直到集群正常工作,选出Leader;(3)选出Leader之后,之前的服务器状态由Looking改变为Following,以后的服务器都是Follower。下面以一个简单的例子来说明整个选举的过程:假设有五台服务器组成的Zookeeper集群,它们的id从1-5,同时它们都是最新启动的,也就是没有历史数据,在存放数据量这

2020-11-27 15:25:25 658

转载 Yarn参数优化(Fair Scheduler版本)

YARN自从hadoop2.0之后, 我们可以使用apache yarn 来对集群资源进行管理。yarn把可以把资源(内存,CPU)以Container的方式进行划分隔离。YARN会管理集群中所有机器的可用计算资源. 基于这些资源YARN会调度应用(比如MapReduce)发来的资源请求, 然后YARN会通过分配Container来给每个应用提供处理能力, Container(容器)是YARN中处理能力的基本单元, 是对内存, CPU等的封装(容器)。ResourceManager:以下简称RM。Y

2020-11-27 15:17:42 500

转载 Hadoop数据倾斜及解决办法

数据倾斜:就是大量的相同key被partition分配到一个分区里,map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完。解决方案: 1.增加jvm内存,这适用于第一种情况(唯一值非常少,极少数值有非常多的记录值(唯一值少于几千)),这种情况..

2020-11-27 15:04:36 172

原创 Hadoop之向yarn提交job流程

0:mr程序提交到客户端所在的节点1:客户端向resourceManager申请一个application2:resourceManager向客户端返回application的资源提交路径和application_id3:客户端向指定的路径提交job运行所需的资源,路径为hdfs://..../stating/application_id和文件切片,程序jar包和job的配置文件4:客户端向recourceManager报告资源提交完毕,申请运行MRappmaster5:recource

2020-11-27 00:56:09 361

转载 Hadoop切片机制

文章目录一、数据切片源码详解 二、数据切片机制 1、TextInputFormat切片机制 2、CombineTextInputFormat切片机制 3、KeyValueTextInputFormat切片机制 4、NLineInputFormat切片机制 5、自定义InputFormat切片机制 一个超大文件在HDFS上存储时,是以多个Block存储在不同的节点上,比如一个512M的文件,HDFS默认一个Block为128M,那么1G的文件分成4个Block存储在集群中4个

2020-11-26 22:56:49 984 1

转载 Hadoop之常见压缩格式以及性能对比

文章目录 1.压缩的好处和坏处 2.压缩格式 3.压缩测试 4.优缺点 5.图解MapReduce 6.总结 7.应用场景 为什么会出现需要对文件进行压缩?在Hadoop中,文件需要存储、传输、读取磁盘、写入磁盘等等操作,而文件的大小,直接决定了这些这些操作的速度。1.压缩的好处和坏处好处减少存储磁盘空间 降低IO(网络的IO和磁盘的IO) 加快数据在磁盘和网络中的传输速度,从而提高系统的处理速度.

2020-11-26 22:35:57 701

转载 Hadoop——常见优化

1 MapReduce优化MapReduce 程序效率的瓶颈在于两点:计算机性能 CPU、内存、磁盘健康、网络 I/O操作优化 (1)数据倾斜 (2)Map和Reduce数设置不合理 (3)Map运行时间太长,导致Reduce等待过久 (4)小文件过多 (5)大量的不可分块的超大文件 (6)Spi次数过多 (7)Merge次数过多等。MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。1.1 数据输入

2020-11-26 22:20:11 215

原创 hadoop通过调优shuffle过程提高mapreduce性能

map端的调优属性: 属性名称 类型 默认值 说明 mapreduce.task.io.sort.mb int 100 排序map输出时所使用的内存缓冲区的大小,已兆字节为单位 mapreduce.map.sort.spill.percent float 0.80 map输出内存缓冲和用来开始磁盘溢出写过程的记录边界索引,这两者使用比例的阀值 mapreduce.task.io.sort.fator int 10 ...

2020-11-26 22:00:04 118

转载 MapReduce优化方法总结

1 MapReduce 跑的慢的原因2 MapReduce优化方法MapReduce优化方法主要从六个方面考虑:数据输入、Map阶段、Reduce阶段、IO传输、数据倾斜问题和常用的调优参数。1 数据输入2 Map阶段3 Reduce阶段4 I/O传输5 数据倾斜问题6 常用的调优参数1.资源相关参数(1)以下参数是在用户自己的MR应用程序中配置就可以生效(mapred-default.xml)表4-12 配置参数 .

2020-11-26 21:09:12 636

转载 使用CombineFileInputFormat来优化Hadoop小文件

我们都知道,HDFS设计是用来存储海量数据的,特别适合存储TB、PB量级别的数据。但是随着时间的推移,HDFS上可能会存在大量的小文件,这里说的小文件指的是文件大小远远小于一个HDFS块(128MB)的大小;HDFS上存在大量的小文件至少会产生以下影响: 消耗NameNode大量的内存 延长MapReduce作业的总运行时间 本文将介绍如何在MapReduce作业层面上将大量的小文件合并,以此减少运行作业的Map Task的数量;关于如何在HDFS上合并这些小文件,请参见《Hadoop小

2020-11-26 20:58:48 249

转载 Hadoop小文件的处理方法之JVM重用

处理方式一:开启Hadoop的JVM重用机制,避免海量小文件(海量的map任务)带来的JVM频繁启停。1)uber的原理:Yarn的默认配置会禁用uber组件,即不允许JVM重用。我们先看看在这种情况下,Yarn是如何执行一个MapReducejob的。首先,ResourceManager里的ApplicationManager会为每一个application(比如一个用户提交的MapReduceJob)在NodeManager里面申请一个container,然后在该container里面...

2020-11-26 19:32:51 1630 1

转载 将kubelet和docker的启动引擎修改为systemd

前文在折腾k8s的时候,我发现当k8s以docker启动的时候,系统会有以下报警:[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/意思是要我将docker和kubelet的启动方式

2020-11-10 20:54:29 2870 1

转载 Ubuntu 使用git方式安装 nvm

nvm 可以切换 nodejs 版本,为方便测试,故安装之使用git 安装方法:https://github.com/creationix/nvm#git-installcd ~/ - -切到主目录 git clone https://github.com/creationix/nvm.git .nvm - -克隆代码到文件夹 .nvm cd ~/.nvm - -进入nvm代码目录 git checkout v0.33.8 - -切换到v0.33.8版本 . nvm.sh - -执行命令

2020-11-04 20:30:57 906

转载 git错误: fatal: The current branch master has no upstream branch的解决方案

在开发的时候 push本地代码会报如下错误:fatal: The current branch master has no upstream branch.是因为本地当前分支没有和远端的分支进行相关联。解决方案如下:1:运行 git push --set-upstream origin master。其中的origin是你在clone远程代码时,git为你创建的指向这个远程代码库的标签,它指向repository。master是你远程的branch,可以用git branch -a查看所有分支,远

2020-10-13 18:32:04 2689

转载 Flutter(macOS) no devices找不到iPhone真机的解决方法

此方法仅限于macOS白苹果或者黑苹果系统。Windows端只支持Android版本的调试与打包运行。flutter找不到真机,已经安装Xcode,Xcode里面可以打开真机运行,但Android Studio环境和Vscode环境下,不能找到连接的iPhone真机,其实很简单,终端运行一下:flutter doctor即可按照终端提示执行...

2020-10-13 17:11:31 1442

转载 MacOS使用国内镜像安装brew,速度极快。

在网上搜了很多brew安装方式,包括使用官网的方式都安装报错Failed to connect to raw.githubusercontent.com port 443: Connection refused然后找了好久终于找到一个安装成功。安装方式/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"...

2020-10-13 17:06:49 602

转载 SQLyog连接数据库出现1130错误

修改root的连接限制,host=’%'为允许所有IP都有连接权限# mysql -u root -pEnter password:mysql> use mysql;mysql> select host from user where user='root';mysql>update user set host='%' where user='root';mysql>flush privileges;...

2020-10-11 22:33:08 464

转载 Linux CentOS7通过yum安装mysql-server

在Hive中,Derby数据库只能起一个实例,不能在多个终端同时运行,这就产生了许多禁锢,因此对于元数据的存储,采用开源的mysql数据库,因此就需要在主节点上安装mysql相关服务。0、首先,通过yum list | grep mysql命令来查找yum源中是否有MySQL,我的查询结果如下;可以看出,总之看不到mysql-server的影子,具体彻底删除还可以参考这个博文:https://www.cnblogs.com/cyl048/p/6879085.html (据说centOS..

2020-10-11 22:16:18 9899 1

转载 linux,centos7安装superset(亲测)

一.安装python环境centOS71.下载依赖# yum install -y wget# yum install -y gcc* zlib* openssl* sqlite* mysql-devel python-devel2.下载python# cd /opt/# mkdir python# cd python/# wget https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tgz3.安装pyt

2020-09-30 12:08:24 944 1

转载 windows下搭建hadoop 搭建本地hadoop开发环境

windows下搭建hadoop 搭建本地hadoop开发环境一、下载所需文件1.JDK下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html2.Hadoop下载地址:https://pan.baidu.com/s/1fGclfAivPWVukRPDRfMUzA3.Windows下安装Hadoop工具下载地址:https://pan.baidu.com/s/190xbt

2020-08-30 17:18:06 1262

转载 从0到1:我是如何在一年内无师自通机器学习的?

https://www.leiphone.com/news/201609/SJGulTsdGcisR8Wz.html从0到1:我是如何在一年内无师自通机器学习的?本文作者:Jasper.T2016-09-13 14:54导语:如何从机器学习菜鸟华丽转变为大神?如果你对机器学习抱有好奇又心存敬畏,不妨看看这篇文章。

2017-06-30 14:53:31 668

原创 常用网址(持续更新)

苹果源码list : http://opensource.apple.com/tarballs/http://brew.sh/index_zh-cn.html

2015-12-23 17:27:08 520

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除