自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

菜菜的大数据开发の路

java后端&&大数据开发,菜,尚在不断学习中!

  • 博客(146)
  • 资源 (1)
  • 收藏
  • 关注

原创 13. <tag-数组和双指针(左右指针)>-lt.977-有序数组的平方 + lt.75-颜色分类

lt.977-有序数组的平方[案例需求][思路分析]简单题简单做, 遍历给定的有序数组的每个数, 把遍历到的每个数进行平方, 放入到新数组,而由于题目要求我们输出的数组是有序的, 如果数组中含有负数, 那么还要对得到的结果数组进行排序后, 再返回.[代码实现]class Solution { public int[] sortedSquares(int[] nums) { //新数组. 存放平方数 int[] res = new int [nums.

2021-12-08 15:55:51 30

原创 12. <tag-数组和双指针(快慢针)>-lt.80- 删除有序数组中的重复项 II (待补充)

lt.40- 删除有序数组中的重复项 II[案例需求][思路分析][待补充][代码实现]class Solution { public int removeDuplicates(int[] nums) { //有序数组 + 原地交换==> 双指针==> 快慢针 //左指针指向不重复, 或只重复一次的一组数的末尾; //如何判断只重复一次? // l-1 = l = r, 说明 重复两次以了 //

2021-12-07 14:36:51 4

原创 11. <tag-数组和双指针(左右指针)>-lt.18-四数之和

lt.18-四数之和[案例需求][思路分析]本题也就是三数之和的拓展罢了, 前面我们三数之和怎么解的呢? --> 先对数组排序, 然后共一层for循环遍历第一个加数, 后面两个加数分别使用左指针和右指针向中间(L=R)逼近的方式进行遍历.同样的, 四数之和, 使用两层for循环遍历前两个加数, 使用左右指针遍历后两个加数;像这种数组中, 多个加数的和, 最重要的就是熟练掌握对加数的去重, 因为每个加数都是遍历得到的, 比如第一个加数a, 它(nums[i])和前一次遍历的数(nu

2021-12-07 14:31:17 279

原创 Java实现反射的常见用法完整代码示例

package cn.cyy.cl.common.bean;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;public class Dog { //Dog实体类 int age; String name; public String field = "我是一个参数, 你获取到

2021-12-05 22:47:43 83

原创 Java面试重点_4. 一文彻底搞懂Java中的反射

一, 什么是反射? 反射存在的意义是什么?反射作为Java这门语言中, 可以说是最抽象的一种概念, 让我们先从知乎大佬的一番近似于大白话的叙述看起来:概念:Java反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。用一句话总结就是反射可以实现在运行时可以知道任意一个类的属性和方法。1.1 反射存在的意义有的同学可能会疑惑,Java 已

2021-12-05 22:46:33 378

原创 Java面试重点_3. 你了解引用拷贝,浅拷贝和深拷贝吗?

文章目录引用拷贝, 深拷贝, 浅拷贝1. 引用拷贝2. 浅拷贝3. 深拷贝引用拷贝, 深拷贝, 浅拷贝在开发、刷题、面试中,我们可能会遇到将一个对象的属性赋值到另一个对象的情况,这种情况就叫做拷贝。拷贝与Java内存结构息息相关,搞懂Java深浅拷贝是很必要的!在对象的拷贝中,很多初学者可能搞不清到底是拷贝了引用还是拷贝了对象。在拷贝中这里就分为引用拷贝、浅拷贝、深拷贝进行讲述。1. 引用拷贝**引用拷贝会生成一个新的对象引用地址(变量),但是两个最终指向依然是同一个对象。**如何更好的理解引用拷

2021-12-03 15:45:48 15

原创 Java面试重点_2.为什么重写 equals() 时必须重写 hashCode() 方法?

我觉着很无聊的一个问题;

2021-12-02 22:18:04 122

原创 Java面试重点_1. 常量池 和 String类的不变性, 拼接方式等

一, 常量池1. 常量池的好处常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享。例如字符串常量池,在编译阶段就把所有的字符串文字放到一个常量池中。(1)节省内存空间:常量池中所有相同的字符串常量被合并,只占用一个空间。(2)节省运行时间:比较字符串时,比equals()快。对于两个引用变量,只用判断引用是否相等,也就可以判断实际值是否相等。2. 双等号 ==, equals();在基本数据类型中使用==表示比较他们的数值大小, 在引用数据类型的对象之间, ==是比较

2021-12-02 21:52:20 355

转载 DecimalFormat - 格式化数据

开发过程中,通常会遇到一个问题:我们需要将一个数值转换为格式化的数值,比:3.145678保留两位有效数字,这时候我们该用什么方法来转换呢?这篇笔记,将教会我们如何将String、double、float格式化为我们所需要的格式(比如:保留两位小数),而我们要用到的对象就是:DecimalFormat。1、DecimalFormat的介绍全路径名:java.text.DecimalFormatJavaSE官方文档的描述:DecimalFormat 是 NumberFormat 的一个具.

2021-12-01 16:42:12 10

原创 三-3, HBase 与 Hive 交互

三-3, HBase 与 Hive 交互3.1 HBase 与 Hive 的对比[Hive]梗概详述1. 数据仓库Hive 的本质其实就相当于将 HDFS 中已经存储的文件在 Mysql 中做了一个双射关系,以方便使用 HQL 去管理查询。2. 用于数据分析,清洗Hive 适用于离线的数据分析和清洗,延迟较高。3. 基于HDFS,MapReduceHive 存储的数据依旧在 DataNode 上,编写的 HQL 语句终将是转换为 MapReduce 代码执

2021-11-28 16:41:36 95

原创 三-2. HBase与Mapreduce交互(待补充)

3.2 HBase与MapReduce 交互3.2.0 前言在Hadoop中MR使用HBase,需要将HBase的jar包添加到Hadoop的类路径下,所以需要修改配置文件添加类路径。这源于一个思想:A要使用 B,那么A要有B的jar包。例如:在 Hive的安装中,Hive需要使用到MySQL数据库,所以将jdbc驱动包放到lib文件夹中HBase与MapReduce交互有三种方式(MR代表HDFS):1. HDFS从HBase表中读数据2. HDFS写数据到HBase表中3. HDFS从

2021-11-25 14:12:11 873

原创 三-1,使用 Java 操作 HBase API

文章目录三, HBase API 入门3.1 API 基本使用3.1.0 环境准备3.1.1 HBase API-->DDL操作1. 判断hbase中的某张表是否存在(admin.tableExists(TableName)) && 获取Configuration 对象 + 获取 HBaseAdmin 对象1.1 改进上一节-->静态代码块的恰当应用2. 创建表(admin.createTable(tableName, cf))3. 创建命名空间3.1.2 HBase API-

2021-11-25 11:02:12 1017

原创 10. <tag-数组和双指针(左右指针)>-lt.344-反转字符串 + lt.16-最接近的三数之和 + lt.349-两个数组的交集

lt.344-反转字符串[案例需求][思路分析]原地逆转[代码实现]class Solution { public void reverseString(char[] s) { //左右指针法 int L = 0; int R = s.length - 1; char temp = ' '; while(L < R){ temp = s[L]; s

2021-11-24 12:20:59 124

原创 tag数组-刷题预备知识-5. 数组中的滑动窗口

一, 概述简而言之,滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。其实这里就可以看出来滑动窗口主要应用在数组和字符串上, 当你遇到让求子串,子数组的问题时就要考虑一下使用双指针滑动窗口了.二, 原理之后重复上述过程,先移动 right,再移动 left…… 直到 right 指针到达字符串 S 的末端,算法结束。如果你能够理解上述过程,恭喜,你已经完全掌握了滑动窗口算法思想。至于如何具体到问题,如何

2021-11-23 15:01:53 363

原创 9. <tag-数组模拟矩阵>-lt.498-对角线遍历(待补充)

lt.498-对角线遍历[案例需求][思路分析]详细题解[代码实现]class Solution { public int[] findDiagonalOrder(int[][] mat) { // 每个矩阵对角线遍历次数为 count = m + n - 1;] //在这些遍历中, 先向上遍历, 再向下遍历; //注意, 每次遍历到边缘部位, 如果要回到下一个方向遍历的第一个元素, 还要对行数,和列数做出处理

2021-11-20 15:44:30 141 1

原创 二, HBase 架构进阶 (待完善)

二, HBase 进阶2.1 Hbase 的物理架构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-merinCKM-1637333567573)(2021-11-16-17-00-49.png)]物理上, HBase是由三种类型的Server组成的主从式(master-slave)架构:1. RegionServer (HRigionServer)[概述]在HDFS中, DataNode负责存储实际数据, RegionServer主要负责响应用户的请求, 向H

2021-11-19 22:53:03 1098

原创 8. <tag-数组和二分查找_1>-lt.704-二分查找 + lt.33-搜索旋转排序数组 +lt.34-在排序数组中查找元素的第一个和最后一个位置 + lt.35-搜索插入位置 (待完善)

lt.704 二分查找[案例需求][思路分析]二分法典型例题, 有什么好说的, 我秒了[代码实现]

2021-11-19 18:18:30 14

原创 tag数组-刷题预备知识-4.一通百通解决二分查找问题

文章目录1. 二分法查找法的基本思想2. 二分查找的时间复杂度3. 二分查找的几个模版3.1 模板一: 标准的二分查找3.2 模板二: 二分查找边界(左边界, 右边界, 或是左右边界)3.2 模板三: 二分查找极值点4. 总结1. 二分法查找法的基本思想二分法其实就是使用了分治法的思想;二分法的基本思想是将n个元素分成大致相等的两部分, 取nums[mid] 与 target 做比较:如果 target = nums[mid], 则找到target, 运行结束, 返回mid;如果 target

2021-11-18 11:50:55 273

原创 7. <tag-数组和哈希表>-lt.73-矩阵置零 + lt.1464-数组中两元素的最大乘积 + lt.169-多数元素 (待补充)

lt. 73 矩阵置零(需要优化)本题同, 面试题 01.08. 零矩阵[案例需求][思路分析]第一次双重循环遍历矩阵(二维数组), 使用两个hashSet记录下0的行数和列数, 为什么用Set集合, 因为set集合内的数据无序不可重复, 去重;第二次双重循环遍历矩阵, 如果矩阵此时的行号i 或列号j 有一个被包含在上面的那两个集合中了, 把 matrix[i][j] 置为0即可;[代码实现]class Solution { public void setZeroes(i

2021-11-15 22:22:12 547

原创 一, Habse 概述,安装和快速上手

一, HBase 简介0.起源HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为协同服务。文章目录一, HBase 简介0.起源1

2021-11-14 17:27:38 1463

原创 6. <tag-数组和双指针(快慢针)>-lt.26- 删除有序数组中的重复项+lt.283-移动零

lt.26 删除数组中的重复元素[案例需求][思路分析][代码实现]class Solution { public int removeDuplicates(int[] nums) { //有序数组, 理应考虑到双指针, 至于何种双指针, 细读题目 // 定义左右指针L,R. L始终指向非重复的数组最后一位, R是遍历原数组, // 发现与L的元素不同, 立即移动L指针, 并交换L,R对应的元素 // L 与 R元素相同,

2021-11-14 13:53:43 976

原创 5. <tag-数组模拟矩阵>-lt.48- 旋转图像 + lt.59-螺旋矩阵 II

class Solution { public int[][] generateMatrix(int n) { //其实跟螺旋数组I的思路挺像的, 只不过之前是遍历螺旋矩阵, 这次是写入螺旋矩阵, //所以我们可以模仿前面螺旋矩阵的遍历方式,并同时插入规定的数 1-->n*n //指定四个角(数组的索引) int left = 0; int right = n -1; int top = 0;

2021-11-13 16:23:48 614

原创 4. <tag-数组模拟矩阵>-lt.967 转置矩阵 + lt.54-螺旋矩阵 + lt.74-搜索二维矩阵 + 剑指Offer.29-顺时针打印矩阵

数组和矩阵结合的问题lt.54 螺旋矩阵[案例需求][思路分析]数组和矩阵一起结合考察(用数组模拟矩阵), 偏数学思想, 机器学习领域考察那是相当的多, 管咱屁事哈哈, 既然遇到了, 就把考察频度高的几道题甩出来螺旋矩阵,即顺时针读取矩阵, 记录到结果集合中并返回,我们最常用的解法就是, 记录矩阵的四个角, 不断的缩小角之间的范围, 直到目标数组中只剩下单纯的一列或一行数据, 甚至就剩一个数字, 同时也要记得把每次遍历的两个角之间的数, 添加到用于返回的集合中;看上图最下面的提示,

2021-11-12 17:52:14 1061

原创 3. <tag-数组和双指针(左右指针)>-leetcode.15-三数之和 + leetcode.167-两数之和 II

1. LeetCode 15. 三数之和 (Medium)[案例需求][思路分析]这道题可以看做是两数之和的更进一步, 所以根据两数之和的高级解法, 我们可以对三数之和使用hashMap法, 或者使用双指针中的左右指针法, 显然这道题, 包括前面的两数之和, 使用左右双指针都是比较容易理解的;本题目中未声明数组有序, 所以实现还需要对数组进行排序, 同时最最最重要的一点就是对数组中重复数字的处理, 在开始遍历第一个加数之前, 我们需要对第一个加数进行去重, 在遍历第一个加数之后, 我们还需要对第

2021-11-10 16:14:00 2154

原创 tag数组-刷题预备知识-3.数组中的 双指针 ,快慢指针,滑动窗口 (待补充,扩展)

一, 概述双指针主要是用于遍历数组, 两个指针指向不同的元素,从而协同完成任务.当然, 我们也可以延伸到多个数组的多个指针[用法和应用场景]一, 左右指针(相向双指针)[定义]1.1 lt1. 两数之和1.2 lt167. 两数之和IIlt 二分查找法删除有序数组中的重复项 ||lt 283 移动零lt 633. 平方数之和剑指Offer. 奇偶数排序二, 快慢指针(同向双指针)1.3 lt26. 删除有序数组中的重复项三, 滑动窗口(同向双指针)详细文章

2021-11-09 15:20:44 84

原创 tag数组-刷题预备知识-2. 数组和集合的各种排序方法

Collections.sort(集合工具类, 适合于自然排序)自然排序法, 实现Comparable接口, 实现其中的comapreTo(Obj obj)方法比较器, 实例化Comparator类, 重写其中的compre(Obajec obj1, Object obj2)参考资料:2.2 节, 集合排序的两种方法ArrayList集合排序方式总结List集合排序 sort方法...

2021-11-07 11:47:34 19

原创 tag数组-刷题预备知识-1. 集合和数组之间的转换(重要)

我们在手撕力扣的时候, 经常能遇到这样类型的题目: 要求你返回一个长度未知的数组或是需要暂时存储一个长度不定的数, 这个时候, 可能大多数想到的就是前期先把需要的数组或者字符串放到集合中, 根据题目需要选择是ArrayList亦或是k-v对的HashMap, 在返回的时候, 把集合转换为数组返回即可那么, 在遇到上述这种问题时, 我们就不可避免的要用到数组<---->集合之间的相互转换.一, 集合转为数组 (集合对象.toArray() / 集合对象.toArray( T[] a)).

2021-11-06 12:10:21 30

原创 二-1, zookeeper在kafka集群中的作用

简单来说就是一句话. zk在kafka集群中主要是用来管理broker和consumer, 因为他们在zk上都真实的存了具体数据; 而Producer端直接连接broker,不在zk上存任何数据,只注册监听,监听broker和topic信息。A: zk管理kafk集群的brokers, 主要是做了以下工作:broker的注册zk记录了kafka集群所有brokers的存活状态(在/brokers/ids 维护),broker会向zk发送心跳请求来上报自己的状态.控制器选举..

2021-11-04 09:35:59 29

原创 二, Kafka架构深入

二, Kafka架构深入2.1 Kafka 工作流程(待完善)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bAk1dhqF-1635778465190)(2021-10-25-14-00-42.png)]Kafka 中消息是以topic进行分类的, 生产者生产消息, 消费者消费消息, 都是面向topic的.topic是逻辑上的概念, 而partition是物理上的概念, 每个partition对应于一个log文件目录(目录里面是分片了的.log文件和), 该log

2021-11-01 22:55:11 2161

原创 一, Kafka 概述, 安装, 快速入门

一, KafKa 概述1. 定义Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ-Message Queue), 主要应用于大数据实时处理领域.二, Kafka 快速上手2.1 Kafka 基础架构Kafka 常用术语(摘抄, 点击查看全文)Topic, 是kafka下消息的类别, 逻辑概念, 用来区分,隔离不同的消息数据, 屏蔽底层复杂的存储方式,对于大多数人来说, 只需要关注数据写入到了那个topic, 从哪个topic取出数据.Partition, 是Kafka下数

2021-10-31 17:23:42 927

原创 零, 消息队列的两种模式和应用场景, 以及Kafka 消息队列的特点

零, 消息队列自问自答环节:[0.什么是消息队列(MQ) ?]消息队列从实质上来说就是一个包含了消息发送接收对象, 存放消息队列的结构, 可归结为: 一发一存一消费,.综上来看, 消息队列就是: 生产者将消息投递到一个叫队列的容器中, 然后再从这个容器中取出消息, 最后转发给消费者.消息队列MQ 最常用的模式有两种, 点对点模式 和 发布/订阅模式.[1. 什么是点对点模式?]就是前面提到的最原始的消息队列,生产者把消息存储到队列中, 消费者从队列中取出消息, 如果存在多个

2021-10-29 16:54:37 343

原创 五, Flume常见组件类型的用法总结

文章目录零, 官方API一, Source(接收并处理数据)1.1 `exec` 类型的Soruce组件1.2 `netcat`类型的Source组件1.3 `spooldir`类型的Source组件1.4 `taildir`类型的Source组件1.4 `avro`类型的Source组件二, Channel2.1 `memory`类型的Channel组件2.2 `file`类型的Channel组件2.3 `kafka`类型的Channel组件三, Sink3.1 `logger`类型的sink组件3.2

2021-10-06 15:00:39 38

原创 四, 通过Ganglia实现监控Flume数据流

一, 什么是Ganglia ?Ganglia是UC Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个Web前端。主要是用来监控系统性能,如:cpu 、mem、硬盘利用率,I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。二, Ganglia 的安装和部署对分布式集群的安装前规划主机要安装的内容bigdata01web客

2021-10-04 14:43:05 32

原创 三, Flume 进阶下-- Flume自定义拦截器, 自定义Sources, 自定义Sinks

三, Flume 进阶- 自定义拦截器, 自定义Sources, 自定义Sinks3.1 自定义Intercepter拦截器我们结合实际例子了解自定义拦截器和多路复用channel选择器的结合使用.[案例需求]使用Flume 采集服务器本地日志, 我们需要根据日志类型的不同, 将不同种类的日志发往不同的分析系统. 本案例中, 我们以端口数据模拟日志(netcat 发送数据), 以单个数字和单个字母来模拟不同类型的日志.我们需要使用定义intercepter 区分数字和字母, 然后使用多路复用ch

2021-10-04 14:35:26 36

原创 二,Flume进阶上--Flume 事务和拓扑结构(串联, 复制和多路复用, 负载均衡或故障转移,聚合)

二, Flume 事务和拓扑结构2.1, Flume事务在Flume工作流程中, 主要有两大事务,分别是在数据接收端Source和数据缓冲区Channel之间的 Put事务(推送)Put事务:doPut: 将批数据写入临时缓冲区putList.doCommit: 检查channel内存队列是否足够合并.doRollback: 当channel内存队列空间不足(sink从channel拉取的数据量小于source放入channel的数据量), 会回滚数据.数据缓冲区Chan

2021-10-04 14:20:16 46

原创 一, Flume入门和典型案例实操

Flume(日志收集, 聚合, 传输的工具)一, Flume 概述1. Flume 定义[定义]Flume 是 Cloudera 提供的一个高可用(available)的, 高可靠(reliable), 分布式(distribute)的海量日志采集(collecting), 聚合(aggregating)和传输(moving)的系统.Flume 基于流式架构, 灵活简单.[Why Flume?][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LfMx27dN-

2021-08-24 16:52:25 64

原创 四, Hadoop基础架构-YARN工作流程和调度器原理

四, Hadoop基础架构-YARN一, Yarn-资源调度器Yarn(Yet Another Resource Negotiator)是一个资源调度平台, 负责为运算程序提供服务器运算资源, 相当于一个分布式的操作系统平台, 而MapReduce等运算程序则相当于运行在这个操作系统上的应用程序.1.1 Yarn 基础架构(RM, NM, AM, Contaioner)Yarn主要由 RM(resource manager), NM(node manager), AM(application

2021-08-24 16:22:17 186 1

原创 八, Hive基础函数和窗口函数全解析

八, Hive相关的函数8.1 查看内置函数查看系统内置函数(hive> show functions;)显示内置函数用法(hive> desc function xx;)详细显示内置函数用法(hive> desc extended function xx;)8.2 常用系统内置函数1. 空字段赋值(NVL(列名, default_value))[函数说明]NVL: 给某一列值为NULL的数据复制, 如果某一列的数据为NULL, 则赋值为default_value, 不

2021-08-10 11:50:09 35

原创 六七, Hive 数据查询实操, 以及Hive的分区和分桶

六, Hive 查询操作前置操作(准备数据+建表+导入数据)准备数据emp.txt 和 dept.txt建表emp和dept建立emp表, 对照字段[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JanzVMIN-1628242050249)(2021-08-04-20-38-29.png )]create table emp( empno int, ename string, job string, mgr i

2021-08-06 17:29:58 84

原创 五, Hive-数据的导入和导出

五, Hive-数据的导入和导出5.1 数据导入法1, 向表中装载数据(load)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oP6YViMW-1627981666146)(2021-08-03-14-33-12.png)][案例实操]创建表[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W8nNN6Hh-1627981666150)(2021-08-03-14-44-50.png)]加载本地文件到此表中[外链图片转存失败,源

2021-08-03 17:08:50 21

20分钟学会用IDEA_DEBUG调试JAVA, 笔记源文件和实例DEMO

20分钟学会用IDEA_DEBUG调试JAVA, 笔记源文件和实例DEMO

2021-04-10

空空如也

空空如也

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

TA关注的人 TA的粉丝

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