自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

optimus

stay hungry stay foolish。

  • 博客(14)
  • 收藏
  • 关注

原创 [Scala] 伴生类和伴生对象

伴生类和伴生对象设计初衷由于static定义的类和对象破坏了 面向对象编程的规范完整性,因此scala 在设计之初就没有static关键字概念,类相关的静态属性都放在伴生对象object中。简单理解:object就是java中的static部分,定义的是类中静态属性。概念当同一个文件内同时存在object x和class x的声明时:我们称class x称作object x的伴生类。其object x称作class x的伴生对象。其中伴生类和伴生对象需要同名。在Scala里,类和伴

2021-10-09 17:13:41 836

原创 [Java]多线程学习笔记

为什么要有多线程?程序在执行过程中,由于存储介质IO和CPU的计算速度不匹配,导致顺序执行的情况下,CPU会等待IO执行完毕,造成CPU的大量浪费。因此引入多线程,当程序发生IO时,释放CPU资源,供其他程序使用,利用率更高。多线程的核心知识点:线程的概念线程有哪些状态线程操作线程池锁,synchronized和volatile关键字JUC包线程的概念线程是程序执行的一个路径,每一个线程都有自己的局部变量表、程序计数器(指向正在执行的指令指针)以及各自的生命周期,现代操作系统

2021-10-09 00:46:06 147

原创 [Scala]函数式编程--学习笔记

函数式编程是神马惯例,先提问题:什么是函数式编程为了解决什么问题怎么解决的Scala实现函数式编程的方法背景故事函数式编程出现的背景是摩尔定律在今天逐渐失效,多核多节点并发才是未来的主流发展方向。但是并发天生带有线程不安全,状态维护能力差,加锁阻塞的弊病。函数式编程不存在这个问题,因为从原则上保障同函数相同结果,不共享变量这个情况。尝试回答问题:函数是数据的映射关系,函数作为编程范式中的角色之一,可以作为一个变量被传递,并且支持高阶函数,偏函数,柯里化等符合函数特性的语法;

2021-09-10 18:10:14 337

原创 完善Markdown个人笔记本

背景介绍好记性不如烂笔头,由于工作需要,需要构建一套适合自己的笔记软件,搭建属于自己“知识图谱”。总结来看,笔记软件需要有以下特点:对代码格式支持较为友好可以插入图片在线笔记,需要多设备编辑后同步跨平台,Mac、Win、IOS都需要支持最好是免费,个人数据安全有保障在综合使用了印象笔记、有道云笔记、幕布、markdown文件等软件之后,发现商用软件要么是出于商业利益考虑,收费有广告;要么是代码格式不够优雅,种种原因,放弃了成套的方案,决定自己拼装一套笔记。最终方案由于主要是记

2021-09-04 10:18:56 576 1

原创 Clickhouse MergeTree引擎原理[读书笔记]

文章目录概述创建&使用文件结构目录结构分区分区目录结构分区合并的过程索引一级索引二级索引压缩数据块文件块的结构Block合并的判断依据数据标记执行过程写入过程查询过程MergeTree派生引擎单副本派生引擎多副本派生引擎其他引擎概述Clickhouse作为一个数据库,主要用于管理数据的结构化存储,优化查询等操作。对于引擎的知识点,需要搞明白:创建方式,使用方式数据存储结构数据查询原理ClickHouse拥有非常庞大的表引擎体系,主要包括6大类:MergeTree家族、外部存储、

2021-07-26 17:06:56 256

原创 Hive 事务表(ACID)问题梳理

问题描述工作中需要使用pyspark读取Hive中的数据,但是发现可以获取metastore,外部表的数据可以读取,内部表数据有些表报错信息是:AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Unable to fetch table tb_name. Your client does not appear to support insert-only tables. To skip capability che

2021-07-19 15:59:54 5976

原创 Clickhouse副本备份机制

思路核心概念:分片副本集群分布式表实现方法:复制表:引擎前缀是Replicated的表,可以由引擎自动实现底层复制功能。分布式表:使用Distributed引擎,原理类似于视图性质。需要先在各个实例中创建物理表,再关联映射到实际物理表。配置方法配置clickhouse的zk属性配置clickhouse集群配置分片{shard}等参数概念分片:将数据切分为多个部分,各个部分之间没有重复内容。需要注意的是:数据倾斜副本:副本是冗余,多备份,相同副本分片的内容完全一样。

2021-07-08 15:12:09 1143

原创 Ambari离线安装笔记

离线Ambari安装目录文章目录离线Ambari安装目录简介安装步骤准备基础环境修改Hostname配置hosts配置免密登录生成私钥配置信任主机安装JDK卸载OpenJDK(非必须)安装Oracle JDK挂载硬盘[非必须]挂载硬盘设置开机自启安装httpd安装启动服务设置开机自启关闭防火墙时钟同步服务[非必须]查看时钟状态服务准备Mysql[非必须]安装Mysql配置root权限密码安装Ambari准备Ambari离线源安装包解压缩本地yum源配置配置yum源文件分配到各个节点创建本地库查看yum源

2020-11-12 11:05:30 593

原创 剑指 Offer 06. 从尾到头打印链表[回溯法]

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]限制:0 <= 链表长度 <= 10000数据结构:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *.

2020-11-11 00:07:40 162 1

原创 CentOS配置指定用户密钥

CentOS配置指定用户密钥原理:使用SSH-keygen创建密钥之后,会生成两个文件,公钥文件和私钥文件形成密码对,在SSH服务端保留公钥。个人用户保留私钥。登录时候拿自己的私钥,到用户home路径.ssh文件夹下去匹配是否通过。公钥保留在文件authorized_keys中,文件名可以在SSH服务配置项中配置。配置指定用户的登录密钥步骤如下:创建密钥对(root用户)ssh-keygen -t rsa -b 2048# 加密算法:rsa# 密码长度:2048保留公钥mk

2020-10-23 16:35:34 820

原创 记一次HQL优化过程

记一次相对较大的“数据量”尿崩问题的解决过程~~故事背景故事背景是这样子的,小伙伴写了个狗屎一样的HQL,数据量大了之后直接被压挂了,当我看到他的SQL的一刹那,我觉得我可以拯救下这个可怜的孩子,从此踏上了一条慢慢调参路!首先,SQL的大致逻辑是,表A关联客户信息表B两次。简单表述SQL如下:A left join Bon a.id_1 = b.idleft join Bon a.id_2 = b.id他原来的写法就不恢复了,脑回路太清奇,原谅我想不起来他原来是怎么写的。出发好了,我们

2020-08-25 17:16:03 360 2

原创 Git工具笔记

文章目录解决的问题核心原理版本管理分支策略Tag操作常用操作库管理版本管理提交代码切换版本同步远端库分支管理创建分支切换分支合并分支拉取指定分支不常用操作难懂的概念解决的问题老规矩,学习一项新技术时候,先看他解决的是什么问题,怎么解决的,有没有什么局限性。Git解决的是如何管理团队开发过程中代码版本,已经开发人员之间的协作问题。解决方法:版本管理使用本地库 和 分支的概念,相当于在本地有一整套的完整镜像,只有需要发布时候才同步到中央仓库中,这是和SVN这类CS版本管理的主要区别;当打版之后,进行封

2020-08-19 23:03:08 154

原创 [Hive]动态分区笔记

动态分区的作用分区类型主要用于根据select查询字段内容,动态分配至对应分区内。动态分区种类动态分区:所有分区内容均由查询的字段内容决定;静态分区:所有分区名称都已经确定;半动态分区:指定分区中,有部分是可变,部分固定。使用样例-- 以pt为分区的表create table test(col string)partitioned by (pt_1 string,pt_2 string);-- 根据col_2字段内容分发到指定的分区内insert into table t

2020-07-09 22:07:54 217

原创 [Java]JVM学习笔记

JVM学习笔记在极客时间学习课程时,李智慧老师分享了关于新技术学习方法的经验,叫做“5-20-2”法。解释一下,就是在学习一项新技术时:要在5分钟之内了解他是解决了什么问题,相比竞品技术有什么优势;在20分钟之内,了解这项技术在解决这些问题的时候用了哪些思路,哪些新颖方法;在2个小时之内,试着做一些demo快速上手。如果能做到这些,就对这项技术进行一个持续的深挖,如果解决不了这些问题,就及早收手,免得过多浪费时间。为了试验上述方法的可行性,以JVM为切入点,我开始有意识的训练自己在短时

2020-07-08 00:43:08 259

空空如也

空空如也

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

TA关注的人

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