自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 &lt...

2019-04-07 20:04:56 82

转载 机器学习入门(易懂)

Little_Rookie</div><!--end: blogTitle 博客的标题和副标题 --><div id="navigator">博客园首页新随笔管理 <div class="blogStats"> </div><!--end: blogStats --&gt...

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关注的人

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