自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 flink cannot resolve reference xxxxx with such signature

问题原因: 当前scala 2.11.8版本不支持该算子用法解决办法: 将scala版本升级为2.12.3版本。现象:在flink代码开发中,map算子的编译报错了,报错信息为cannot resolve reference map with such signature. 由于代码是从sgg拷贝过来的,所以确认代码逻辑本身没有问题,那么就需要检查下运行环境的问题。flink编译出错。排查问题:pom文件中。使用的scala是2.12版本,接着看idea file --> project s

2021-11-09 12:17:23 1452 1

原创 flink本地执行报AskTimeoutException异常

windows本地flink测试代码报错,信息为 akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka://flink/user/dispatcher#931521解决方案:将项目中jdk版本升级为jdk1.8.0_191。具体步骤:查看当前实际执行的jdk版本查看当前idea实际执行的的jdk2. 修改idea的sdk版本file -> setting -> Project Settings -> p

2021-11-06 23:20:59 2502

原创 JAVA基础(七)--封装

封装的概念/* * 封装概述:是指隐藏对象的属性和实现细节,仅仅对外提供公共访问的方式. * 通过private关键字隐藏变量和方法,通过set方法让外界能够赋值,通过get方法让外界能够获取值 * 封装好处: * 隐藏实现细节,提供公共访问方式 * 提高代码的复用性 * 提高了安全性 * 封装原则: * 不需要对外提供的内容都隐藏起来 * 把属性隐藏...

2019-11-05 23:56:53 391

原创 JAVA基础(六)--面向对象定义

面向过程:根据需求,一步一步按照过程去实现每一个功能,就是面向过程。强调的是每一个功能步骤面向对象:把不同的功能按照不同的封装方法,功能类似的封装在一起。所以面向对象是基于面向过程的编程思想。强调的是对象面向对象的特征:继承、封装、多态类:是一组相关的属性和行为的集合,是一个抽象概念(学生)对象:是该类事务的具体表现形式,具体存在的个体(班长)面向对象实例对象类:/* * 成员变量...

2019-11-04 23:45:34 123

原创 java参数传递

java中的参数传递问题:1,基本数据类型:形式参数的改变对实际参数没有任何影响,因为形式参数传递的是具体的值。方法中的常量变量都是存放在栈内存中2,引用数据类型:形式参数的改变直接影响实际参数,因为形式参数传递的是堆内存中的地址值。new出来的对象都是存放在堆内存中...

2019-11-04 22:58:08 127

原创 数仓分层

数仓在不同业务中中有不同的分层方式,针对日志型数仓,一般会有以下几层:ODS贴源层:这是外部数据入库的缓冲层,所有数据都是按照入库时间进行增量存储,一般这层只会存储最近7天或者最近一个月的数据DWD明细层:这是按照入库时间进行分区的全量数据,每天从ODS层数据进行同步更新。这是数仓离线计算的数据基础,也是明细数据查询基础EDW增量层:这是按照业务发生时间进行分区的增量数据,按照业务的要求,会...

2019-11-04 22:04:01 1035

原创 JAVA基础(五)--数组

1.堆内存和栈内存的区别2.数组的内存图解3.两个栈内存操作同一个堆内存,无论是哪个站内存的操作都会改变堆内存的数据4.数组的基本操作/* * 数组 * */public class ShuzuDemo1 { public static void main(String[] args) { int[] arr = {11,22,33,44,55} ; printA...

2019-11-03 23:52:19 124

原创 JAVA基础(四)--方法

/* * 其他语言(python scala)中的函数在java中叫做方法,所以,java中函数就是方法,方法就是函数 * * java中方法的定义格式 : * 关键字 修饰符 返回值类型 函数名(参数类型 参数1,参数类型 参数2 ,...) * 方法体 * return 返回值 * 详细解释 : * 关键字 : public/private... * 修饰符:s...

2019-11-03 17:34:29 93

原创 JAVA基础(三)--循环

for循环语句格式:for(初始化条件;判断条件;控制条件){循环语句;}for循环执行流程A:执行初始化语句B:执行判断条件语句(true就往下执行循环语句,false就跳出循环)C:执行循环语句D:执行控制条件语句E:回到B接着执行// 循环打印HelloWorldClass ForDemo { public static viod mian (String[] arg...

2019-11-03 16:17:43 79

原创 JAVA基础(二)--基本概念

1.关键字 : 全部小写 public static void class interface2.标识符 : 给类 方法 接口 起的名字组成规则 : 英文大小写字母 数字 _和$注意事项 :不能数字开头 不能是java中关键字 区分大小写标识符命名规则:见名知意包:其实就是文件夹 全部小写单级 :day0624多级 : cn.spark 类或者接口 : 一个单词 :单词首...

2019-11-03 16:17:32 65

原创 JAVA基础(一)--DOS、JDK

1.打开DOS控制台 shift+右键 表示在此处打开DOSwindows+r 输入cmd2.常见DOS命令:d: 盘符切换切换到D盘dir(directory) : 展示D盘下面所有的文件和文件夹md(make dir) : 创建文件夹rd(remove dir) : 删除文件夹(只能删除空文件夹)rd \s : 删除非空文件夹del(delete) : 删除文件 del...

2019-11-03 16:17:01 153

原创 hive行列转换

hive行专列:将一行数据中的多个字段连接起来形成一列(array),所以行转列的关键是concat()函数concat(col1,col2,…) 将多个String类型的字符串连接起来concat_ws(‘分隔符’,col1,col2…) 特殊类型的concat,以指定分隔符的方式将多个字符串连接起来collect_set(col) :col只能是基本苏剧类型,它将字段进行去重汇总操作,...

2019-10-16 00:22:26 432

原创 hive压缩及存储总结

压缩:各种压缩性能比较目前,在数仓项目中hive表一般使用snappy格式压缩数据较多。压缩和解压缩速度都比较快。文件存储格式:目前hive的存储格式主要有4中;TEXTFILE SEQUENCEFILE ORCFILE 和PARQUET 4中存储格式。在数仓中,hive表一般使用的是ORCFILE。如果数仓中设置的有缓冲层,缓冲层一般会使用TEXTFILE,因为TEXTFILE格式的...

2019-10-15 23:35:58 401

转载 hive存储格式

一 列式存储和行式存储首先我们看一下一张表的存储格式1.1 行式存储1.2 列式存储1.3列式存储和行式存储的比较行式存储优点:#相关的数据是保存在一起,比较符合面向对象的思维,因为一行数据就是一条记录#这种存储格式比较方便进行INSERT/UPDATE操作缺点:#如果查询只涉及某几个列,它会把整行数据都读取出来,不能跳过不必要的列读取。当然数据比较少,一般...

2019-10-15 22:58:36 120

原创 数仓脚本参数设置

在实际项目中,数仓的脚本基本上都是有分区字段的。在很多日志项目中,按照时间字段(天)分区比较常见。所以在脚本开发的过程中就会涉及到一些参数的设置,动态分区参数和合并小文件参数设置也是用的最多的。动态分区参数设置set hive.exec.dynamic.partition = true # 是否打开动态分区,默认falseset hive.exec.dynamic.partition.mod...

2019-10-11 23:05:20 293

转载 hive动态分区的方式插入数据

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-10-11 20:13:58 1058

原创 hive面试--hive与常见数据库区别以及hive的数据类型

一、hive与常见数据库的区别hive是数据仓库的基础工具,能够将结构化的数据映射为一张张表从而进行sql操作。数据存储位置hive是建立在hadoop的基础之上的,所有hive的数据都是存储在hdfs上;而数据库则可以将数据保存在块设备或者本地文件系统中数据更新由于hive是针对数据仓库进行设计的,而数据仓库主要是进行数据分析,即读多写少,所以hive中是不建议对数据进行改写,...

2019-10-08 23:53:30 1504

转载 hive面试--hive底层如何存储Null值

1. NULL(null)值创建一个临时表tmp_null_empty_test,并插入一些NULL数据:CREATE TABLE IF NOT EXISTS tmp_null_empty_test( uid string)ROW FORMAT DELIMITEDFIELDS TERMINATED BY ...

2019-10-08 23:03:51 1463 1

原创 spark源码(七)--task执行流程

在执行完task分配算法之后,每个task就分配到对应的executor上了,下一步就是executor启动task。找到executor路径core\src\main\scala\org\apache\spark\executor\Executor.scala 看下launchTask()方法def launchTask(context: ExecutorBackend, taskDescr...

2019-07-31 00:08:25 259

原创 spark数据本地性

在spark源码(六)–task提交算法的最后,我们提到过决定task运行位置的两个因素:1.task的最佳位置即数据所在位置;2.task的本地化级别。task的本地化级别有5种:PROCESS_LOCAL 进程本地化 相当于数据(partition)和task在同一个executor中NODE_LOCAL 节点本地化 数据和task在一个worker节点上NO_PREF 没有本地化级别...

2019-07-30 22:45:50 241

翻译 Spark调度系统--Job Scheduling

1.spark调度系统spark的调度框架分为双层。第一层是对application进行资源调度,也就是多个application在集群中运行时怎么给每个application分配资源。这块源码对应之前的spark源码(四)–master资源调度。主要对应的是application包括driver、executor的调度。第二层调度是指每个spark application都会对应若干个job,...

2019-07-30 00:01:45 278

原创 大数据常看的博客

经常看看别人怎么学习,怎么总结,取长补短。chbxw–大数据每个组件都有涉及凯新云技术社区–大数据过往记忆lxw的大数据田地大葱拌豆腐SunnyRivers段智华的博客–spark源码wyqwilliam的博客–道法–自然qq_37050372的博客–大数据入门...

2019-07-29 19:26:09 154

原创 VERTIA常用命令

新建测试表 :CREATE TABLE PUBLIC.STUDENTS(ID INT NOT NULL ,NAME VARCHAR(20) ,AGE INT ,GRADE INT ,COURSE VARCHAR(20) ,SCORE NUMERIC(18,1) ,CREDIT NUMERIC(18,2));常用命令 :查看表结构 \d P...

2019-07-24 17:54:45 1826

原创 spark源码(六)--task提交算法

在完成stage划分之后,spark会以taskSet的方式从前往后提交task。我们来看下DAGScheduler中的submitMissingTasks()方法/*stage是从后往前划分,task是从前往后执行*/ private def submitMissingTasks(stage: Stage, jobId: Int) { val partitionsToCompu...

2019-07-18 20:23:03 240

原创 spark源码(五)--job触发流程以及stage划分算法

master在完成资源分配后,运行一个application的条件就成熟了,下面需要解析的就是如何运行一个app。我们之前提到过,在初始化sparkContext中会初始化一个taskScheduler和DAGScheduler,taskScheduler的主要任务是创建task调度池实现task级别的任务调度和联系master进行app注册;DAGScheduler则是面向stage的高层次的调...

2019-07-14 22:58:54 407

原创 spark源码(四)--master资源调度

master在处理完worker、application、driver的注册请求之后,就开始对组件 资源进行调度完成spark任务。我们再确认一遍这个过程:首先集群启动之后,Worker会向Master注册,同时携带身份标识和资源情况(如ID,host,port,cpu核数,内存大小),那么这些资源交由Master纳管后,Master会按照一定的资源调度策略分配给Driver和Applicati...

2019-07-12 17:57:33 251

原创 spark源码(三)--worker、application、driver在master上的注册

在确定好master的主备之后,master就要开始处理application、worker以及driver的注册问题了。这同样是在master的receive()方法中完成的。首先,来看看worker的注册 case RegisterWorker( id, workerHost, workerPort, workerRef, cores, memory, workerWeb...

2019-07-11 19:14:58 252

原创 spark源码(二)--master持久化引擎以及主备切换

在sparkContext初始化的时候,bankend向mster发送了一个appDesc进行application的注册。master在处理注册信息之前,首先要确认两件事情,1.master用什么引擎进行持久化?2.master如果宕机了该怎么办? 我们根据源码一一来看。找到maste所在路径 core\src\main\scala\org\apache\spark\deploy\master...

2019-07-09 00:11:18 200

原创 spark源码(一)--sparkContext的初始化

在研究spark的源码的时候,个人认为最容易理解的方式就是按照一个程序在spark框架中的执行流程,一步一步的探索源码。那么,我们就要弄清楚,一个程序究竟是怎么执行的。针对一个spark application:1.在自己本地的机器上编写spark代码2.将代码打成jar包,通过spark-sunbmit方式提交到spark集群上去执行3.spark-submit会通过反射创建一个dri...

2019-07-05 18:01:18 498

原创 SQL行列转换

1.SQL行转列建表:create table public.row_change_column(name varchar(100),course varchar(100),score int) ;插入数据 :insert into public.row_change_columnselect ‘zhangsan’,‘语文’,82union select ‘zhangsan’,‘...

2019-07-04 16:25:53 113

原创 vertica分析函数lag/lead--获取当前数据的前/后几条数据

案例:每日人流量信息被记录在这三列信息中:序号 (id)、日期 (visit_date)、 人流量 (people)。 查找至少连续三行记录中的人流量不少于100的日期和相应人流量建表:create table public.stadium(id int,visit_date varchar(100),people int);插入数据:insert into public.stad...

2019-07-03 17:48:57 2302

原创 spark中对key进行操作的算子

groupByKey([numTasks]) : 在一个PairRDD或(k,v)RDD上调用,返回一个(k,Iterable)。主要作用是将key相同的值分组到一个集合序列当中,其中顺序不确定。由于groupByKey会把所有的键值对都加载到内存中进行计算,并且不会进行map端聚合,在正式生产环境中,如果一个键值对对应的数据过多,可能会造成内存溢出。val arr = Array((1,1)...

2019-07-02 17:58:12 569

原创 map、mapPartitins、mapPartitionsWithIndex的区别

官网定义:map(func) :返回一个新的 distributed dataset(分布式数据集),它由每个 source(数据源)中的元素应用一个函数 func 来生成。mapPartitions(func) :与 map 类似,但是单独的运行在每个 RDD 的 partition(分区,block)上,所以在一个类型为 T 的 RDD 上运行时 func 必须是 Iterator =&g...

2019-07-01 17:34:52 524

原创 spark算子map和flatMap的区别

首先,看一下map和flatMap在结果上的差异原始数据都是一个1-5的数组,然后用to方法对里面的每个元素再形成一个数组map算子得到的结果是一个大的数组,里面包含了5个小数组,分别是原数组中每个元素对应形成的数组flatMap算子只得到了一个数组,里面装的是原数组中每个元素形成数组后的新的元素总结:map是对RDD中元素逐一进行函数操作映射为另外一个RDD,而flatMap操作是将...

2019-06-28 17:37:56 2113

转载 知乎实时数仓架构及演进

转载自 https://blog.csdn.net/weixin_34064653/article/details/89089961“数据智能” (Data Intelligence) 有一个必须且基础的环节,就是数据仓库的建设,同时,数据仓库也是公司数据发展到一定规模后必然会提供的一种基础服务。从智能商业的角度来讲,数据的结果代表了用户的反馈,获取结果的及时性就显得尤为重要,快速的获取数据反馈...

2019-06-02 18:18:14 1307

原创 大型集群上的快速和通用数据处理架构(摘要)

这本书是spark框架设计者–计算机科学博士Matei Alexandru Zaharia和加州大学伯克利分校教授、主席Scott Shenker撰写的,CSDN进行翻译。书中作者主要分析了当前流行的各种计算框架的使用场景以及他们对应的缺点,然后谈了下为什么编写了spark这个框架和spark每个模块详细的设计理念及运行原理,这里是做一部分摘要。1.随着现在需要处理的数据量越来越大,单机处理要向...

2019-05-08 11:16:32 1810 1

原创 spark源码--master注册原理

spark源码中,需要在master上进行注册的一共有三种:worker,yarn-cluster模式下的driver,application这次就从worker注册来进入spark源码。由于worker注册是在master中完成的,所以我们进入到org\apache\spark\deploy\master\Master.scala这个类中,找到registerWorker()这个方法开始wo...

2019-01-02 23:48:15 184

空空如也

空空如也

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

TA关注的人

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