自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CoderLin很忙的博客

我要一步一步往上爬

  • 博客(32)
  • 资源 (2)
  • 收藏
  • 关注

原创 Top、w命令

top命令回显解释:第一行:top - 系统当前时间 up 系统开机到现在的时长(时:分), 在线用户数 users, load average: 系统前1分钟、5分钟、15分钟的CPU负载信息注意:load average后这几个值的意义是单位时间内CPU活动进程数,如果机器为单核,只要这几个值小于1,则表明没有负载压力;如果为N核,这几个值小于N则可认为没有负载压力第二行:Tasks: 进程总数 total, 正在运行的进程数 running, 处于随眠状态的进程数 sleeping, 停止的进程

2020-11-23 15:21:05 1268 1

原创 LeetCode之旅(持续更新~)

两数之和https://leetcode-cn.com/problems/two-sum/思路:增加一个Map,用来记录已经遍历过的数字及其对应的下标。遍历原数组中每一个数字,如果目标值与当前数字的差值在Map中不存在时则用Map记录当前数字和对应下标,当目标值与当前数字的差值能在Map中找到时,则返回该差值对应的下标和当前数字在数组中的下标。public int[] twoSum(int[] nums, int target) { Map<Integer, Integer> map.

2020-07-24 11:59:58 234

原创 Hive支持Update和Delete语句

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML#LanguageManualDML-Update文档说了hive从0.14开始支持的update和delete语句,我使用的hive是1.2.1版本。首先在hive-site.xml里配置如下属性: <property> <...

2019-08-13 12:19:44 10211

原创 Hive开窗函数和Rank函数

开窗函数over():跟在聚合函数后面,指定分析函数工作的数据窗口大小,决定了数据的聚合范围,默认范围是整个数据窗口,即所有行。可使用partition by将数据进行分组聚合;使用order by除了排序,还会改变聚合范围(从开始行到当前行的聚合)。如下的窗口字句,能对聚合数据进一步的划分current row:当前行n preceding:往前n行数据n following:往后n行...

2019-03-04 16:42:07 1214

原创 Hive查询函数的总结和案例(一)

NVL空字段赋值NVL(value, default_value):如果value为NULL,则NVL函数返回default_value(可以为常量,也可以为某个字段)的值,否则返回value的值,如果两个参数都为NULL,则返回NULL。此函数很简单,此处不写例子。CASE WHEN和IFcase when有如下两种形式:case 字段when 条件值1 then 值1when 条件...

2019-03-02 16:35:44 903 1

原创 Hive的架构和原理

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL(HQL)查询功能。Hive是将HQL转化为MapReduce程序,Hive处理的数据存储在HDFS上,执行程序运行在Yarn上。由于执行的是MapReduce程序,延迟比较高,因此Hive常用于离线的数据分析。Hive架构图Client:用户接口CLI(command-line interf...

2019-02-27 12:03:16 2332

原创 理解Spark中的RDD、DataFrame和DataSet

RDDRDD(Resilient Distributed Datasets)叫做弹性分布式数据集,是Spark中最基本的数据抽象,源码中是一个抽象类,代表一个不可变、可分区、里面的元素可并行计算的集合。编译时类型安全,但是无论是集群间的通信,还是IO操作都需要对对象的结构和数据进行序列化和反序列化,还存在较大的GC的性能开销,会频繁的创建和销毁对象。RDD也不支持SparkSQL操作。Data...

2019-02-21 21:13:23 591

原创 Spark实现wordcount

object WordCount{ def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName(&amp;quot;wordcount&amp;quot;) val sc = new SparkContext(conf) sc.textFile(args(0)).flatMap(_.split(&amp;quot; &amp;quot;)...

2019-02-17 23:26:23 892

原创 Spark的四种部署方式概括

1.Local模式Local模式就是运行在一台计算机上的模式,通常用于在本机上测试,当不设置master参数的值时,默认此模式,具体有以下几种设置master的方式。local:所有计算都运行在一个线程当中,没有任何并行计算。local[n]:指定使用n个线程来运行计算。local[*]:按照CPU的最多核数来设置线程数。2.Standalone模式设置master参数的值为sp...

2019-02-17 22:42:21 6705

原创 Hadoop优化策略

Hadoop优化策略数据输入小文件处理:(1)合并小文件:对小文件进行归档(har)、自定义inputFormat将小文件存储成sequenceFile文件。(2)采用CombineFileInputFormat来作为输入,解决输入端大量小文件场景。(3)对于大量小文件Job,可以开启JVM重用。map阶段:(1)增大环形缓冲区大小,比如从默认的100m扩大到200m。(2)增大环...

2019-02-15 21:14:40 174

原创 HDFS组成架构与读写数据流程

HDFS组成架构HDFS采用Master/Slave的架构来存储数据,这种架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。Client:客户端。(1)文件切分:文件上传HDFS时,Client将文件切分成一个一个的数据块(Block),然后进行上传。(2)与NameNode交互,获取文件的位置信息。(3)...

2019-02-15 19:39:28 514

原创 SSM整合总结

SSM框架集由Spring、SpringMVC、MyBatis整合而成。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架;SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制;MyBatis是一个支持SQL查询,存储过程和高级映射的优秀持久层框架。页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层...

2018-11-01 15:07:55 2263

原创 构造二叉查找树(Java实现)

一颗二叉查找树(BST)是一颗二叉树,每个结点的键都大于其左子树中的任意结点而小于右子树的任意结点,在Java实现中每个结点都含有一个Comparable的键(以及相关联的值)。二叉查找树类似于快速排序,跟结点就是快速排序的第一个切分元素,左侧的键都比它小,右侧的键都比它大,对于所有子树同样适用,这和快速排序中对子数组的递归排序完全对应。在由N个随机键构造的二叉树中查找和插入平均所需比较次数为...

2018-09-18 21:02:01 1771

原创 无序链表实现顺序查找(Java实现)

链表中的每个结点存储一个键值对,get()的实现即为遍历链表,equals()方法比较需要被查找的键和每个结点中的键,如果匹配成功就返回相应的值,否则返回null。put()的实现也是遍历链表,用equals()方法比较需要被查找的键和每个结点中的值,如果匹配成功就用第二个参数指定的值更新和该键相关联的值,否则我们就用给定的键值对创建一个新的结点并将其插入到链表的开头。Java实现代码如下:p...

2018-09-18 20:44:13 654

原创 基于堆的优先队列(Java实现)

优先队列的最重要的操作:删除最大元素(或最小)和插入元素。数据结构二叉堆能够很好的实现队列的基本操作。二叉堆的结点按照层级顺序放入数组,用长度为N+1的私有数组pq来表示一个大小为N的堆(堆元素放在pq[1]至pq[N]之间,为方便计数,未使用pq[0]),跟节点在位置1,它的子结点在位置2和3,以此类推。位置k的节点的父节点位置为k/2,它的两个子节点位置分别为2k和2k+1。当一颗二叉树的...

2018-09-18 20:13:19 2512 2

原创 堆排序(Java实现)

堆排序指利用堆这种数据结构的一种排序算法,是选择排序的一种。 如果是非降序排序,需要使用大根堆(是完全二叉树),即每个节点的值都不大于父节点的值。将二叉树的节点按照层级顺序放入数组,用长度为N+1的私有pq[]来表示一个大小为N的堆(为后面计数方便,不使用pq[0],堆元素放在pq[1]至pq[N]之间),根节点在位置1,它的子节点在位置2、3,以此类推。位置k的节点的两个子节点位置分别为2k和2...

2018-09-18 19:37:57 4574 3

原创 二分查找(Java实现)

二分查找又称为折半查找,要求线性表必须采用顺序存储结构,并且元素按关键字有序排列。查找过程:假设数组中元素按升序排列,将数组中间位置的值与待查值比较,如果相等则查找成功;否则利用中间位置下标将数组分成前后两个子数组,如果中间位置的值大于待查值则到前一子数组中查找,如果中间位置的值小于待查值则到后一子数组中查找。重复以上步骤,直到找到或查完数组所有元素(未找到)。时间复杂度O(logN)。Jav...

2018-09-17 20:34:04 434

原创 归并排序(Java实现)

归并排序先递归地将数组分成两半分别排序,然后将结果归并起来,遵循分冶模式:分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列。解决:使用归并排序递归地排列两个子序列。合并:合并两个已排序的子序列(归并排序的关键步骤)。时间复杂度为O(NlogN),空间复杂度O(N),稳定的排序(如果一个排序算法能够保留数组中重复元素的相对位置则被称为是稳定的)。经数学证明,所有基于比较的排...

2018-09-17 19:28:33 228

原创 希尔排序(Java实现)

希尔排序是对插入排序的改进,交换的是不相邻的元素以对数组的局部进行排序,并最终用插入排序将局部有序的数组排序。希尔排序先使数组中任意间隔为h的元素都是有序的,这样的数组被称为h有序数组(一个h有序数组即一个由h个有序子数组组成的数组),在进行排序时,如果h很大,就能将元素移动到很远的地方,为实现更小的h有序创造方便。希尔排序又称“缩小增量排序”,对于每个h,用插入排序将h个子数组独立地排序,只需...

2018-09-17 19:04:57 3639 4

原创 快速排序(Java实现)及其改进(三向切分的快速排序)

快速排序思想:通过一趟排序将数据分割成独立的两部分,其中一部分的所有数据都比另一部分的所有数据要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行。 一趟快速排序的步骤:设置两个变量:i = 0,j = N - 1;以第一个数组元素作为关键数据,赋值给key,即key=a[0](此时a[i]的值已有key保存,故i位置可被其他赋值);从j开始向前搜索(j–),找...

2018-09-16 23:57:02 606

原创 冒泡排序(Java实现及其改进)

依次比较两个相邻的元素,如果他们的顺序错误就把他们交换过来。如升序:如果第一个比第二个大就交换,对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对)。 时间复杂度O(N^2),稳定排序算法。 public static void bubbleSort(int[] a){ for(int i = 0; i &amp;amp;amp;lt; a.length - 1; i++){ ...

2018-09-14 21:02:06 1119

原创 插入排序(Java实现)

将待排序中的一个数插入到已排好序的数据中的适当位置上,从而得到一个新的有序数据。 时间复杂度O(N^2),稳定的排序算法。 当数组元素部分有序时,效率变高。 public static void insertionSort(int[] a){ int N = a.length; for(int i = 1; i &lt; N; i++){ ...

2018-09-14 19:54:22 495

原创 链表实现堆栈和队列

链表实现堆栈:栈的顶部即为链表头,实例变量first指向栈顶,当使用push()压入一个元素时会将该元素添加到表头,当使用pop()删除一个元素时会将该元素从表头删除,操作时间与元素个数无关。 Java代码如下:public class Stack&lt;T&gt;{ private Node first = null;//栈顶,即最近添加的元素 private int ...

2018-09-06 00:28:51 2267

原创 实现简单的算术表达式

这里用栈的数据结构实现算术表达式(简单起见,这里定义的是未省略括号的算术表达式,支持+、-、*、/)。E.W.Dijkstra在20世纪60年代发明了一个简单算法,用两个栈(一个用于保存运算符,一个用于保存操作数)完成了这个任务。表达式由括号、运算符和操作数组成,根据以下4种情况从左到右逐个将这些实体送入栈处理:1.将操作数压入操作数栈;2.将运算符压入运算符栈;3.忽略左括号;4.在遇...

2018-09-05 13:56:16 4898 1

原创 选择排序(Java实现)

选择排序:首先找到元素中最小的那个元素,其次,将它和第一个元素交换位置,再次,在剩下的元素中找到最小的元素和数组中第二个元素交换位置,如此往复,直到数组排序(每次从待排序元素中选择最小者或最大者)。Java代码实现:public static void selectionSort(int[] a){ int N = a.length; //每次寻找剩余元素中的最小值 f...

2018-09-03 20:33:10 6319 1

原创 在static方法内部不能调用非静态方法?

见《Thinking in Java》第86页。 “这不是完全不可能。如果你传递一个对象的引用到静态方法里,然后通过这个引用,你就可以调用非静态方法和访问非静态数据成员了。” 示例: ...

2018-08-12 18:01:24 2263

原创 MySQL用户名和密码都正确却无法登陆的问题

今天使用MySQL时,我创建了一个新用户: CREATE USER 'ubermensch'@'%' IDENTIFIED BY 'man2017'; 然后登陆该用户时却一直报错(密码正确): C:\Users\超人林>mysql -u ubermensch -p Enter password: ******* ERROR 1045 (28000): Access denied for

2017-03-03 00:30:44 19092 4

转载 关于Java类加载器(ClassLoader)

这里写链接内容

2016-09-19 11:30:19 202

原创 取球问题

有这么一个问题: 盒子里有n个球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个。 若每个人从盒中取出的球的数目必须是:1,3,7,8。轮到某一方取球时不能弃权,A先取球,然后双方交替取球, 规定最后取完球的人为胜方。假设两个都很聪明,每次都做出最有利于自己获胜的选择。 该题曾出现在某一年的蓝桥杯比赛上,不过我稍作了一些修改,如果想看蓝桥杯的原题,可

2016-05-23 17:37:11 1486

原创 递归解决全排列和幻方

何为全排列,我想这个就不用多解释了吧,如果真不知道,可以自行上网查询。现在的重点是如何编程实现它,简要介绍一下我的全排列的递归算法思想:若用字符数组a[n]来存储数据,先固定a[0]到a[k](k从0到n-1),再生成a[k+1]到a[n-1]的全排列(具体采用交换元素的步骤来实现)。 C代码如下#include<stdio.h>#include<string.h>void permute(

2016-05-22 11:58:30 643

原创 递归之求幂

刚开始学习用递归实现x的n次方时,其思想(或者递推式)一般如下: X^n = X * X^n-1(n > 0); X^n = 1(n = 0); C语言代码如下: //__int64为有符号8字节整数 __int64 power(int x, int n){ if(n == 0){//递归结束条件 return 1; } re

2016-05-14 13:09:36 3032

原创 C语言之结构体内存对齐

#include /*结构体的大小:最后一个成员的大小加上最后一个成员的偏移量偏移量:结构体变量中的一个成员的地址和结构体变量的地址的字节之差由于地址对齐的要求,编译器在编译时会遵守以下两条规则:1.结构体变量的成员的偏移量是该成员大小的整数倍2.结构体大小必须是任何成员大小的整数倍*/int main(void){    struct stu1{ 

2016-04-25 22:24:11 284

空空如也

空空如也

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

TA关注的人

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