- 博客(41)
- 收藏
- 关注
原创 找出连续登陆用户(hive sql实现)
问题:找出最近一个月内连续登陆超过7天的用户。思路分析:连续登陆的用户具有连续性,若连续登陆:日期+日期排名 = 固定值;表和字段说明:user_number,dt; user_active_log表 假设用户登陆事件一天只有一条记录,dt 表示用户登陆日期,格式为yyyyMMddhive SQL如下:select user_numberfrom( select user_number, dt, row_number() over(partition by user_numb
2021-05-17 21:09:58 381
原创 hive动态分区
动态分区与静态分区的初略理解动态分区:分区字段可以为动态变换的值,一般是依据select中最后的一个字段静态分区:分区字段指定具体一个值,一次insert操作智能插入一个分区动态分区如何使用必备参数set hive.exec.dynamic.partition =true(默认false),表示开启动态分区功能set hive.exec.dynamic.partition.mode = nonstrict(默认strict),表示允许所有分区都是动态的,否则必须有静态分区字段使用方法
2021-05-02 01:40:36 478 1
原创 hive常见优化方式(参数+SQL)
常见参数优化设置并行执行-- 开启任务并行执行set hive.exec.parallel=true; -- 同一个sql允许并行执行stage的最大线程数set hive.exec.parallel.thread.number=8;适用场景:sql查询划分出的stage有存在不相互依赖的,典型的如union all的操作,可以开启任务并行执行map端优化-- 如果一个任务有很多小文件,则每个小文件也会被当做一个块,用一个map任务来完成,-- 在map执行前合并小文件,减少ma
2021-05-02 01:28:47 483
原创 使用flink-connector-jdbc实现flink写入clickhouse、mysql等
使用flink-connector-jdbc实现flink写入clickhouse、mysql等适用范围:flink1.11.0及之后版本,包名为flink-connector-jdbc编辑pom.xml中的<dependencies />小节添加依赖。 <dependency> <groupId>org.apache.flink</groupId> <artifactId>fli
2021-05-01 23:57:33 3053
转载 关于HTTP协议,一篇就够了
HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六
2020-08-06 15:48:02 325
转载 macOS中解压缩(unzip)出现illegal byte sequence的解决方案
macOS中解压缩(unzip)出现illegal byte sequence的解决方案在终端输入ditto -V -x -k --sequesterRsrc filename.zip destinationfilename.zip 是要解压的文件名destination 是解压文件的目标目录,可以写一个不存在的目录,会自动创建...
2020-08-05 10:15:59 857
原创 本地git ssh连接远程git仓库时报错的解决方案
1.生成ssh key在终端输入 命令 ssh-keygen -t rsa -C “xxxx” 回车后会提示你输入密码,不需要理会,一直按回车即可,直到最后提示 “The key’s randomart image is”,即生成成功 注:xxxx为注册git远程仓库时的邮箱。2.add key复制刚刚生成的key ,命令为“cat ~/.ssh/id_rsa.pub”然后粘贴到git 目录 ssh keys 下add key,这样就配置完毕了。此时使用git连接远程仓库如github或gitlab
2020-08-01 00:00:21 1673
原创 mac上安装HomeBrew
熟悉centos系统的同学肯定不会没有使用过yum 命令,使用yum命令进行下载非常方便。mac os系统是类Linux系统,其中也有类似的命令:brew,关于brew详情可参见:HomeBrew官网下面对如何安装HomeBrew进行说明。方法一/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"方法二当方法一不可用时(我在使用方法一进行安装时报的错误),可参
2020-07-13 15:45:29 159
原创 IDEA从 Windows 过度到 Mac 必备快捷键对照表
Mac 键盘符号说明⌘ == Command⇧ == Shift⇪ == Caps Lock⌥ == Option⌃ == Control↩ == Return/Enter⌫ == Delete⌦ == 向前删除键(Fn+Delete)↑ == 上箭头↓ == 下箭头← == 左箭头→ == 右箭头⇞ == Page Up(Fn+↑)⇟ == Page Down(Fn...
2019-07-30 10:23:54 238
原创 IDEA快捷键总结大全(最全)
由于之前使用的IDE为eclipse,所以对eclipse的快捷键比较熟悉,所以将IDEA的快捷键设置成了eclipse的操作形式。设置方式:导入设置的jar包即可。jar包链接:https://pan.baidu.com/s/1gudJjN3C4oBuao0831ujNQ 提取码:znzjwindows下的快捷键如下:1 执行(run) alt+r2 提示补全 (Class...
2019-07-30 10:22:23 2294
原创 完美解决编写IDEA在Local模式下maven Spark程序消除日志中INFO输出
运行spark程序时,由于使用的时spark-core下的log4j-default.properties配置文件,log4j会将INFO级别的信息全部输出到控制台要消除这些INFO信息,只需要找到log4j-default.properties文件,将其复制一份到项目的src目录下,将第一行的log4j.rootCategory=INFO, console改成log4j.rootCatego...
2019-07-24 16:23:29 1118
原创 关于自定义比较规则
在实际的业务需求中,很多时候都需要自定义排序比较规则,以下来总结下在Java,Hadoop,和Spark下等不同场景下如何自定义排序比较规则。Java两种方式:1.实现Comparable接口,实现其中得compareTo方法2.实现Comparator接口,实现其中得compare方法case1如下:public class SortBean implements Comparable...
2019-07-18 18:41:20 452
原创 MySQL组内排序
MySQL实现分组内排序 选课表:学号,课程号,开课学期,成绩需求说明:由于可能挂科,所以可能会出现同一学生在一门课程上出现多次成绩,要求显示该生同意科目的最高成绩。建表:create table course(sno int,cno int,year int,score int);插入数据;INSERT INTO course VALUES(1,1,2,56);INSER...
2019-06-27 23:05:46 1196
原创 大整数相加
记录一道手撕代码的面试题 大整数相加可以用BigInteger解决。(但是面试肯定不会让你用这个) //BigInteger类解决(可用于对后续代码结果的测试)public static void main(String[] args) { String s1 = "11567890087657890876"; String s2 = "19133324567865654123234...
2019-06-05 10:05:56 242
原创 关于volatile关键字及其可见性和非原子性的相关测试
volatile:一种轻量级的同步机制能够保证:1.内存可见性(通过强制刷新cpu中的数据) ;2.保证有序性;(通过禁止指令重排实现)不能保证:** 原子性。关于指令重排:指令重排是指在编译Java代码或者cpu执行字节码时,对字节码指令进行重新排序。volatile 如何禁止指令重排?(通过cpu指令内存屏障)1、在每个volatile写操作前插入StoreStore屏障,在写操...
2019-05-14 10:17:30 166
原创 JVM的初始化(<clinit>() 和 <init>() )
< clinit >()方法之前讨论过类加载过程的初始化。(加载–>链接–>初始化),实际上该初始化过程是指JVM的类初始化过程。由JVM生成初始化方法 < clinnt >(),执行该方法执行初始化过程。关于< clinit >()方法:1.由静态类变量显示赋值代码和静态代码块。2.执行顺序从上至下。其执行时机如之前所说(类加载发生的...
2019-05-10 19:52:57 459
原创 单例模式
单例模式是一种非常常见的设计模式, 在应用这个模式时,单例对象的类必须保证只有一个实例存在。 许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。通俗来说就是一个类只有一个实例,并且由类自行实例化。单例设计模式的核心思想:1.构造器私有化2.提供一个静态变量用于保存对象实例3.提供一个外部访问对象的方式其中对于步骤3,莫过于两种方式,静态变量公有化或者提供一个获...
2019-05-10 16:45:13 83
原创 力扣969煎饼翻转
力扣969:https://leetcode-cn.com/problems/pancake-sorting/思路:将原数组和排好序的数组按位置(从后往前)进行比较,对应位置数值不同就进行翻转。import java.util.ArrayList;import java.util.Arrays;import java.util.LinkedList;import java.util.L...
2019-05-04 21:07:20 326
原创 HBase常用API操作
package test;import java.io.IOException;import java.text.DecimalFormat;import java.util.ArrayList;import java.util.List;import javax.print.attribute.ResolutionSyntax;import org.apache.hadoop....
2019-05-02 16:08:17 5119 1
原创 大数据面经(地平线公司一面+二面)
一面,持续了近50分钟。1.自我介绍2.介绍下项目(项目过程中有打断问问题)我先介绍的第二个项目,balabala一堆,说到mapreduce,问我mapreduce的东西,1.mapreduce的流程2.怎么解决map端和reduce端的数据倾斜问题,balabala,先说了reduce段的解决策略,说到map端的时候我说map端的数据倾斜主要是数据文件输入有倾斜,可以对数据文件进行手动规...
2019-04-23 23:05:36 1705
原创 Java类加载机制之加载过程
类加载的过程加载–>链接–>初始化 其中链接过程分为验证、准备、解析三个步骤。加载过程概述1.通过全限定名获取定义此类的二进制字节流2.将静态字节码文件加载到内存中(方法区)成为运行时数据结构3.其中加载过程由类加载器执行,字节码文件加载到内存的同时也会创建一个类对象,作为访问类数据信息的接口类加载器系统自带的三种类加载器:1.启动类加载器(Bootstra...
2019-04-20 21:51:09 103
原创 阿里一面凉经
春招投了阿里口碑的大数据研发,突入其来的一面。。。。一来就直接怼项目(因为还没准备项目,答得磕磕巴巴,非常非常不好)。怼了大概二十多分钟项目(问了好多细节),问我有没有用过Spring之类的框架,我说Java EE不怎么会,就没问了,开始问Java基础,问了几道题又来怼我项目。。。最后问了我一道数据相关的题。整理如下:1.自我介绍2.项目3.介绍下HashMap的数据结构4.想用线程安...
2019-04-18 21:43:47 276
原创 类加载的时机(初始化的时机)
package com.nefu.testJVM;import java.lang.reflect.Field;import java.lang.reflect.Method;import org.junit.Test;public class TestClassLoader extends Father{ static { System.out.println("我是Cl...
2019-04-17 09:28:00 230
原创 Redis学习(一)-----redis的安装
Linux下安装redis1.下载redis安装包2.解压 tar -zxvf3.检查gcc是否安装,gcc -v安装gcc yum -y install gcc-c++(没网情况下找到相关rpm依赖包)4.进入redis解压路径,运行make命令,执行完毕再运行make install5.进入 /usr/local/bin路径 ,运行redis-server启动redis服务此时r...
2019-04-15 21:31:04 157
转载 事务的四种隔离级别
Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。但是老板及时发现了不对,马上回滚差点就提交了的事务,将数字改...
2019-04-09 08:45:42 258 1
原创 MySQL分区表
1.什么是分区表分区表顾名思意就是将一张表拆分成多个区块。一个分区表在底层由多个物理子表组成,但逻辑上任然是一张表。分区表通过某种规则将表拆分成多个区块。使用分区表需要注意以下几点:1)一个表最多只能有1024个分区2) MySQL5.1中,分区表达式必须是整数,或者返回整数的表达式。在MySQL5.5中提供了非整数表达式分区的支持。3)如果分区字段中有主键或者唯一索引的列,那么多有主键...
2019-04-09 00:55:49 127
转载 MySQL存储过程
</div><!--end: blogTitle 博客的标题和副标题 --><div id="navigator">博客园首页新随笔联系订阅管理 <div id="blog_stats">随笔 - 220 文章 - 8 评论 - 258 <...
2019-04-07 20:04:56 82
转载 机器学习入门(易懂)
Little_Rookie</div><!--end: blogTitle 博客的标题和副标题 --><div id="navigator">博客园首页新随笔管理 <div class="blogStats"> </div><!--end: blogStats -->...
2019-04-06 21:07:08 2456
原创 MySQL查询结果添加值固定列和自增列
测试数据准备:create table student(stu_id int primary key,stu_name varchar(20),chinese_score int,math_score int);insert into student values(1,'Tom',90,80);insert into student values(2,'Mike',70,90);...
2019-04-06 12:43:31 3735
原创 MySQL表查询数据插入到另一表
1、复制表结构以及数据CREATE TABLE 新表 ASSELECT * FROM 旧表2、只复制表结构 a. CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2 说明:实际是让查出的数据为空。 b. CREATE TABLE 新表 LIKE 旧表3、复制旧表数据到新表(两表结...
2019-04-06 12:10:12 2035
原创 MySQL行转列与列转行
列转行数据准备:create table student(stu_id int primary key,stu_name varchar(20),chinese_score int,math_score int);insert into student values(1,'Tom',90,80);insert into student values(2,'Mike',70,90)...
2019-04-06 11:54:30 727
原创 Hive行转列与列转行
1.hive中的行转列行转列便是将数据进行合并现有如下需求:将下表中job和country都相同的任务进行合并。namejobcountry赵云武将蜀郭嘉谋士魏庞统谋士蜀诸葛亮谋士蜀张飞武将蜀使用hive自带的UDAF函数 concat_ws和collect_setSelect t1.base,concat_ws(...
2019-04-06 10:26:54 144
原创 Hive中表的形式
外部表与管理表Create [EXTERNAL] table tablename(…)…EXTERNAL关键字修饰的即表示为外部表,默认为管理表。管理表与外部表的区别:管理表使用drop删除表时会将数据删除,外部表不会删除数据,只会删除表结构。管理表使用truncate删除数据时有效,外部表无效。分区表分区表的作用:海量数据下避免全表扫描分区实际上就是分文件夹,将分在...
2019-04-06 09:58:01 218
原创 HQL语句总结
DDL语句一. 数据库的DDL语句创建数据库Create database dbname [IF NOT EXISTS] [LOCATION] filepath;说明:IF NOT EXISTS 表示不存在时创建,LOCATION filepath表示创建时指定HDFS存储位置修改数据库信息Alter database dbname set dbproperites(name=val...
2019-04-06 09:47:55 281
原创 Hive相关属性以及参数配置
Hive基本运行配置Hive安装解压安装即可说明:Hive实际上可理解为一个MapReduce的客户端,只需在一个节点上安装即可Hive运行环境配置只需配置hive-env.sh(初始文件为hive-env.sh.template)在文件中指定HADOOP_HOME以及HIVE_CONF_DIR(Hadoop的安装路径以及Hive配置文件夹)3)Hive中元数据存储数据库配置说明:...
2019-03-31 11:29:12 752
转载 HiveSQL解析原理:包括SQL转化为MapReduce过程及MapReduce如何实现基本SQL操作
Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用。美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析。Hive的稳定性和性能对我们的数据分析非常关键。在几次升级Hive的过程中,我们遇到了一些大大小小的问题。通过向社区的 咨询和自己的努力,在解决这些问题的同时我们对Hive将SQL编译为MapReduce的过程有了比...
2019-03-31 09:43:40 3070 2
原创 有效的括号(Java实现)
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。(详情请见leetcode:https://leetcode-cn.com/problems/valid-parentheses/)方法一:用一个栈存放字符,当(’,’...
2019-03-12 22:35:25 1212
原创 分隔链表(Java语言实现)
给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。(详情参见https://leetcode-cn.com/problems/partition-list/)ADT:public class ListNode { int val; ListNode next; ListNo...
2019-03-11 23:22:56 465
原创 删除单链表中的倒数第n个节点(Java实现)
LeetCode题目链接(https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/submissions/)ADT: public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } ...
2019-03-10 15:50:35 974
原创 判断单链表是否有环(Java实现)
给定一个链表,判断链表中是否有环的几种方法今天刷LeetCode刷到一道这样的题,详情参见(https://leetcode-cn.com/problems/linked-list-cycle/)ADT: class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = n...
2019-03-09 22:53:26 10262
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人