- 博客(114)
- 资源 (8)
- 收藏
- 关注
原创 C++ 性能分析工具 valgrind
今天学一下C++内存分析工具,对于C++开发人员来说,必不可少。valgrind install下载地址:https://www.valgrind.org/downloads/current.htmltar -jxvf valgrind-3.17.0.tar.bz2./configure && make && make installhow to use话不多说先写个demo小试牛刀,最近在学智能指针shared_ptr,正好借着这个机会试一下和new的区别;
2022-05-05 20:29:48
2142
原创 kafka可靠性
kafka可靠性分布式黄金定理副本副本失效判定HW的变更分布式黄金定理分布式系统黄金定理组成分布式系统的所有计算机都有可能发生任何形式的故障。一个被大量工程实践检验过的“黄金定理”:任何在设计阶段考虑到的异常情况,一定会在系统实际运行中发生,并且在系统实际运行过程中还会遇到很多在设计时未能考虑到的异常故障。所以,除非需求指标允许,否则在系统设计时不能放过任何异常情况。《朱忠华. 深入理解Kafka:核心设计与实践原理 (p. 389) 》副本从生产者发出的一条消息首先会被写入分区的leade
2022-04-07 09:37:12
1519
原创 Yarn FairShare Scheduler
Yarn FairShare SchedulerFairShare SchedulerSteady Fair share vs Instaneous Fair Share参考FairShare Schedulerfair share scheduler集群资源调度的方式:1、目的是所有应用程序随着时间的推移获得相等的资源份额;2、可以让短应用程序在合理的时间内完成,而不会饿死长期应用程序;3、支持队列优先级,根据优先级高低,分配给任务的资源不同;下图为hadoop yarn web ui上的显示
2022-03-27 18:12:41
2399
原创 Spark repartition vs coalesce
Spark SqlThis module provides support for executing relational queries expressed in either SQL or the DataFrame/Dataset API.Spark SQL is broken up into four subprojects:Catalyst (sql/catalyst) - An implementation-agnostic framework for manipulating tre
2022-03-23 16:14:56
2094
原创 presto sql语法总结
Hive: collect_set 转为数组并去重,concat_ws 将数组用逗号间隔连接成字符串Presto: array_agg 转为数组,array_distinct 去重,array_join 将数组用逗号间隔连接成字符串select user_id , array_join(array_distinct(array_agg(order_id)), ',') as order_idsfrom tmp.tmp_row_to_colwhere 1 = 1group by user_i
2022-03-22 18:22:45
5150
原创 spark~内存模型
spark内存模型内存模型内存模型1、ExecutionMemory用来计算shuffles、joins、sorts和aggregations2、Storage不是一个真的内存工具,它只是把内存作为他的LRU缓存,Storage默认情况下占executor.memory的54%,用于缓存和传播跨集群的内部数据3、unroll部分内存: spark.storage.unrollFraction。当我们需要在内存展开数据块的时候使用,那么为什么需要展开呢?因为spark允许以序列化和非序列化两种方式存
2022-03-22 17:24:28
517
原创 机器学习-贝叶斯公式
贝叶斯公式学习机器学习和模式识别的人一定都听过贝叶斯公式(Bayes’ Theorem):P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ) P(A|B) = \frac{P(B|A)P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)P(A)【式1】贝叶斯公式看起来很简单,无非是倒了倒条件概率和联合概率的公式。把B展开,可以写成:P ( A ∣ B ) = P ( B ∣ A ) P ( A ) P ( B ∣ A ) P ( A ) + P ( B
2022-03-09 17:31:37
2006
原创 机器学习-概率 vs 统计
参考:https://blog.csdn.net/u011508640/article/details/72815981概率和统计是一个东西吗?概率(probabilty)和统计(statistics)看似两个相近的概念,其实研究的问题刚好相反。一句话总结:概率是已知模型和参数,推数据。统计是已知数据,推模型和参数。概率研究的问题是,已知一个模型和参数,怎么去预测这个模型产生的结果的特性(例如均值,方差,协方差等等)。 举个例子,我想研究怎么养猪(模型是猪),我选好了想养的品种、喂养方式、猪棚的设计
2022-03-09 17:08:20
147
原创 C++ CoreDump
core dumpcore路径常用命令CoreDump : 内存快照,是由操作系统生成的;包括内存、寄存器状态、运行堆栈;core路径临时修改core路径修改文件:/proc/sys/kernel/core_pattern永久修改core路径在/etc/sysctl.conf文件的最后加上两行:kernel.core_pattern = /var/core_log/core_%e_%t_%p;kernel.core_uses_pid = 0gdb bin core常用命令bt:查看堆栈f
2022-03-08 17:15:12
1181
原创 计算广告-商业化体系
在线广告主要结算方式结算方式点击率估计点击价值估计优缺点适用场景CPT需求方需求方1、可以充分发挥橱窗效应 2、无法利用受众定向技术高曝光的品牌广告CPM需求方需求方1、可以利用受众定向选择目标人群 2、合约售卖下,受众划分不能过细1、有受众选择需求的品牌广告2、实时竞价广告交易CPC供给方需求方1、可以非常精细地划分受众人群2、比较合理的供给方和需求方分工竞价广告网络CPS供给方供给方1、需求方无任何风险2、供给方运营难度较大1
2022-01-20 14:30:37
487
原创 机器学习-归一化和标准化
归一化和标准化归一化归一化类型最大最小值归一化方差归一化标准化区别和联系归一化把特征映射到0~1范围之内处理。多个维度特征的量级不同,会导致训练出来模型中不同特征对应的w参数差异很大,容易导致参数小的特征对目标函数的影响被覆盖,所以需要对每个特征的数据进行归一化处理,以减少不同量级的特征数据覆盖其他特征对目标函数的影响。归一化数据可以使各个特征维度对目标函数的影响权重一致,提高迭代的求解的收敛速度。从经验上说,归一化是让不同维度之间的特征在数值上有一定比较性,可以大大提高分类器的准确性。归一化类型最
2022-01-18 17:10:39
3197
原创 Java 异常处理规范
java异常分类异常主要分两类:Error : 一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。Exception: 又分为受检异常和运行时异常;受检异常:Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它
2021-12-13 20:51:24
1335
原创 java 并发容器
ConcurrentHashMap应用了锁分段技术,HashTable容器在竞争激烈的并发环境下表现出效率低下的原因,是因为所有访问HashTable的线程都必须竞争同一把锁,那假如容器里有多把锁,每一把锁用于锁容器其中一部分数据,那么当多线程访问容器里不同数据段的数据时,线程间就不会存在锁竞争,从而可以有效的提高并发访问效率,这就是ConcurrentHashMap所使用的锁分段技术,首先将数...
2021-12-06 23:08:57
167
原创 Scala 编程基础
Scala 编程基础Scala 类Scala 范型类型范围界定 (符号 <:)视图界定(符号<%)为什么要了解Scala编程基础,因为在Spark开发中,经常碰到Scala语法,理解这些语法便于顺利Scala 类Scala 范型class Person[T](name:T)class Student[T,S](name:T, age:S) extends Person(name)object GenericTypeTest { def main(args:Array[Strin
2021-12-06 15:48:24
1704
转载 Redis扩容机制
redis集群动态扩容字典的扩容机制字典结构哈希冲突再哈希rehash哈希表被扩展的条件rehash的操作步骤渐近式rehashRedis是一个键值对(key-value pair)数据库服务器,Redis服务器结构是redis.h/redisServer结构表示,Redis服务器中的所有数据库保存在db数组中,数据库的结构是redis.h/redisDb,其中,redisDb结构的dict字典保存了数据库中的所有键值对,所以,说起Redis的扩容机制,指的就是字典中哈希表的rehash(重新散列)操作。
2021-12-05 16:47:59
3353
原创 JVM内存模型
JVM内存模型JMM原子性什么是原子性原子性怎么实现Java中的原子操作有哪些创建对象的过程是否是原子操作(常应用于双重检查+volatile创建单例场景)可见性什么是可见性问题为什么会有可见性问题如何解决可见性问题有序性(重排序)什么是重排序重排序的意义重排序的3种情况volatile什么是volatilevolatile的作用happens-before规则什么是happens-before规则JMMJMM是一套多线程读写共享数据时,对数据的可见性,有序性和原子性的原则;为什么会有内存模型这个概念?
2021-12-04 11:31:17
508
原创 32位CPU寄存器介绍
32位寄存器数据寄存器变址寄存器指针寄存器段寄存器指令指针寄存器标志寄存器数据寄存器数据寄存器用来存操作数和运算结果,节省从内存中读取所占用总线和访问存储器的时间。32位CPU有4个32位的通用寄存器EAX、EBX、ECX和EDX。对低16位数据的存取,不会影响高16位的数据。这些低16位寄存器分别命名为:AX、BX、CX和DX。4个16位寄存器又可分割成8个独立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每个寄存器都有自己的名称,可独立存取。程序员可利用
2021-12-04 10:26:10
2509
转载 Java Lombok
前提自从进公司实习后,项目代码中能用 Lombok 的都用了,毕竟这么好的轮子要充分利用好。也可以减少一些 get/set/toString 方法的编写,虽说 IDEA 的插件可以自动生成 get/set/toString 方法,但是使用 Lombok 可以让代码更简洁。下面看看如何在 IDEA 中如何安装 Lombok:安装打开 IDEA 的 Settings 面板,并选择 Plugins 选项,然后点击 “Browse repositories”在输入框输入”lombok”,得到搜索结果,点击
2021-12-02 21:15:04
430
原创 Git-总结
版本回退到没有回退之前的版本git reflowgit reset --hard commitIdgit push -f origin master
2018-12-14 13:10:58
358
原创 Spark 原理总结
本文引用了高兴的博客中的一篇文章spark架构中的部分内容。Spark架构图:JVM堆空间下Spark的内存默认分配情况:1、Spark允许利用90%的堆空间,剩余10%用作jvm系统中的后台进程占用,剩下20%的safe内存,存储用户自定的对象等。2、Spark不是一个真的内存工具,它只是把内存作为他的LRU缓存,Storage默认情况下占executor.memory的54%,用来...
2018-11-07 21:15:58
585
1
原创 缓存-详谈
这里我们主要从企业级应用谈起缓存的重要性。说起缓存,其实就是在说哈希,缓存其实就是用哈希表临时存储中间结果,加上哈希O(1)的复杂度本身固有的特性,可以为我们的系统大大节省耗时。哈希分为多种,不同的方式计算性能和碰撞率不同。最常规的方式,就是hash取模,最低级装备,满足不了分布式缓存的需要。随着系统访问量增加,缓存系统不得不通过增加机器节点的方式提高集群的相应速度和数据承载量,一旦增加机器节点...
2018-10-31 21:08:24
255
原创 spark 异常解决:A master URL must be set in your configuration
为了省去每次都创建spark对象,写了一个基础类SparkSessionBase,没想到集群抛出异常:A master URL must be set in your configuration。原因就在于spark对象在main函数之外创建,driver就不会把这个spark对象分发到其他work节点上。class SparkSessionBase { protected val s...
2018-09-13 09:51:36
4167
2
原创 shell(四) 服务器性能监控任务
为了持续观察服务器每天的基本运行状态,包括服务器的CPU负载、内存和交换空间、磁盘使用率,网络带宽占用等情况。需要定期记录不同时间段的状态信息,并提供方便易读的运行日志。 第一个版本:#!/bin/bashi=0while(( $i180 ))do let "i++" top -b | head -n 20 >> top.log sleep 2sdone
2018-02-02 15:01:50
431
原创 shell(二) 性能监控
free #查看内存(默认kb)free -m #用Mb来显示ps auxw | head -1; ps auxw|sort -rn -k4|head -5 #查看内存占用前5的进程ps auxw|head -1; ps auxw| sort -rn -k3|head -3 #查看CPU占用前三的进程ps -ef | grep data-en | awk
2018-02-01 20:42:20
423
原创 hadoop(一) 常用shell命令总结
hadoop fs -count -q 目录 // 查看目录下总的大小2 1 none inf 1 0 0 /data/test_quota1 注:这里对上面的返回结果进行解释: 第1个值表示文件数限额 第2个值表示可
2018-02-01 10:44:30
1260
原创 hive sq操作
查看hive版本号:hive> set hive.hwi.war.file创建外表:hive> create external table table_name ( > name string, > type string, > comment string > ) > partitioned by (dt string) >
2018-01-31 18:49:56
516
转载 SQL join
SQL join/*join 建表语句*/drop database if exists test;create database test;use test;/* 左表t1*/drop table if exists t1;create table t1 (id int not null,name varchar(20));insert into t1 values (1,'
2018-01-22 17:51:55
230
原创 shell sed用法
介绍:sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换,删除,新增,选取等特定工作语法:sed [-nefri] 'command' 输入文本1. 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过se
2018-01-22 16:46:43
330
原创 shell(三) 常用网络命令
基础知识需要不断的复习,才能熟练掌握。1) route命令用于显示和操作IP路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通常是 为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为 Linux机器的默认路由。2) pi
2018-01-22 16:28:00
1959
原创 卡尔曼滤波
卡尔曼滤波@(机器学习)[状态方程|观测方程]卡尔曼滤波卡尔曼滤波简介卡尔曼滤波基本公式opencv源码剖析算法应用实例-目标跟踪卡尔曼滤波简介 如果你要测量的东西很容易测准确,没有什么随机干扰,那就不需要劳驾卡尔曼。有的时候,我们的测量因为随机干扰,无法准确得到,卡尔曼就给我们想了个办法,让我们在干扰为高斯分布的情况下,得到的测量均方误差最小,也就是测量值扰动最小,看起来最平滑1。卡
2017-11-25 17:28:25
1749
原创 光束平差法(Bundle Adjust)
光束平差法代价函数代价函数求解-Levenberg_Marquardt方法代码实现流程图光束平差法采用光束平差法对射影空间下的多个相机运动矩阵及非编码元三维结构进行优化。光束平差法一般在各种重建算法的最后一步使用。这种优化方法的最大特点是可以处理数据丢失情况并提供真正的最大似然估计。代价函数argminPi,Mi∑i=1k∑j=1nvijd(Q(Pj,Mi),mij)2\mathop{arg
2017-11-25 17:23:34
10042
1
原创 C++ 指针与引用
static-隐藏功能1、修饰局部变量只对定义它的函数体可见函数执行完之后虽然还存在,但是无法被其他程序段使用2、修饰全局变量对其他源文件不可见static int a=1;void fun1(void){ a=2; }void fun2(void){ int a=3; }void fun3(void){ static int a=4; }int main(int ar
2017-11-02 14:36:07
727
原创 关系数据库原理
学的又忘了,在巩固一下:数据库的范式:1NF:每个字段都是不可再分的;2NF:字段之间不存在部分依赖;3NF:非关键字段不存在传递依赖;BCNF:关键字段不存在传递依赖;
2013-07-21 11:00:21
832
原创 学习金字塔
上图是美国缅甸州国家训练实验室提出的学习金字塔,发现说的确实很对,也该检讨一下自己大学几年的学习态度。大学里在课堂上从没认真听讲过,自己总是猴急的那种人,做任何事情都没有一点耐心和恒心,在许多方面也吃了不少的亏。不过还好,一切不算太晚,自己还总算有点坚持自己学习的好习惯。掌握好的学习方法,主动去学习,然后教授给别人,也是一件令人愉悦的事。
2013-06-15 20:49:31
1150
原创 双系统中ubuntu 启动出错
因以下文件的损坏或者丢失,windows 无法启动 \system32\ntoskrnl.exe 请重新安装以上文件的拷贝原因:误删 C盘 wubildr 和 wubildr.mbr 文件 ,直接拷贝一份即可。
2013-05-09 09:51:54
989
转载 Qt编写串口通信程序全程图文讲解
文章转载自:http://blog.csdn.net/yafeilinux/article/details/4717706 感谢作者在Qt中并没有特定的串口控制类,现在大部分人使用的是第三方写的qextserialport类,我们这里也是使用的该类。我们可以去http://sourceforge.net/projects/qextserialport/files/进行下载,
2013-04-22 21:47:59
1291
原创 【数论】HDOJ 2802
题目: 输入任意 n (1AC code (1):#include using namespace std;#define M 4019int f[M];int main(){ long i,n; f[1]=1;f[2]=7;f[3]=20; for(i=4;i<M;i++) { f[i]=f[i-2]+3*i*(i
2013-02-20 21:46:05
1002
2
CC2430存储器介绍
2013-04-07
C++ string
2012-05-07
PL-SQL 教程
2012-03-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人