自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 关于Java中substring()方法的问题

substring() 方法返回字符串的子字符串。有两种用法,分别是:public String substring(int beginIndex)或public String substring(int beginIndex, int endIndex) beginIndex-- 起始索引(包括), 索引从 0 开始。 endIndex-- 结束索引...

2020-01-13 11:24:14 270

原创 Spark之核心组件

一、Spark核心组件实际工作中,会使用YARN Cluster模式。Spark在执行过程中懒执行,直到action操作时才触发job,之后根据宽依赖划分stage,stage被整理成TaskSet,TaskSet里面有多个task,每个task被分发到具体的executor里执行。1、DriverSpark驱动节点,用于执行Spark任务中的main方法,负责实际代码的执行工作。Dr...

2019-10-04 14:06:10 1102

转载 hive 的几种存储格式

Hive文件存储格式1.textfiletextfile为默认格式存储方式:行存储磁盘开销大 数据解析开销大压缩的text文件 hive无法进行合并和拆分2.sequencefile二进...

2019-09-27 13:35:59 411

原创 Spark之内存管理

在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务的调度,后者负责在工作节点上执行具体的计算任务,并将结果返回给 Driver,同时为需要持久化的 RDD 提供存储功能。主要对 E...

2019-09-24 13:19:00 204

原创 Spark之Shuffle

Spark有三种shuffle,分别是hash shuffle、sort shuffle、Tungsten Shuffle。1、HashShuffle适合小数据的场景,对小规模数据的处理效率比排序的shuffle高。1) 每一个Mapper创建出和Reducer数目相同的bucket,bucket实际上是一个buffer,其大小为spark.shuffle.file.buf...

2019-09-23 20:55:31 949

转载 Spark Streaming从Kafka中接收数据的两种方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-09-22 13:21:48 530 1

原创 力扣300-最长上升子序列(有点难)

题目:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是[2,3,7,101],它的长度是 4。思路:题目中要我们求长度最长的递增子序列,没要求子序列必须连续。假设dp(i)表示以第i个数字为结尾的最长上升子序列的长度。即在[0, ..., i]的范围内,选择以数...

2019-09-05 22:01:27 308

转载 01背包问题(写的很好)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-09-03 22:31:08 164

原创 力扣62-不同路径

题目:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?class Solution { public int uniquePaths(int m, int n) { int[][] dp = n...

2019-09-03 21:10:37 151

原创 力扣198-打家劫舍

题目:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。class Solution { public int rob(int[] nums) {...

2019-09-03 20:28:19 170

原创 力扣64-最小路径和

题目:给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。class Solution { public int minPathSum(int[][] grid) { if(grid==null || grid.length==0){ return ...

2019-09-02 22:39:41 224

原创 力扣53-最大子序和

题目:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。class Solution { public int maxSubArray(int[] nums) { if(nums==null || nums.length==0){ return 0; } int...

2019-09-02 21:05:10 153

原创 力扣665-非递减数列

题目:给定一个长度为n的整数数组,你的任务是判断在最多改变1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的:对于数组中所有的i (1 <= i < n),满足array[i] <= array[i + 1]。class Solution { public boolean checkPossibility(int[]...

2019-09-02 20:59:47 219

原创 力扣392-判断子序列

题目:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。示例...

2019-09-01 22:43:08 110

原创 力扣605-种花问题

题目:假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数n。能否在不打破种植规则的情况下种入n朵花?能则返回True,不能则返回False。class Solution { public boolean can...

2019-09-01 22:15:24 126

原创 力扣121-股票的最大利润

题目121:给定一个数组,它的第i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。class Solution { public int maxProfit(int[] prices) { if(prices==null || price...

2019-09-01 21:56:32 353

原创 力扣406-根据身高重建队列

题目:假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意:总人数少于1100人。示例输入:[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]输出:[[5,0], [7,0], [5,2], [6,1], [4,4],...

2019-08-31 22:28:43 253

原创 力扣452-用最少数量的箭引爆气球

题目:在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以y坐标并不重要,因此只要知道开始和结束的x坐标就足够了。开始坐标总是小于结束坐标。平面内最多存在104个气球。一支弓箭可以沿着x轴从不同点完全垂直地射出。在坐标x处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart≤ x ...

2019-08-30 21:59:24 742

原创 力扣435-无重叠区间

题目:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。class Solution { public int eraseOverlapIntervals(int[][] intervals) { if(intervals.l...

2019-08-30 21:37:38 295

原创 力扣455-分发饼干

题目:假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i ,都有一个胃口值gi ,这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j ,都有一个尺寸 sj。如果 sj >= gi,我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是尽可能满足越多数量的孩子,并输出这个最大数值。注意:你可以假设胃口值...

2019-08-29 22:01:45 181

原创 力扣75-颜色分类(荷兰国旗问题)

题目:给定一个包含红色、白色和蓝色,一共n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。class Solution { public void sortColors(int[] nums) { ...

2019-08-28 22:43:14 135

原创 力扣347-前K个高频元素

题目:给定一个非空的整数数组,返回其中出现频率前k高的元素。法一:class Solution { public List<Integer> topKFrequent(int[] nums, int k) { HashMap<Integer,Integer> map = new HashMap<>(); fo...

2019-08-28 21:27:03 277

原创 力扣215-数组中的第K个最大元素

题目:在未排序的数组中找到第k个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。法一:public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length - k];}法二:class Solution...

2019-08-28 20:58:31 223

原创 力扣524-通过删除字母匹配到字典里最长单词

题目:给定一个字符串和一个字符串字典,找到字典里面最长的字符串,该字符串可以通过删除给定字符串的某些字符来得到。如果答案不止一个,返回长度最长且字典顺序最小的字符串。如果答案不存在,则返回空字符串。法一:在未排序的字典 dd 中查找字符串 xx 满足 xx 是 ss 的子序列。如果 xx 被找到了,我们将它与其他匹配的字符串做比较,直到找到长度最长、字典序最小的单词为止。clas...

2019-08-28 09:42:42 185

原创 力扣141-环形链表

题目:给定一个链表,判断链表中是否有环。/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * }...

2019-08-27 22:41:25 154

原创 力扣88-合并两个有序数组

题目:给定两个有序整数数组nums1和nums2,将nums2合并到nums1中,使得num1成为一个有序数组。class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int i=m-1; int j=n-1; int k...

2019-08-27 22:30:55 143

原创 力扣633-平方数之和

给定一个非负整数c,你要判断是否存在两个整数a和b,使得a2+ b2= c。class Solution { public boolean judgeSquareSum(int c) { int i=0; int j=(int)Math.sqrt(c); while(i<=j){ if(i*i...

2019-08-27 22:20:13 148

原创 力扣345-反转字符串中的元音字母

题目:编写一个函数,以字符串作为输入,反转该字符串中的元音字母。class Solution { HashSet set = new HashSet(Arrays.asList('a','e','i','o','u','A','E','O','I','U')); public String reverseVowels(String s) { if(s==nu...

2019-08-27 22:19:47 122

原创 力扣680-验证回文字符串Ⅱ

题目:给定一个非空字符串s,最多删除一个字符。判断是否能成为回文字符串。class Solution { public boolean validPalindrome(String s) { char[] array = s.toCharArray(); int i=0; int j=array.length-1; w...

2019-08-27 22:18:41 174

原创 Java基础

1、缓存池new Integer(123) 与 Integer.valueOf(123) 的区别在于:new Integer(123) 每次都会新建一个对象; Integer.valueOf(123) 会使用缓存池中的对象,多次调用会取得同一个对象的引用。Integer x = new Integer(123);Integer y = new Integer(123);Syste...

2019-08-22 09:38:47 155

原创 ZooKeeper技术内幕(五)

七、各服务器角色介绍1、Leader处理事务请求,保证集群处理事务的顺序性;集群内部服务器的调度者;2、Follower处理客户端非事务请求,转发事务请求给Leader服务器;参与Leader选举;3、Observer与Follower的区别是不参与Leader选举。八、数据与存储数据存储分为两部分:内存数据存储、磁盘数据存储1、内存数据1)DataTree...

2019-08-21 15:43:57 164

原创 ZooKeeper技术内幕(四)

六、Leader选举:1、概述1)服务器启动时的Leader选举:我们假设有3台服务器组成一个集群。server1、server2、server3。myid分别是1、2、3。①每个server会发出一个投票,每次投票包含的最基本元素有:所选举的服务器的myid和ZXID。刚开始都会将自己作为Leader服务器来进行投票。所以server1的投票为(1,0),server2的投票为(...

2019-08-21 09:07:06 109

原创 ZooKeeper技术内幕(三)

四、会话1、会话状态ZooKeeper客户端与服务端创建连接后,就建立起了一个会话。会话有几种状态:CONNECTING、CONNECTED、RECONNECTING、RECONNECTED、CLOSE等。2、会话创建1)SessionSession是ZooKeeper的会话实体,达标一个客户端会话。包含四个基本属性:sessionID、TimeOut、TickTime、isC...

2019-08-20 18:44:02 214

原创 ZooKeeper技术内幕(二)

二、序列化与协议1、序列化ZooKeeper中使用Jute进行数据的序列化与反序列化。1)使用步骤:(1)实体类需要实现Record接口的serialize和deserialize方法;(2)构建序列化器OutputArchive;(3)序列化:调用serialize方法;(4)反序列化:调用deserialize方法。2、通信协议基于TCP/IP协议,ZooK...

2019-08-20 15:29:17 186

原创 ZooKeeper技术内幕(一)

一、系统模型1、数据模型1)ZNode:是ZooKeeper中最小的数据单元,每个ZNode都可以保存数据和挂载子节点,构成一个层次化的命名空间,称为树。2)事务ID:ZooKeeper中,事务指的是能够改变服务器状态的操作,,包括数据节点的创建与删除,数据节点内容变更等。对于每一个事务请求,ZooKeeper会为其分配一个全局唯一的事务ID,即ZXID,通常是一个64位的数字,每一个...

2019-08-19 21:00:58 179

原创 斐波那契数列的四种实现方式:

最近在刷算法题,发现之前写的斐波那契数列,用的是递归方式,感觉不是很好,尝试一下用别的方法。总共有4种,话不多说,贴代码。法一:递归,时间复杂度是指数级。public class Solution { public int Fibonacci(int n) { if(n==0) return 0; if(n==1) ...

2019-08-11 14:07:51 588

原创 七、Kafka版本的选择

一、Kafka版本命名:当前 Apache Kafka 已经迭代到 2.3版本。但是我对Kafka 的版本命名理解存在歧义。今天特此学习一下。比如我们在官网上下载 Kafka 时,会看到这样的版本:难道 Kafka 版本号不是 2.11 或 2.12 吗?其实不然,前面的版本号是编译 Kafka 源代码的 Scala 编译器版本。Kafka 服务器端的代码完全由 Scala 语...

2019-07-14 19:07:09 10973 1

原创 六、Kafka种类的选择

1. Apache KafkaApache Kafka 是最“正宗”的 Kafka。自 Kafka 开源伊始,它便在 Apache 基金会孵化并成为顶级项目,它也被称为社区版 Kafka。更重要的是,它是后面其他所有发行版的基础。也就是说,后面提到的发行版要么是原封不动地继承了 Apache Kafka,要么是在此之上扩展了新功能,总之 Apache Kafka 是我们学习和使用 Kafka ...

2019-07-10 19:35:50 1076

原创 git简单使用

目前对git已经会简单使用了,自己在平时学习中也会用一些。一、上传代码到git。1、记住自己的gitHub账号、密码,电脑安装git。2、进入Github首页,点击New repository新建一个项目仓库3.填写相应信息后点击create即可Repository name: 仓库名称 Description(可选): 仓库描述介绍 Public, Private : ...

2019-06-18 14:44:23 104

原创 Spark数据倾斜问题

数据倾斜问题经常会遇到,今天总结一下:Spark 中的数据倾斜问题主要指 shuffle 过程中出现的数据倾斜问题,是由于不同的 key 对应的数据量不同导致的不同 task 所处理的数据量不同的问题。例如, reduce 点一共要处理 100 万条数据, 第一个和第二个 task 分别被分配到了 1 万条数据, 计算 5 分钟内完成, 第三个 task 分配到了 98 万数据,此时第三个...

2019-05-17 21:15:28 420

剑指offer第二版完整java版

本人吐血亲自整理,完整版!在牛客网上完全可以运行通过,对于牛客上没有的,也有完整的整理。

2018-12-15

空空如也

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

TA关注的人

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