自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

airyv的博客

Stay hungry, stay foolish!

  • 博客(83)
  • 资源 (1)
  • 收藏
  • 关注

原创 【Alphalens】使用Alphalens配合Akshare进行双均线因子分析,附源码及常见问题

Alphalens 是非常著名的一个python因子分析库。但是该库由于目前已经不怎么维护,问题非常多。。由于该库的demo都是基于国外雅虎财经的接口yfinance。如果使用国内的akshare配合使用会出现一下问题。需要对Alphalens接口非常熟悉。建议阅读其原始接口的注释,特别是get_clean_factor_and_forward_returns方法。

2024-04-15 19:47:20 349

原创 pyfolio工具结合backtrader分析量化策略组合,附源码+问题分析

pyfolio可以分析backtrader的策略,并生成一系列好看的图表,但是由于pyfolio直接install的稳定版有缺陷,开发版也存在诸多问题,使用的依赖版本都偏低,试用了一下之后还是更推荐quantstats。

2024-01-06 10:44:58 1556 2

原创 backtrader框架初探,轻松跑通策略并策略分析

网上有很多backtrader的文章,并有些将其与vnpy做比较,经过安装后发现,还是backtrader教程简单。

2024-01-06 09:08:18 565

原创 【svn】win11最新svn每天自动化定时update、commit,隐藏窗口,定时脚本编写

本文使用schtasks结合bat脚本实现全自动svn update以及commit操作。执行时隐藏cmd窗口,全自动后台执行。

2023-12-24 10:37:10 1269

原创 【DataX】windows下本地DataX同步hive到mysql,hive带Kerberos认证

修改job文件中keytab与conf文件的路径为本地路径,这两个文件中有hosts修改过的地址,所以需要将linux下的hosts复制到win下的hosts。windows下本地debug运行同步,hive到mysql,其中hive带Kerveros认证的方法如下。下载https://github.com/steveloughran/winutils。解决方法:拷贝hive.keytab和krb5.conf文件到win系统。下载对应版本到本地,设置环境变量。修改datax.py路径。

2023-05-01 17:09:43 571 1

原创 【MongDB】Linux下MongDB定时备份方案

首先安装crontabs,通过crontabs执行定时备份脚本。

2023-04-04 11:14:56 573

原创 【Yapi】Yapi最新版详细安装步骤图文教程,避免踩坑

首先安装node.js,选择版本node-v12.16.1-x64.msi一直点击下一步就好,路径默认C盘就好,不需要做修改。

2023-03-30 11:02:44 2459 1

原创 【Doris】Doris数据库最新版安装方法,详细图文教程

Doris 作为一款开源的 MPP 架构 OLAP 数据库,能够运行在绝大多数主流的商用服务器上。

2023-01-13 22:11:41 4368

原创 【Vim】Vim学习,第一讲,Vim的基本操作

Vim的基本操作,包含Vim学习参考,bilibili up主TheCW,oeasy教您零基础玩转编辑神器vim,简明VIM练级攻略,vim游戏,vim英语,慕课玩转vim,Vim使用技巧必知必会等。

2022-10-24 22:46:42 1645

原创 Vim安装gruvbox配色教程,切换黑暗模式

Vim下使用vim-plug安装gruvbox配色中文教程,并可自由切换亮色和黑暗模式。

2022-07-12 16:15:20 3219

原创 关于嵌套lambda表达式的理解

在UCB CS 61A的Homework 02中,有这样一个问题:Question 4: Church numerals难以理解的那段代码为:successor函数使用 lambda 返回匿名函数。这很难阅读,所以我们可以使用一个命名函数替换它。所以现在我们已经分解了原函数,可以看到successor返回一个函数,而该函数又返回另一个函数,该函数返回…。 f(n(f)(x)) 让人很难阅读,其含义为函数f被参数 n(f)(x)调用,而n(f)返回一个函数传递参数x。让我们使用一些更具描述性的变量名称

2022-06-24 15:34:50 735

原创 我的创作纪念日2022年5月8日

机缘还是想通过写文章记录自己学习编程的过程,不论是记录学习笔记,还是记录自己曾经碰到过的问题,我觉得都很有意义!收获通过创作可以分享自己的东西,与更多的人交流,解决自己问题的经历也可以给他人作为参考。日常目前在校学习,学习之余创作分享,因为学校的事情比较多,所以还是得自己挤出时间来学习自己喜欢的东西。憧憬未来的目标是先好好毕业,然后参加工作,希望自己能够在工作领域有所建树;在行业方面,希望自己以后能成为领域行家,根据公司脉络发展进步,能够让自己与公司共同进步,实现双赢。...

2022-05-08 16:12:55 146 2

原创 Markdown编辑公式错误ParseError: KaTeX parse error: {align} can be used only in display mode

问题描述编辑公式:$\begin{align} & \sum\limits_{i=1}^{n}{k=\frac{1}{2}}n(n+1) \\ & \text{ }=\Theta ({{n}^{2}}) \\ \end{align}$Markdown报错:ParseError: KaTeX parse error: {align} can be used only in display modeCSDN报错:KaTeX parse error: No such

2022-03-29 23:05:49 2909 1

原创 【C语言】数据结构:数组,链表,栈,队列,树

3 线性结构3.1 【数组】连续存储1、什么叫做数组 元素类型相同,大小相等(数组传参,只要传进去首地址和长度就行)2、数组的优缺点(相对于链表): 优点: 存取速度快 缺点: 事先必须知道数组的长度 插入删除元素很慢 空间通常是有限制的 需要大块连续的内存块 插入删除元素的效率很低定义一个数组至少需要3个参数:首地址,长度,有效个数。用指针自己定义一个数组:# include <stdio.h># include <malloc.h>

2021-12-19 17:36:19 2583

原创 【C语言】数据结构预备知识,指针,数组,结构体,动态内存分配与释放

1 数据结构概述(教材:严蔚敏、吴伟民,该书程序是伪算法具体的程序是高一凡)学完数据结构之后会对面向过程的函数有一个更深的了解。1.1 定义我们如何把现实中大量而复杂的问题以特定的数据类型(单个数据怎样存储?)和特定的存储结构(个体的关系)存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法。(比如班里有15个人,其信息量也许一个数组就搞定了,但是假如10000个,怎么办?内存也许没有这么多连续的空间,所以

2021-12-19 16:58:14 1941

原创 Java实现:四六级真题批量PDF文件英文单词词频分析、排序

思路:使用一个LinkedHashMap,Key是单词,Value是词频,逐个遍历每个pdf文件,读取pdf中的所有文本,对于文本按照各种标点符号进行分割,将全部单词转为小写,遍历每个单词,看在map中是否存在,存在则词频+1,不存在则put增加新的单词。import com.yzk18.commons.IOHelpers;import com.yzk18.docs.PDFHelpers;import org.apache.pdfbox.pdmodel.PDDocument;import java

2021-08-04 18:01:21 543 1

原创 Java实现:BMI标准体重计算器

需求说明:提示用户输入性别、身高、体重,然后计算出用户的标准体重以及体重评级。世卫BMI计算方法:男性:标准体重=(身高cm-80)×70%女性:标准体重=(身高cm一70)×60%标准体重正负10%为正常体重;标准体重正负10%~20%为偏胖或偏瘦;标准体重正负20%以上为严重肥胖或严重瘦弱。代码如下:package GUI;import com.yzk18.GUI.GUI;public class BMI { public static void main(String[]

2021-08-03 22:17:54 5379

原创 YARN中Resource Manager的高可用中“脑裂”问题的解决

"脑裂"问题:Resource Manager由于网络闪退或者自身故障未及时对外做出响应,出现“假死”现象,导致出发了Zookeeper新一轮的主备切换,但是,对于“假死”的RM自身来说,它仍认为自己是Active,所以导致整个系统中出现多个Active的RM。“隔离”机制解决问题:在主备切换时,在RM竞争创建锁节点时,会携带zookeeper的ACL权限进行限制,目的是独占该节点。在主备切换后,原来“假死”的RM恢复后,会去更新zookeeper的节点状态,如果发现ACL不对,节点不是自己创建的,会将自

2021-07-21 19:31:57 707

原创 总结YARN中的三种资源调度器(Resource manager中)

YARN是对应用进行资源分配,应用是指applicatoin master,用来处理job的YARN的应用进程。(1)MapReduce采用的模型是一个用户作业对应一个应用。(2)Spark采用的是作业的每个工作流或每个用户的对话对应一个应用。效率比第一种高。(3)多个用户共享一个长期运行的应用。FIFO调度器(FIFO Scheduler)Hadoop最初设计时的调度器,为单队列调度器,无法充分利用硬件资源。先进先出队列,先为第一个应用请求资源,第一个满足后再依次为队列下一个提供服务,不适合共.

2021-07-20 20:46:32 3361 2

原创 MapReduce实现TopK算法 原理及代码

1、map阶段通过map方法将数据构造成数据小于K的TreeMap,在每次map后判断TreeMap的大小和K的大小,当TreeMap的数据量大于K时,取出最小的数。在map结束后会执行cleanup方法,该方法将map中的前K个数据传入reduce任务中。2、reduce阶段在 reduce方法中,依次将map方法中传入K个数据放入 TreeMap中,从而将K个数据利用红黑树的 firstKey方法按从大到小者利用红黑树的 lastKey方法按从小到大的顺序排列。从而求出前K个数。3、代码部分

2021-07-18 16:26:05 747

原创 理解Hive Map join

在Map阶段进行表之间的连接。而不需要进入 Reduce 阶段才进行连接。这样就节省了在Shuffle阶段时要进行的大量数据传输。从而起到了优化作业的作用。即在map端进行join,其原理是 broadcast join,即把小表作为一个完整的驱动表来进行join操作。除了一份表的数据分布在不同的Map中外,其他连接的表的数据(小表)必须在每个Map中有完整的拷贝。 Map Join会把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配,由于在map是进行了join操作,省去了 r

2021-07-17 10:00:02 165

转载 Hive中数据倾斜原因及处理

1数据倾斜的表现(数据分配不均匀)任务进度长时间维持在99%(或100%),看任务监控页面,发现只有少量(1个或几个) reduce子任务未完成。因为其处的数据量和其他 reduce差异过大。单一 reduce的记录数与平均记录数差过大,通常可能达到3倍甚至更多。最长时长远大于平均时长。2数据倾斜产生的原因key分布不均匀、业务数据特性、建表问题、某SQL语句本身就有数据倾斜(join连接、group by分组和 Count Distinct计算去重后的数量)。关键词情形后果

2021-07-16 09:45:41 978

原创 Hive内部表和外部表的区别

主要体现在load与drop(是否同时删除元数据与数据)的操作上:创建表:Hive创建内部表时,会将数据移动到数据仓库指向的路径,hive管理数据的生命周期;Hive创建外部表时,仅记录数据所在的路径,不对数据的位置做任何改变。删除表:Hive删除内部表时,内部表的元数据和数据会一起被删除,同时对于一些hive操作不适应于外部表,比如单个查询语句创建表并向表中插入数据。Hive删除外部表时,不删除数据。这样外部表相对来说更加安全些,数据组织也更加灵活,方便共享源数据。创建外部表时,甚至不

2021-07-15 10:00:45 12017

原创 MapReduce的shuffle机制

shuffle过程(简单理解):从map的输出到reduce的输入之间的过程。概念:Map是映射,负责数据的过滤分法,将原始数据转化为键值对;Reduce是合并,将具有相同的key值的value进行处理后再输出新的键值对作为最终结果。为了让Reduce可以并行处理Map的结果,必须对Map的输出进行一定的排序与分割,然后再交给对应的Reduce,Map端的输出作为Reduce的输入的过程叫做Shuffle.注意点:一个分片对应一个 Map 任务,每个 Map 任务里面会根据分片中的记录执行多次 map.

2021-07-14 22:29:28 224 1

原创 MapReduce1和MapReduce2(YARN)工作机制

算法流程:初始化: 伪头节点 dumdum ,节点 curcur 指向 dumdum 。循环合并: 当 l_1l1​或 l_2l2​为空时跳出;当 l_1.val < l_2.vall1​.val<l2​.val 时: curcur 的后继节点指定为 l_1l1​,并 l_1l1​向前走一步;当 l_1.val \geq l_2.vall1​.val≥l2​.val 时: curcur 的后继节点指定为 l_2l2​,并 l_2l2

2021-07-14 16:56:19 317

原创 在HDFS写入数据,写某一副本出错时HDFS的处理流程

首先会关闭管线pipeline。将已经发送到管道中但是没有收到确认的数据包重新写回数据队列,这样无论哪个节点发生故障,都不会发生数据丢失。这个过程是在确认队列中将未收到确认的数据包删除,写回到数据队列。然后当前正常工作的数据节点将会被赋予一个新的版本号(利用namenode中租约的信息可以获得最新的时间戳版本),这样故障节点恢复后由于版本信息不对,故障DataNode恢复后会被删除。在当前正常的datanode中根据租约信息选择一个主DataNode,并与其他正常DataNode通信,获取每个Da..

2021-07-10 22:20:34 596

原创 NameNode中的高可用(HA)的实现

Namenode的HA主要包括:主备切换、共享日志储存。(可以拓展Zookeeper的选举算法,比如利用了强一致性)1、在集群中,存在多个 namenode,,这些 namenode处于 active或者 standby状态。2、共享日志存储: active向共享文件系统写入日志文件, standby从共享文件系统读取日志与 active保持同步。共享文件系统一般采用的是 Quorum Journal(群体日志)设计方案。这个方案中主要涉及 JournalNode(JN)和 Quorum Journal

2021-07-10 21:40:44 2061 2

原创 联邦HDFS的概念及原理,HDFS的1.x和2.x架构的区别

hadoop1.x的hdfs架构主要由namespace(命名空间)和Block Storage(块的存储)两层组成单个namenode限制了性能。hadoop HDFS联邦架构联邦HDFS是namenode水平扩展方案。该方案允许HDFS创建多个namespace以提高集群的扩展性和隔离性。联邦HDFS允许每个namenode管理文件系统命名空间的一部分。每个namenode维护一个命名空间,不同namenode之间的命名空间相互独立。数据块池不再切分,所以每个DataNode需要注册到每个n

2021-07-10 16:32:11 294

原创 检查点机制,Fsimage与Editlog的合并过程理解

fsimage文件:即命名空间映像文件,是内存中的元数据在硬盘上的checkpoint,包含文件系统中的所有目录和文件inode的序列化信息。editlog:文件系统的写操作首先把它记录在editlog中。检查点机制:定时将fsimage和editlog合并并产生新的fsimage的过程,这一过程非常耗费cpu和IO,一般放在Secondary Namenode(非HA)和Standby Namenode(HA)中完成。(一)secondary namenode执行检查点操作(非HA):sec

2021-07-10 16:04:52 679 2

原创 HDFS客户端进行文件的读取与写入操作过程

HDFS客户端读流程:1.初始化FileSystem,然后客户端用DistributedFileSystem的open方法打开文件。2.FileSystem用RPC调用元数据节点,采用getBlockLocations()得到文件的数据块信息,对于每一个数据块,元数据节点返回保存数据块的数据节点的地址。3.FileSystem返回HdfsDataInputStream给客户端,用来读取数据,HdfsDataInputStream是DFSInputStream的装饰类,真正进行数据块读取的是DFSIn

2021-07-10 14:57:02 1529

原创 剑指 Offer 19. 正则表达式匹配 Java版

请实现一个函数用来匹配包含'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但与"aa.a"和"ab*a"均不匹配。示例 1:输入:s = “aa”p = “a”输出: false解释: “a” 无法匹配 “aa” 整个字符串。示例 2:输入:s = “aa”p = “a*”输出: true解释: 因为

2021-07-03 14:31:13 125

原创 c++和java的区别?

c++有指针,java不提供指针直接访问内存,程序的内存更加安全。C++是编译型语言,Java是半解释半编译型语言,所以C++执行速度比Java快,但是Java可以利用JVM实现跨平台。c++支持多重继承,Java中类都是单继承的。但是Java中接口是多继承的,允许一个类继承多个接口。(extends+implement),实现了c++多重继承的功能,类对接口的实现也是多实现。C++需要自己管理内存,Java中JVM有自己的GC机制(垃圾回收机制),用来监视new出来的所有对象,辨别不会再被引用的对象

2021-07-02 10:18:13 479

原创 报错:‘mvn‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

解决方法:添加了一个系统变量MAVEN_HOME,其变量值就是你apache-maven-3.5.2所存在的绝对路径,在系统变量Path的变量值末尾添加“;%MAVEN_HOME%\bin”的路径。这两个变量的路径都用浏览添加,直接添加可能无法解决。...

2021-06-14 15:58:03 836

原创 StringBuffer和StringBuilder的区别

StringBuffer:可变的同步的线程安全,适合多线程性能更差StringBuilder:可变的不同步的线程不安全,适合单线程性能更好当线程不需要同步时用StringBuilder代替StringBuffer。StringBuffer 方法是同步的,而 StringBuilder 不是。 两者操作“几乎”相同,但在单个线程中无需同步,使用StringBuilder更合适。引用自StringBuffer javadoc:A thread-safe, mutable se

2021-06-14 12:04:41 62

原创 Centos7安装FASTDFS整合宝塔Nginx,配合nginx-fastdfs插件,实现文件上传

安装fastdfs需要的环境首先安装gccyum -y install gcc-c++然后安装libevent库yum -y install libvent安装libfastcommonlibfastcommon是FastDFS官方提供的,libfastcommon包含了FastDFS运行所需要的一些基础库。先解压安装包tar -zxvf libfastcommonV1.0.7.tar.gz进入文件夹cd libfastcommon-1.0.7运行./make.sh./ma

2021-05-31 21:51:25 980 2

原创 FASTDFS启动storage服务卡死,没反应,日志报错连接超时解决方法

FASTDFS启动tracker时没问题,安装storage服务时一直没反应,打开日志,错误信息如下:ERROR - file: storage_ip_changed_dealer.c, line: 180, connect to tracker server 121.40.177.15:22122 fail, errno: 110, error info: Connection timed out解决方法:关闭防火墙即可,cento7代码如下service firewalld stopps:连

2021-05-31 16:14:12 2493 3

原创 junit测试时报No runnable methods错误

导包错误import org.junit.jupiter.api.Test;报错:修改为:import org.junit.Test;即可正常运行。

2021-05-30 11:23:53 141

原创 报错This application has no explicit mapping for /error

完整错误:Whitelabel Error PageThis application has no explicit mapping for /error, so you are seeing this as a fallback.Sat May 29 20:07:50 CST 2021There was an unexpected error (type=Not Found, status=404).运行时出现了这个错误,认真检查后发现路径填错了。@RequestMapping(“xxx”) ,

2021-05-29 20:14:44 217

原创 Dubbo监控中心状态404,解决方法

安装zookeeper和dubbo后发现,登录dubbo监控中心404。1 在dubbo的logs目录中查看日志tail -f stdout.log 结果报错java.lang.IllegalStateException: Failed to start jetty server on 172.22.215.120:8080, cause: Address already in use查看占用端口的进程netstat -apn | grep 8080结果为tcp 0

2021-05-23 18:44:53 604

原创 unet神经网络报错`Model.predict_generator` is deprecated and will be removed in a future version

解决方法:results = model.predict_generator(testGene,30,verbose=1)改为results = model.predict(testGene,30,verbose=1)

2021-05-16 21:26:04 2296

DualMonitor win7系统双屏显示工具

Dual Monitor Tools 是一个实用双显示器工具包,有双屏切换、双屏壁纸、禁用一个显示器、双屏截图等工具,为你在使用双显示器时提供最大便利。 1、DisMon 显示器监视器 这将禁用任何第二台显示器,而另一个应用程序正在运行,并且将重新启用时的监控应用程序已完成。这可能是非常方便的在运行某些游戏不正确地滚动,如果你有超过1个显示器已启用。 2、Dual Snap 双屏截图工具 可让您在主监视器捕获当前图像并显示在您的辅助监控。 3、Swap Screen 双屏切换 就以您的显示器上常见的操作,提供了Windows热键。这包括诸如移动活动应用程序窗口到下一个显示器,减少对单一监控所有的窗户仅转动所有显示器的内容操作。它还允许你限制鼠标显示器间移动。 4、Dual Wallpaper 双屏墙纸 这简化了在您的显示器使用现有的墙纸图像的过程。您可以指定每个显示器是不同图像,或分散在两个或两个以上监视器或如果你有足够显示器,它们的组合图像。

2020-05-25

空空如也

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

TA关注的人

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