自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣:复杂链表的复制(golang)

要求:请实现 copyRandomList 函数,复制一个复杂链表。在复杂链表中,每个节点除了有一个 next 指针指向下一个节点,还有一个 random 指针指向链表中的任意节点或者 null。思路因为存在一个随机的指针,直接遍历一遍并不能将随机指针复制,可以使用map存储链表所有节点,key为原链表的node,value为复制后的链表的node遍历所有节点第一遍,将map生成出来遍历第二遍,将复制节点的随机指针和下一个元素的指针生成,key和value分别是复制前和复制后的值,所以根据val

2022-03-15 16:13:02 385

原创 go语言学习笔记 之 反射

反射的作用反射可以在运行时动态获取变量的各种信息,比如变量的类型(type),类别(kind)如果是结构体变量,还可以获取到结构体本身的信息(结构体的字段、方法)通过反射,可以修改变量的值,可以调用关联的方法官方文档:https://studygolang.com/pkgdoc反射的使用// 获取typet := reflect.TypeOf()// 获取valuev := reflect.ValueOf()// 将值转换为接口类型inter := v.Interface(

2022-03-13 16:50:54 457

原创 力扣:反转链表(golang实现)

题目描述定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL思路拿好三个指针,cur,pre,nextnext是用来临时保存下次要遍历的节点pre是用来临时保存上次遍历过的节点cur是修改节点,作用是修改Next变量,指向pre题解func reverseList(head *ListNode) *L

2022-03-04 21:11:20 837 1

原创 go语言学习笔记 之 协程(goroutine)

特点go主线程是一个物理线程,直接作用在CPU上,重量级,非常耗费CPU资源协程是从主线程开启的,是轻量级的线程,是逻辑态,资源消耗相对较小go可以轻松开启上万个协程MPGM: 操作系统的主线程P: 协程执行需要的上下文环境G: 协程当多个主线程运行在一个CPU核中,认为该状态为并发当多个主线程运行在多个CPU核中,认为该状态为并行使用支持使用runtime.GOMAXPROCS方法设置使用的CPU核数package mainimport ( "fmt" "s

2022-02-27 20:53:35 455

原创 go语言学习笔记 之 测试

测试用例文件名称必须以_test.go结尾文件内的单元测试方法名称必须以Test开头,而且Test前缀之后的第一个字符必须是大写参数只能是*testing.T运行测试的指令go test可以只测试某个文件go test a_test.go a.go,也可以只测试某个方法go test a_test.go TestMethod...

2022-02-27 19:46:59 94

原创 go语言学习笔记 之 JSON

结构体序列化package mainimport ( "encoding/json" "fmt")type Cat struct { // 后面``中的内容是给字段加个别名,在json序列化时会序列化为后面的别名 Name string `json:"name"` Age int `json:"age"` Color string `json:"color"`}func main() { c := Cat{ Name:"加菲", Age:10, Color: "y

2022-02-27 17:34:40 246

原创 go语言学习笔记 之 脚本

命令行参数使用命令go build -o test main.go生成可执行文件接收不指定的参数package mainimport ( "fmt" "os")func main() { fmt.Println(os.Args) for i, arg := range os.Args { fmt.Printf("第%d个参数为%s\n", i, arg) }}输出结果$ ./test a b c d e f g # 一下为输出[./test a b c d e f g

2022-02-27 16:55:05 1226

原创 go语言学习笔记 之 IO

go文档:https://studygolang.com/pkgdoc读取文件package mainimport ( "bufio" "fmt" "io" "io/ioutil" "os")func main() { // 获取文件 file, err := os.Open("test.txt") if err != nil { fmt.Println("error", err) return } defer file.Close() // 读取文件内数据

2022-02-27 16:13:15 162

原创 力扣:包含min函数的栈(golang实现)

定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top(); --> 返回 0.mi

2022-02-24 20:39:43 380

原创 go语言学习笔记 之 go语言基础

变量声明// 先声明再赋值var v1 intv1 = 1// 声明且赋值var v2 = 2// 声明且赋值2v2_1 := 21// 多变量赋值var v3,v4,v5 = 3,"abc",5.0// 多变量赋值2v3_1,v4_1,v5_1 := 3,"abc",5.0// 多变量声明var v6,v7,v8 int// 全局变量声明方式var( v9 = 100 v10 = "global" v11 = 1.1)...

2022-02-19 12:23:15 306

原创 力扣:用两个栈实现队列(golang实现)

力扣:使用两个栈实现队列

2022-02-13 17:59:16 6894

原创 kudu: 基于快速数据的快速分析

背景kudu是Cloudera公司研发的,最开始是为了弥补大数据领域的一部分空缺。对于HDFS来说,因为它的定位就是文件存储系统,所以主要就是管理文件的,那么他的使命的让你快速找到文件,而不是随机获取这个文件的某一条数据对于HBASE来说呢,他是为了随机读取数据而生的,所以根据主键进行随机读取,速度是非常快的,但是对于分析来说,就显得心有余而力不足了也就是在这个背景之下,kudu就诞生了,他既能进行大量数据的顺序读取,而且数据的插入,数据的随机读取都非常快,而且能充分发挥现代先进存储的能力。整

2021-09-14 08:36:43 438

原创 Mac安装Xcode

背景电脑出问题了,之前安装的所有软件都没有了,今天需要使用make安装软件,但是一直在提示xcode-select --install,我按照提示安装,但是一直安装失败,就有了下面的过程。在命令行安装失败之后,第一个想法就是去App Store安装,比较巧合的是应用商店的Xcode试用的版本要比我系统版本要高,当前最新的Xcode适配的是Big Sur,我系统是Catalina,不适配,没办法安装。那就需要去找到一个适配的版本,在这里可以找到:https://developer.apple.com/d

2021-07-03 14:39:37 4931

原创 impala系列:服务API--select

基本语法[WITH name AS (select_expression) [, ...] ]SELECT [ALL | DISTINCT] [STRAIGHT_JOIN] expression [, expression ...]FROM table_reference [, table_reference ...][[FULL | [LEFT | RIGHT] INNER | [LEFT | RIGHT] OUTER | [LEFT | RIGHT] SEMI | [LEFT | R

2021-04-28 09:31:43 608

原创 impala系列:服务API--set

set语句是对impala的配置,该配置生效于当前session。语法SET query_option=option_value选项ABORT_ON_ERROR:默认为false,如果为true,当发生问题后,不论大小直接停止查询。ALLOW_ERASURE_CODED_FILES:默认为false,为true则会清除在impala中的编码文件。APPX_COUNT_DISTINCT:默认为false,如果为true,则查询时会将COUNT(DISTINCT)查询隐式转换为NDV()函数,结

2021-04-24 09:17:21 647

原创 impala系列:服务API--DML

文章目录INSERT Statement.LOAD DATA Statement.INSERT Statement.Impala支持插入到使用Impala CREATE TABLE语句创建的表和分区中,或者插入到通过hive创建的预定义表和分区中。语法[with_clause] INSERT [hint_clause] { INTO | OVERWRITE } [TABLE] table_name [(column_list)] [ PARTITION (partition_clause

2021-04-22 16:31:03 363

原创 impala系列:服务API--DDL

创建数据库在Impala中,数据库不存储数据,也不会描述数据,而是管理一组表,视图和函数。 在HDFS中实际表现为一个目录,目录中包含表分区和实际存储数据的文件。CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT 'database_comment'] [LOCATION hdfs_path]; # 中括号中的参数为可选参数当数据库被创建之后,会在HDFS上的impala数据文件夹中为你创建一个带有.db后缀的文件夹。[q

2021-04-20 09:18:54 802

原创 impala系列:服务API--impala-shell

impala的安装可以自行搜索,本地测试,可以将statestore和catalog service安装在同一个节点,也可以直接安装在impalad节点上,安装好impala之后,可以直接使用impala-shell连接到impala。impala-shell[athena@bxv-dapgateway-03 ~]$ impala-shell --helpUsage: impala_shell.py [options]Options: -h, --help 展示帮助信息

2021-04-19 08:26:59 606

原创 impala系列:impala架构

​Impala是一款能够在许多系统上运行的MPP(Massively Parallel Processing,即大规模并行处理)查询执行引擎。​impala并不做存储,而是在其他存储软件之上的计算引擎,主要有三个主要组件构成,即Impala daemon(Impalad),Impala Statestore和Impala Catalog Service。Impala daemon(Impalad)Impala daemon(也称为impalad)接受来自各种接口的查询,比如impala shell,J

2021-04-18 09:03:56 704 1

原创 BeanFactory 和 ApplicationContext 谁才是 Spring IoC 容器

先说结论:BeanFactory和ApplicationContext都是spring的IOC容器。为什么这么说呢,因为ApplicationContext是BeanFactory的一个子类,所以BeanFactory拥有的功能ApplicationContext都是具备的,但是在spring中又不是直接在ApplicationContext中调用BeanFactory相关方法的,而是用了一个组合的方式。由上图可以看出,在AbstractApplicationContext中开始定义了一个getBea

2021-01-17 10:25:17 650

原创 Spring IoC 延迟注入

定义两个实体类public class UserRepository { private ObjectFactory<User> objectFactory; // Getter/Setter}public class User { private Long id; private String name; // Getter/Setter}定义spring.xml,将两个对象注入,使用autowire="byType"将user注入

2021-01-17 09:59:47 554 2

原创 Spring IoC 依赖查找

根据 Bean 名称延迟查找public class Demo { public static void main(String[] args) { AnnotationConfigApplicationContext beanFactory = new AnnotationConfigApplicationContext(); ObjectFactory<User> objectFactory = (ObjectFactory<User>

2021-01-17 09:33:37 227 4

原创 为mv和cp指令添加进度条(Linux和Mac均试用)

背景工作中需要服务上线运维工作,发版的时候jar包体积较大,要先搞到文件服务器,再搞到线上。搞到文件服务器需要使用mv操作,在公司网速很快并不需要这个进度条的提示,但在家办公连接公司网络非常慢,不知道任务到底是进行中,还是卡死了,因此有进度条提示会好很多。安装安装步骤非常简单,将下面的shell指令一步步添加就可以了。wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xztar xvJf coreutils-8.32.tar.xzc

2021-01-04 11:23:33 1738 3

原创 MapReduce流程

从上图(此图是Apache官网图片)可以看到以下几个节点:Container:是计算资源的抽象代表着一组内存/cpu/网路的占用。ResourceManager:统筹计算资源,管理所有NodeManager,进行资源分配。NodeManager:管理物理主机上的计算资源,负责向RM汇报自身状态信息MRAppMaster:计算任务的Master,负责申请计算资源,协调计算任务。YarnCh...

2020-03-20 11:26:48 169

原创 HDFS架构设计

此图中可以看到有以下组件构成(这个图是Apache官网的图片):Namenode:是一个中心服务器,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问。Datanode:集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。Block:是文件系统中的文件块,默认是128M,可以配置Rack:机架HDFS采用master/slave架构。一个HDFS集...

2020-03-20 11:25:30 177

原创 Linux 7 Hadoop2.6.0单机和集群搭建

Hadoop单机搭建Hadoop集群搭建

2020-03-19 18:10:40 247

原创 CentOS6.5安装jdk1.8和tomcat-7以及maven3.6

安装jdk准备:只需要一个 jdk-8u11-linux-x64.tar.gz操作如下[root@vm1 ~]# lltotal 155316-rw-------. 1 root root 1106 Jul 7 03:53 anaconda-ks.cfg-rw-r--r--. 1 root root 8815 Jul 7 03:53 install.log-r...

2019-07-15 21:16:46 338

原创 CentOS7安装docker

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。查看你当前的内核版本[root@localhost ~]# uname -r3.10.0-862.el7.x86_642、yum包更新到最新[root@localhost ~]# yum updateLoaded plugins: faste...

2019-07-14 21:44:43 256

转载 VMware12虚拟机CentOS7安装

虚拟机及Linux系统安装见链接:https://www.jianshu.com/p/ce08cdbc4ddb?utm_source=tuicool&utm_medium=referral

2019-07-14 21:24:42 135

原创 使用VMware10构建一个虚拟机,并配置网卡信息

首先进入到VMware的首页,有一个大大的选项,创建新的虚拟机,点击。点击之后会有一个向导弹窗,直接选择典型即可。下一步之后,会有三个选项,这里我选择的是稍后安装操作系统。点击下一步之后,在此页面选择你要安装的操作系统类型,并选择版本。点击下一步之后,输入虚拟机的名称,以及虚拟机的存放位置。点击下一步之后,在此选择分配给虚拟机的硬盘空间,默认是20G。点击下一步之后,VMw...

2019-07-07 08:26:55 881

原创 java8:流的使用

流的创建和API的基本使用在java8中提供了一套流式的数据处理,也就是Stream API,这套API的主要作用就是对数据进行处理,作为程序员平时打交道最多的可能就是集合了,那么流和我们迭代遍历有什么不同呢Stream API迭代遍历相当于一套流水线,对数据一次性处理每次迭代都需要分支进行计算,有时需要多次迭代才能得到最终结果适应现代多核计算机,在几乎不消耗额外资...

2019-05-12 14:07:17 217

原创 java8:基础部分

java8的Lambda表达式基础语法我们用一个例子来说明,Lambda表达式中语法糖和箭头符号的使用方法。需求有一个用户的集合users,集合中的元素是一个个的user对象,user对象有两个属性:用户名username,年龄age。需求很简单,就是将这个集合中的元素根据年龄排个序。实现如果我们用原始的java代码去书写,可能是如下这个样子。//先定义一个比较器,来比较用户的年龄...

2019-05-02 10:09:41 255

原创 java8Lambda的环绕执行模式

java8Lambda的环绕执行模式Lambda表达式在实践中极大的简化了代码,而且行为的参数化让代码更加的灵活。在资源处理(例如处理文件或数据库)时一个常见的模式就是打开一个资源,做一些处理,然后关闭资源,这段代码会围绕着执行处理的那些重要代码,这就是环绕执行模式。也就是说在执行的开始,需要做一些准备,然后开始自己的行为操作,而在执行完成之后,需要关闭资源,在这段代码中,初始化和关闭资源就...

2019-05-01 10:05:15 777

空空如也

空空如也

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

TA关注的人

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