
2021.11月归档(20211101-20211128)
文章平均质量分 79
第一周_20211101-20211107,
第二周_20211108-202111014,
第三周_20211115-20211121,
第四周_20211122-20211128,
菜菜的大数据开发之路
Java技术栈 AND 大数据开发,学习笔记, 拒绝水文
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
10. <tag-数组和双指针(左右指针)>-lt.344-反转字符串 + lt.16-最接近的三数之和 + lt.349-两个数组的交集 2
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 · 293 阅读 · 0 评论 -
三-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 · 3732 阅读 · 0 评论 -
三-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 · 1552 阅读 · 1 评论 -
tag数组-刷题预备知识-5. 数组中的滑动窗口 1.5
一, 概述简而言之,滑动窗口算法在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。其实这里就可以看出来滑动窗口主要应用在数组和字符串上, 当你遇到让求子串,子数组的问题时就要考虑一下使用双指针滑动窗口了.二, 原理之后重复上述过程,先移动 right,再移动 left…… 直到 right 指针到达字符串 S 的末端,算法结束。如果你能够理解上述过程,恭喜,你已经完全掌握了滑动窗口算法思想。至于如何具体到问题,如何原创 2021-11-23 15:01:53 · 579 阅读 · 0 评论 -
三-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 · 500 阅读 · 0 评论 -
9. <tag-数组模拟矩阵>-lt.498-对角线遍历 + lt.1424-对角线遍历 II 1.2
lt.498-对角线遍历[案例需求][思路分析]详细题解[代码实现]class Solution { public int[] findDiagonalOrder(int[][] mat) { // 每个矩阵对角线遍历次数为 count = m + n - 1;] //在这些遍历中, 先向上遍历, 再向下遍历; //注意, 每次遍历到边缘部位, 如果要回到下一个方向遍历的第一个元素, 还要对行数,和列数做出处理原创 2021-11-20 15:44:30 · 324 阅读 · 2 评论 -
8. <tag-数组和二分查找_1>-lt.704-二分查找 + lt.33-搜索旋转排序数组 +lt.34-在排序数组中查找元素的第一个和最后一个位置 + lt.35-搜索插入位置 2.3
lt.704 二分查找[案例需求][思路分析]二分法典型例题, 有什么好说的, 我秒了[代码实现]原创 2021-11-19 18:18:30 · 410 阅读 · 0 评论 -
二, 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 · 1376 阅读 · 0 评论 -
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 · 611 阅读 · 0 评论 -
7. <tag-数组和哈希表>-lt.73-矩阵置零 + lt.1464-数组中两元素的最大乘积 + lt.169-多数元素 2.1(摩尔投票法) 2
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 · 749 阅读 · 1 评论 -
一, 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 · 2266 阅读 · 0 评论 -
5. <tag-数组模拟矩阵>-lt.48- 旋转图像(全部解法) + lt.59-螺旋矩阵 II 1.5
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 · 777 阅读 · 0 评论 -
6. <tag-数组和双指针(快慢针)>-lt.26- 删除有序数组中的重复项+lt.283-移动零 2.7 + 面试扩展 3 dbc
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 · 1190 阅读 · 2 评论 -
3. <tag-数组和双指针(左右指针)>-leetcode.15-三数之和 + leetcode.167-两数之和 II 2
1. LeetCode 15. 三数之和 (Medium)[案例需求][思路分析]这道题可以看做是两数之和的更进一步, 所以根据两数之和的高级解法, 我们可以对三数之和使用hashMap法, 或者使用双指针中的左右指针法, 显然这道题, 包括前面的两数之和, 使用左右双指针都是比较容易理解的;本题目中未声明数组有序, 所以实现还需要对数组进行排序, 同时最最最重要的一点就是对数组中重复数字的处理, 在开始遍历第一个加数之前, 我们需要对第一个加数进行去重, 在遍历第一个加数之后, 我们还需要对第原创 2021-11-10 16:14:00 · 4415 阅读 · 1 评论 -
4. <tag-数组模拟矩阵>-lt.867 转置矩阵 + lt.54-螺旋矩阵 + lt.74-搜索二维矩阵(重要) + 剑指Offer.29-顺时针打印矩阵 0.7
数组和矩阵结合的问题lt.54 螺旋矩阵[案例需求][思路分析]数组和矩阵一起结合考察(用数组模拟矩阵), 偏数学思想, 机器学习领域考察那是相当的多, 管咱屁事哈哈, 既然遇到了, 就把考察频度高的几道题甩出来螺旋矩阵,即顺时针读取矩阵, 记录到结果集合中并返回,我们最常用的解法就是, 记录矩阵的四个角, 不断的缩小角之间的范围, 直到目标数组中只剩下单纯的一列或一行数据, 甚至就剩一个数字, 同时也要记得把每次遍历的两个角之间的数, 添加到用于返回的集合中;看上图最下面的提示,原创 2021-11-12 17:52:14 · 1326 阅读 · 1 评论 -
tag数组-刷题预备知识-3.数组中的 双指针 ,快慢指针,滑动窗口 (待补充,扩展)
一, 概述双指针主要是用于遍历数组, 两个指针指向不同的元素,从而协同完成任务.当然, 我们也可以延伸到多个数组的多个指针[用法和应用场景]一, 左右指针(相向双指针)[定义]1.1 lt1. 两数之和1.2 lt167. 两数之和IIlt 二分查找法删除有序数组中的重复项 ||lt 283 移动零lt 633. 平方数之和剑指Offer. 奇偶数排序二, 快慢指针(同向双指针)1.3 lt26. 删除有序数组中的重复项三, 滑动窗口(同向双指针)详细文章原创 2021-11-09 15:20:44 · 448 阅读 · 0 评论 -
AbandonFile, 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 · 2562 阅读 · 0 评论 -
二-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 · 601 阅读 · 0 评论 -
tag数组-刷题预备知识-2. Java中数组和集合的各种排序方法 2.8
Collections.sort(集合工具类, 适合于自然排序)自然排序法, 实现Comparable接口, 实现其中的comapreTo(Obj obj)方法比较器, 实例化Comparator类, 重写其中的compre(Obajec obj1, Object obj2)参考资料:2.2 节, 集合排序的两种方法ArrayList集合排序方式总结List集合排序 sort方法...原创 2021-11-07 11:47:34 · 425 阅读 · 2 评论 -
tag数组-刷题预备知识-1. 集合和数组之间的转换(重要) 2.8
我们在手撕力扣的时候, 经常能遇到这样类型的题目: 要求你返回一个长度未知的数组或是需要暂时存储一个长度不定的数, 这个时候, 可能大多数想到的就是前期先把需要的数组或者字符串放到集合中, 根据题目需要选择是ArrayList亦或是k-v对的HashMap, 在返回的时候, 把集合转换为数组返回即可那么, 在遇到上述这种问题时, 我们就不可避免的要用到数组<---->集合之间的相互转换.一, 集合转为数组 (集合对象.toArray() / 集合对象.toArray( T[] a)).原创 2021-11-06 12:10:21 · 415 阅读 · 1 评论