自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一致性hash算法

今天听了一下大树老师的公开课,关于一致性hash算法,记录一下当我们数据多时,我们就要用到集群,分布式,为了缓解数据库的压力,这时候我们会用到缓存,比如redis就是一个很好的缓存中间件为了能让数据均衡的分布,我们可以用hash值 取余 的方式达到分布均衡,简单而且高效。但也有一个问题就是如果我们需要在加一个节点呢,就会数据缓存命不中,从而增加数据库压力,甚至导致崩溃。(缓存雪崩)比如原本有三个节点,我们加一个节点进去,就会造成 3/4 的缓存失效,同样如果是4 个节点,增加一个就会造成 4/5

2020-11-19 19:15:23 253

原创 数据结构与算法-AVL树

AVL树AVL树的特点继承关系添加导致的失衡LL - 右旋转(单旋)RR - 左旋转(单旋)LR - RR左旋转,LL右旋转(双旋)RL - LL右旋转,RR左旋转(双旋)代码实现AVLTree补充说明总结AVL树是最早发明的自平衡二叉搜索树之一AVL树的特点平衡因子(Balance Factor):某节点的左右子树的高度差每个节点的平衡因子只有可能是 1,0,-1(绝对值 小于 1 ,称为 “失衡”)每个节点的左右子树高度差不超过 1搜索,添加,删除的时间复杂度是 O(logn)继承关

2020-11-16 23:49:45 269 2

原创 数据结构与算法-二叉树

二叉树树的基本概念有序树,无序树,森林二叉树二叉树的性质真二叉树(Proper Binnary Tree)满二叉树(Full Binary Tree)完全二叉树(Complete Binary Tree)完全二叉树的性质二叉树的遍历练习利用前序遍历树状打印二叉树翻转二叉树计算二叉树的高度判断一棵树是否为完全二叉树前驱节点(predecessor)后继节点(successor)树的基本概念二叉树是树形结构多叉树生活中使用树形结构可以大大提高效率节点根节点(最上面的一个节点,上图的 :1

2020-11-10 00:09:02 841 1

原创 数据结构与算法-二叉搜索树

思考设想在 n 个动态的整数中搜索某个整数?假设使用动态数组存放元素,从第 0 个位置开始遍历搜索,平均时间复杂度:O(n)而维护一个有序的动态数组,使用二分搜索,最坏时间复杂度:O(logn),但是添加,和删除的平均时间复杂度是 O(n)所以针对这个需求,我们可以使用二叉搜索树,添加,删除,搜索的最坏时间复杂度均可优化至:O(logn)二叉搜索树(Binary Search Tree)二叉搜索树是二叉树的一种,是应用非常广泛的一种二叉树,英文简称 BST又被称为:二叉查找树,二叉排序

2020-11-10 00:02:02 247

原创 Spark RDD算子

目录parallelizemakeRDDtextFilefiltermapflatMapdistinctunionintersectionsubtractcartesianmapToPairflatMapToPaircombineByKeyreduceByKeyfoldByKeySortByKeyparallelize调用SparkContext 的 parallelize(),将一个存在的集合,变成一个RDD,这种方式试用于学习spark和做一些spark的测试scala版本def paralle

2020-11-06 14:51:13 277

原创 数据结构与算法-队列

目录队列(Queue)队列的接口设计练习:用栈实现队列双端队列(Deque)接口设计循环队列(Circle Queue)循环双端队列%运算符优化队列(Queue)队列是一种特殊的线性表,只能在头尾两端进行操作队尾(rear):只能从队尾添加元素,一般叫做offer,入队对头(front):只能从队头移除元素,一般叫做poll,出队先进先出的原则,First In First Out , FIFO队列的接口设计int size(); //元素的数量boolean isEmpty();

2020-11-04 22:59:05 217

原创 数据结构与算法-栈

目录栈(Stack)栈的接口设计栈(Stack)栈是一种特殊的线性表,只能在一端进行操作往栈中添加元素的操作,一般叫做push,入栈从栈中移除元素的操作,一般叫做pop,出栈(只能移除栈顶元素,也叫做:弹出栈顶元素)后进先出的原则,Last In First Out , LIFO注意这里的"栈"与内存中的"栈空间"是两个不同的概念栈的接口设计int size(); //元素的数量...

2020-11-03 22:48:24 102

原创 Scala扩展

目录match表达式样例类的模式匹配非样例类的模式匹配偏函数注解(Annotation)运算符正则表达式隐式类Scala异常处理高级类型Scala集成Java APImatch表达式类似Java switch语句能处理类型所有类型不需要break能够生成值val firstArg=if(args.length>0) args(0) else ""firstArg match{ case "salt" => println("pepper") case "chip

2020-11-03 15:36:20 101

原创 Scala-基本语法之面向对象(OOP)

类类通过class关键字定义类通过new关键字创建实例类拥有成员变量和方法类的成员默认为public,也支持private,protected**类中无法定义静态成员变量和方法**类无需明确定义构造方法,通过构造参数列表声明为类的一部分1)基本语法[修饰符] class 类名 {类体}说明(1)Scala语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public)(2)一个Scala源文件可以包含多个类构造器和Java一样,Scala构造对象也需要

2020-11-03 15:14:25 164

原创 Scala-基本与法之函数

函数是Scala的核心函数定义:def 函数名([参数列表]):[返回值]={函数体return [表达式]}def square(x: Int): Int = { println(x) x * x //return}def sayHello(x:String):Unit={ println("Hello ! "+x)}参数传递1.传值调用(call-by-value)def square(x: Int): Int = { p.

2020-11-02 13:47:39 87 2

原创 Scala-基本语法之流程控制

目录键盘录入流程控制分支控制 if-else单分支双分支多分支嵌套分支switch 分支结构for 循环tountil循环守卫循环步长嵌套循环引入变量循环返回值while循环do...while 循环多重循环while 循环中断键盘录入1)基本语法StdIn.readLine()、StdIn.readShort()、StdIn.readDouble()2)案例实操import scala.io.StdInobject TestInput { def main(args: Array[

2020-11-02 11:05:35 104

原创 数据结构与算法-链表

目录链表链表的设计接口设计清空元素添加元素node方法用于获取index位置的节点删除元素 - remove(int index)SingleLinkedList代码推荐一个神奇的网站双向链表双向链表 VS 动态数组单向循环链表双向循环链表链表动态数组有个明显的缺点:可能会造成内存空间的大量浪费。能否用多少就申请多少内存,链表就可以办到这一点链表是一种链式存储的线性表,所有元素的内存地址不一定是连续的链表的设计接口设计链表的大部分接口和动态数组是一致的。把不需要修改的方法写一个父类用来

2020-11-01 21:55:37 252 3

原创 spark的安装详细步骤

1.下载spark地址http://spark.apache.org/downloads.html2.把下载好的压缩包拖拽到虚拟机的software(自己建的)目录下3.进入到software目录里面把压缩包解压到 /opt 目录下cd /softwaretar -zxvf spark-2.4.5-bin-hadoop2.6.tgz -C /opt/4.进入opt目录里面将安装好的spark改名cd /optmv spark-2.4.5-bin-hadoop2.6 spark2455.

2020-10-30 14:56:00 8425 4

原创 scala之Array的方法

Array(集合、序列)++++:+:和 :+/: 和 :\addStringaggregateapplycanEqualcharAtclonecollectcollectFirstcombinationscontains 和 containsSlicecopyToArraycopyToBuffercorrespondscountdiffdistinctdropdropRightdropWhileendsWithexistsfilterfilterNotfindflatMapflattenfoldfoldL

2020-10-29 19:44:27 187

原创 数据结构与算法-动态数组

目录什么是数据结构线性表数组动态数组接口设计基本功能代码及实现泛型对象数组内存管理细节null的处理什么是数据结构数据结构是计算机存储,组织数据的方式线性结构:线性表(数组,链表,栈,列队,哈希表(数组))树形结构:二叉树(AVL树,红黑树,B树,堆,Trie,哈夫曼树,并查集)图形结构:邻接矩阵,邻接表线性表线性表是具有n个相同类型元素的有限序列(n>=0)a1 是首节点(首元素),an是尾节点(尾元素)a1是a2的前驱,a2是a1的后继数组数组是一种顺序存储的线性表,所有

2020-10-28 01:19:13 119

原创 数据结构与算法—复杂度

目录什么是算法斐波那契(fibonacci number)如何判断一个算法的好坏大O表示法(Big O)对数阶的细节常见的复杂度斐波那契函数的时间复杂度分析斐波那契的线性代数解法-特征方程F算法的优化方向多个数据规模的情况什么是算法算法是用于解决特定问题的一系列的执行步骤//计算a跟b的和public static int plus(int a,int b){ return a+b;}//计算1+2+3+...+n的和public static int sum(int n){ int

2020-10-27 00:12:46 172 2

原创 Hive总结及常见语法

目录第1章 hive入门1.1 什么是hive1.2 Hive的优缺点1.2.1 优点1.2.2 缺点1.3 Hive架构原理1.4 Hive和数据库比较1.4.1 查询语言1.4.2 数据存储位置1.4.3 数据更新1.4.4 索引1.4.5 执行1.4.6 执行延迟1.4.7 可扩展性1.4.8 数据规模第2章 Hive 安装2.1 Hive 安装部署2.2 将本地文件导入Hive案例2.3 MySql安装2.4.1 安装包准备2.4.2 安装MySql服务器2.4.3 安装MySql客户端2.4.4

2020-10-22 14:31:16 6835 1

原创 sqoop总结及常见语法

目录第一章 Sqoop简介第二章 Sqoop的原理第三章Sqoop安装3.1下载并解压3.2 修改配置文件3.3 拷贝 JDBC 驱动验证Sqoop3.5测试Sqoop是否能够成功链接数据库第四章 Sqoop的简单使用案列4.1导入数据4.1.1RDBMS到HDFS4.1.2 RDBMS 到 Hive4.1.3 RDBMS 到 Hbase4.2 导出数据4.2.1 HIVE/HDFS到RDBMS4.3 脚本打包第五章 Sqoop 一些常用的命令及参数5.1 常用命令列举5.2命令&参数详解5.2.1

2020-09-29 22:46:47 1315

原创 HBase表的数据结构

一.Table传统数据库一个表的结构如下姓名年龄性别成绩wuyifan18man100john20man98转换成HBase数据库的表结构就如下所示infoscoreRow_keyinfo:name ,info:age ,info:sexscore:name, score:score//创建表和列族//create 'school','info','score'//==创建列族中的列和数据//put 's

2020-09-24 18:31:35 575

原创 Hbase权限控制

Hbase权限控制简介 Hbase的权限控制是通过AccessController Coprocessor协处理器框架实现的,可实现对用户的RWXCA的权限控制。配置:hbase-site.xml<property> <name>hbase.security.authorization</name> <value>true</value></property><property> <name&

2020-09-24 16:31:54 475

原创 hive自定义函数(java)

目录流程准备代码打jar包流程java 继承UDF类编写udf函数(evaluate())(一个类一个方法)打fat包(包括所有依赖文件)把jar包放到linux上临时udf函数在hive命令行中使用add jar jar包路径即可加载到临时系统中create temporary function 函数名() as ‘方法的全类名’永久udf函数在liunx命令行使用hdfs命令把jar包上传到hdfs路径create function 函数名 as ‘方法的全类名’us

2020-09-22 17:11:31 544 1

原创 hive创建表失败:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.

首先为什么会有这个问题呢,因为我是直接把朋友的虚拟机拷过来,然后创表时发现如下问题解决方案:打开mysql输入:alter database hive character set latin1;解决后重新进hive创表就可以了

2020-09-21 17:52:27 2385

原创 HBase安装配置和Hive安装配置

目录Hbase的安装配置Hive安装配置Hbase的安装配置安装: 前置条件最少安装了Hadoop(如果只是安装单机版hbase,zookeeper使用hbase内置的即可)如果需要安装伪分布式或完整分布式则需要先安装zookeeper 下载hbase(建议下载hbase-1.2.0)并解压至/opt/目录下,修改解压后的名字为hbasetar -zxvf hbase-1.2.0-cdh5.14.2.tar.gz -C /opt/mv hbase-1.2.0-cdh5.14.2/ hb

2020-09-15 16:01:28 525

原创 HA高可用集群搭建

前提需求:完全分布式zookeeper配置与时间同步配置HA集群配置1.core-site.xml1.core-site.xml设置name集群的名称设置zookeeper 2181地址<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://ns</value&gt

2020-09-15 15:09:18 120

原创 zookeeper的配置和zookeeper集群的时间同步设置

文章目录一.ZooKeeper下载安装二.ZooKeeper配置三.配置集群的时间同步四.启动和关闭ZooKeeper并验证ZooKeeper下载安装拖入opt目录解压安装: tar -zxvf zookeeper-3.4.6.tar.gz删除安装包 rm -rf zookeeper-3.4.6.gar.gz配置全局变量 vi /etc/profile在打开的文件中添加如下两行:export ZK_HOME=/opt/zookeeper-3.4.6exp

2020-09-15 09:31:15 158

原创 hadoop运行模式(本地运行模式,伪分布模式,完全分布模式,配置时间同步)

Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。Hadoop官方网站:http://hadoop.apache.org/本地运行模式官方Grep案例创建在hadoop文件下面创建一个input文件夹[root@hadoop101 hadoop]# mkdir input将Hadoop的xml配置文件复制到input[root@hadoop101 hadoop]# cp etc/hadoop/*.xml input执行share目录下的MapReduce程

2020-09-08 19:16:13 667

原创 2020-08-23HDFS客户端操作

1. HDFS客户端环境准备根据自己电脑的操作系统拷贝对应的编译后的hadoop jar包到非中文路径(例如:E:\hadoop)配置HADOOP_HOME环境变量配置Path环境变量创建一个Maven工程HdfsClientDemo导入相应的依赖坐标+日志添加版本根据你们自己的情况改 <dependencies> <dependency> <groupId>junit</groupId>

2020-09-08 14:27:40 201

原创 2020-08-22maven的安装配置

资源https://pan.baidu.com/s/1iPZzZgo0dJXnY7Ot1WWZ3A密码:g2g3下载完成后打开压缩包进行解压,解压文件位置最好不要放在c盘,记住解压后文件的位置。1.Maven环境变量配置新建变量名为:MAVEN_HOME 变量值:解压后maven文件的位置 例如:E:\softs\apache-maven-3.6.1在PATH变量中添加一条:%MAVEN_HOME%\修改settings.xml文件 可以在maven根目录下的conf包中知道setti

2020-09-04 11:30:28 128

原创 2020-08-21Hadoop在Linux中的安装配置

资源 https://pan.baidu.com/s/1uPa7TAFNEJ5ZSUEaJW1VYg密码:fqi0进入/opt 把文件拖进去cd /opt解压 tar -zxvf hadoop-2.6.0-cdh5.14.2.tar.gz配置环境: vi /etc/profile在末行输入export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROLexport JAVA_HOME=/opt/jdk1.8.0_22

2020-09-03 22:59:28 144

原创 2020-08-20MySQL在Linux的配置

资源链接:https://pan.baidu.com/s/19BdM_cMB-3TP4D_rgLasaw 密码 7gdi网络配置(仅主机:static,IPADDR=)桥接模式.工作中常用按a进入输入模式按esc 再 按 :x //保存退出systemctl restart network //重启网络停止禁用防火墙 systemctl stop firewalldsystemctl disable firewalldmoba远程连接虚拟机上传安装包(

2020-09-03 18:48:48 95

原创 2020-8-19JDBC连接池&JDBCTemplate

资源:https://pan.baidu.com/s/1kmGCN_CBRQDKRZmYszrQfA 提取码:6ckp概念:其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处:节约资源用户访问高效实现:标准接口:DataSource javax.sql包下的方法:- 获取连接:getConnection()- 归还连接:Conne

2020-08-26 20:04:06 121

原创 2020-8-18JDBC基本概念和快速入门

概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。快速入门:步骤:导入驱动jar包 mysql-connector-java-5.1.37-bin.jar1.复制mysql-connector-java-5.1.

2020-08-25 19:49:59 80

原创 2020-08-15 MySQL事务、索引、数据恢复和备份

MySQL事务、索引、数据恢复和备份MySQL的事务处理事务就是将一组SQL语句放在同一批次内去执行如果一个SQL语句出错,则该次内的所有SQL都将被取消执行MySQL事务处理只支持InnoDB 和 BDB 数据表类型事务的ACID原则原子性(Atomic)一致性(Consist)隔离性(Isolated)持久性(Durable)事务的实现使用set语句来改变自动提交模式set autocommit=0;set autocommit=1;MySQL的事务实现方法star

2020-08-19 11:50:10 66

原创 2020-08-13 使用DQL查询数据(二)

使用DQL查询数据(二)子查询:在查询语句中的where条件句中,又嵌套了另外一个查询语句#查询 数据结构-1 的所有考试结果(学号,科目编号,成绩),并按成绩降序排列select studentno,r.subjectno,studentresultfrom result r inner join subject subno r.SubjectNo=sub.SubjectNo;where subjectname='数据库结构-1'order by studentresult desc;#内连

2020-08-19 11:48:24 72

原创 2020-08-13 DQL语言

DQL语言DOL(Data Query Language 数据查询语言)查询数据库数据,如SELECT语句简单的单表查询或多表的复杂查询和嵌套查询数据库语言中最核心,最重要的语句使用频率最高的语句SELECT语法查询所有学生信息SELECT * FROM student;//查询所有列,效率低,不推荐查询指定列(学号 姓名)SELECT studentno , studentname FROM student;为列取别名(as,也可以省略)SELECT studentno AS

2020-08-14 08:32:21 134

原创 2020-08-12 MySQL数据管理

外键管理外键作用创建外键建表时制定外键约束建表后修改删除外键删除外键,删除表.数据库数据管理数据库意义数据存储数据管理管理数据库数据方法通过SQLyog等管理工具管理数据库数据通过DML语句管理数据库数据.DML语言DML(数据操作语言)用于操作数据库对象中所包含的数据包括INSERT(添加数据语句)UPDATE(更新数据语句)DELETE(删除数据语句)添加数据INSERT命令INSERT INTO 表名[(字段1,字段2,

2020-08-13 00:41:48 61

原创 2020-08-11 初识MySQL

为什么要学习数据库岗位技能需求现在的世界,的数据者得天下存储数据的方法程序,网站种大量数据如何长久保存什么是数据库数据库(Database,简称DB)概念:长期存放在计算机内,有组织,可共享的大量数据的集合,是一个数据"仓库"作用:保存,管理数据数据库总览关系型数据库(SQL)MySQL,Oracle,SQL Server…非关系型数据库(NOSQL)Redis,MongaDB…数据库管理系统DBMSDatabase Management System

2020-08-11 19:27:51 79

原创 20200807 (xml、Json、正则表达式)

点赞!!!

2020-08-11 19:25:32 130

原创 2020-8-6-反射

反射Reflection:在运行状态中,对于任意一个类都能够知道这个类所有的属性和方法;并且对于任意一个对象,都能够调用他的任意一个方法;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制编译时无法预知对象或类属于什么类型,需要依靠运行时信息来发现真实信息(完整结构,创建实例,操作属性和方法等),此时需要使用反射反射使我们在运行时看清一个类的运行情况并使用反射是java被视为动态或准动态语言的关键特性反射允许程序在运行时加载,探查,使用一个在编译期可能未知的类java.lan

2020-08-06 12:50:58 95

原创 2020-8-5-多线程

点赞!!!

2020-08-06 12:50:15 118

空空如也

空空如也

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

TA关注的人

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