hunter95671
码龄5年
关注
提问 私信
  • 博客:61,906
    社区:2
    61,908
    总访问量
  • 51
    原创
  • 1,484,075
    排名
  • 12
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2020-05-22
博客简介:

hunter95671的博客

查看详细资料
个人成就
  • 获得25次点赞
  • 内容获得4次评论
  • 获得165次收藏
创作历程
  • 8篇
    2022年
  • 43篇
    2021年
成就勋章
TA的专栏
  • hive
    9篇
  • hadoop
    2篇
  • kafka
    2篇
  • hbase
    1篇
  • 算法
    18篇
  • zookeeper
    1篇
  • spark
    11篇
  • scala
    10篇
  • flume
    1篇
兴趣领域 设置
  • 大数据
    hadoophivespark
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

不分组求top N

使用子查询和 LIMIT 子句SELECT(SELECT DISTINCTSalaryFROMEmployeeORDER BY Salary DESCLIMIT 1 OFFSET 1) AS SecondHighestSalary;使用 IFNULL 和 LIMIT 子句SELECT IFNULL( (SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMI
原创
发布博客 2022.03.02 ·
222 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive行转列函数与列转行函数

行转列concat(string,string……):字符串连接concat_ws(参数1,string,string……):参数1是分隔符,按分隔符分隔连接字符串collect_set(字段名):将字段的值去重,产生array类型字段列转行Explode(字段名):将某列中的array或map拆分成多行Split(字段名,分隔符):根据分隔符来切分某字段元素Lateral view:写在split,explode等UDTF前,将一列数据拆成多行,再聚合...
原创
发布博客 2022.02.24 ·
963 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Hive中常用的系统函数

常用日期函数unix_timestamp:返回当前或指定时间的时间戳 select unix_timestamp();select unix_timestamp(“2020-10-28”,‘yyyy-MM-dd’);from_unixtime:将时间戳转为日期格式select from_unixtime(1603843200);current_date:当前日期select current_date;current_timestamp:当前的日期加时间select current_time
原创
发布博客 2022.02.16 ·
245 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive的数据文件存储格式

1、TEXTFILEHive数据表的默认格式,存储方式:行存储。可以使用Gzip压缩算法,但压缩后的文件不支持split在反序列化过程中,必须逐个字符判断是不是分隔符和行结束符,因此反序列化开销会比SequenceFile高几十倍。2、SEQUENCEFILE压缩数据文件可以节省磁盘空间,但Hadoop中有些原生压缩文件的缺点之一就是不支持分割。支持分割的文件可以并行的有多个mapper程序处理大数据文件,大多数文件不支持可分割是因为这些文件只能从头开始读。Sequence File是可分割的文件
原创
发布博客 2022.02.09 ·
3131 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

YARN 的任务提交流程

当JobClient向YARN提交一个应用程序后,YARN将分两个阶段运行这个应用程序:一是启动ApplicationMaster;第二个阶段是由ApplicationMaster创建应用程序,为它申请资源,监控运行直到结束。具体步骤如下:1、用户向YARN提交一个应用程序,并指定ApplicationMaster程序、启动ApplicationMaster的命令、用户程序。2、 RM为这个应用程序分配第一个Container,并与之对应的NM通讯,要求它在这个Container中启动应用程序Appl
原创
发布博客 2022.02.02 ·
2727 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

java不重复随机数组生成

ArrayList<Integer> numList = new ArrayList<>(); Random random = new Random (); int i=0; while (i<lists.size()) { int randInt = random.nextInt(lists.size()); if (numList.contains(randInt))...
原创
发布博客 2022.01.26 ·
213 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

维度建模步骤

维度建模一般按照以下四个步骤:选择业务过程→声明粒度→确认维度→确认事实(1)选择业务过程在业务系统中,挑选我们感兴趣的业务线,比如下单业务,支付业务,退款业务,物流业务,一条业务线对应一张事实表。(2)声明粒度数据粒度指数据仓库的数据中保存数据的细化程度或综合程度的级别。声明粒度意味着精确定义事实表中的一行数据表示什么,应该尽可能选择最小粒度,以此来应各种各样的需求。典型的粒度声明如下:订单事实表中一行数据表示的是一个订单中的一个商品项。支付事实表中一行数据表示的是一个支付记录。(3)
原创
发布博客 2022.01.19 ·
11087 阅读 ·
11 点赞 ·
0 评论 ·
65 收藏

Zookeeper在Kafka中的作用

Kafka使用zk的分布式协调服务,将生产者,消费者,消息储存(broker,用于存储信息,消息读写等)结合在一起。同时借助zk,kafka能够将生产者,消费者和broker在内的所有组件在无状态的条件下建立起生产者和消费者的订阅关系,实现生产者的负载均衡。1.broker在zk中注册kafka的每个broker(相当于一个节点,相当于一个机器)在启动时,都会在zk中注册,告诉zk其brokerid,在整个的集群中,broker.id/brokers/ids,当节点失效时,zk就会删除该节点,就很方便的
原创
发布博客 2022.01.05 ·
499 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Kafka消费者分区分配策略

Range范围分区是Kafka中默认的分区分配策略,Kafka提供了消费者客户端参数partition.assignment.strategy用来设置消费者与订阅主题之间的分区分配策略。默认情况下,此参数的值为:org.apache.kafka.clients.consumer.RangeAssignor,即采用RangeAssignor分配策略。除此之外,Kafka中还提供了分配策略:RoundRobin轮询分区一、Range 范围分区假如有10个分区,3个消费者,把分区按照序号排列0,1,2,3,4
原创
发布博客 2021.12.15 ·
2772 阅读 ·
0 点赞 ·
0 评论 ·
4 收藏

Hbase的RowKey设计

1.Rowkey的唯一原则Rowkey必须在设计上保证其唯一性。由于在HBase中数据存储是Key-Value形式,若HBase中同一表插入相同Rowkey,则原先的数据会被覆盖掉(如果表的version设置为1的话),所以务必保证Rowkey的唯一性2. Rowkey的排序原则HBase的Rowkey是按照ASCII有序设计的,我们在设计Rowkey时要充分利用这点。比如视频网站上对视频的弹幕信息,这个弹幕是按照时间倒排序展示视频里,这个时候我们设计的Rowkey要和时间顺序相关。可以使用”Long
原创
发布博客 2021.12.08 ·
579 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive的架构原理及组成

一、Hive架构图二、架构组成(1)、用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc 访问 hive)、WEBUI(浏览器访问 hive)(2)、元数据:Metastore元数据包括:表名、表所属的数据库(默认是 default)、表的拥有者、列/分区字段、 表的类型(是否是外部表)、表的数据所在目录等;默认存储在自带的 derby 数据库中,推荐使用 MySQL 存储 Metastore(3)、Hadoop使用 HDFS 进行存
原创
发布博客 2021.12.01 ·
7422 阅读 ·
2 点赞 ·
0 评论 ·
18 收藏

OLAP、OLTP的介绍和比较

一、OLTP与OLAP数据处理大致可以分成两大类:联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。二、OLTP与OLAP之间的比较联机事务处理(OLTP,On-line Transaction Proce
原创
发布博客 2021.11.24 ·
1613 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

从上到下打印二叉树(三)

题目描述:请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[20,9],[15,7]]算法流程:1.特例处理: 当树的根节点为空,则直接返回空列表 [] ;2.初始化: 打印结果空列表 res3.BFS 循环: 当 deque 为空时跳出;
原创
发布博客 2021.11.21 ·
757 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

从上到下打印二叉树(二)

题目描述从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]算法流程:1.特例处理: 当根节点为空,则返回空列表 [] ;2.初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root] ;3.BFS 循环: 当队列 queue 为空时跳出;1.新建一个临时列表
原创
发布博客 2021.11.18 ·
129 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

从上到下打印二叉树(一)

题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。算法流程:题目要求的二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS)。BFS 通常借助 队列 的先入先出特性来实现。1.特例处理: 当树的根节点为空,则直接返回空列表 [] ;2.初始化: 打印结果列表 res = [] ,包含根节点的队列 queue = [root] ;3.BFS 循环: 当队列 queue 为空时跳出;1.出队: 队首元素出队,记为 node;2.打印: 将 no
原创
发布博客 2021.11.13 ·
157 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive中的with as使用

一、介绍在我们写一些结构比较复杂的SQL语句时,可能某个子查询在多个地方有重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQLwith as 也叫做子查询部分,首先定义一个sql片段,该sql片段会被整个sql语句所用到,让sql语句的可读性更高些,作为提供数据的部分,也常用在union等操作中。with as就类似于一个视图或临时表,可以用来存储一部分的sql语句作为别名,不同的是with as 属于一次性的,而且必须要和其他sql一起使用才可以!
原创
发布博客 2021.11.10 ·
2601 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

算法题-环形链表

题目描述:给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。算法流程:我们定义两个指针,一快一满。慢指针每次只移动一步,而快指针每次移动两步。初始时,慢指针在位置
原创
发布博客 2021.11.07 ·
102 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive中的SMB(Sort-Merge-Buket) Join

SMB join (针对bucket mapjoin 的一种优化)条件1)set hive.auto.convert.sortmerge.join=true;set hive.optimize.bucketmapjoin = true;set hive.optimize.bucketmapjoin.sortedmerge = true;set hive.auto.convert.sortmerge.join.noconditionaltask=true;2) 小表的bucket数=大表bucke
原创
发布博客 2021.11.03 ·
2103 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

两个链表的第一个公共节点

题目描述:输入两个链表,找出它们的第一个公共节点。算法流程:构建两个节点指针 A​ , B 分别指向两链表头节点 headA , headB ,做如下操作:指针 A 先遍历完链表 headA ,再开始遍历链表 headB ,当走到 node 时,共走步数为:a+(b−c)指针 B 先遍历完链表 headB ,再开始遍历链表 headA ,当走到 node 时,共走步数为:b+(a−c)如下式所示,此时指针 A , B 重合,并有两种情况:a+(b−c)=b+(a−c)若两链表 有 公共尾
原创
发布博客 2021.10.28 ·
95 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Hive和数据库比较

Hive 和数据库除了拥有类似的查询语言,再无类似之处。1)数据存储位置Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。2)数据更新Hive 中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的,3)执行延迟Hive 执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive 的并行计算显然能体现出优势。4)数据规模Hive 支持很大规模的数据计算;数据库可以支持的数据规模较小。...
原创
发布博客 2021.10.27 ·
176 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多