自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 写SQL的规律总结

写SQL的规律:先找到目标表分析一下,需要哪些表能满足目标表的所有字段即准备所有输入表写逻辑观察目标表是否需要考虑分区:insert overwrite table 目标包名称固定格式,如果需要多表join,先把整体大框写出,再具体去写一个一个子查询selectfrom() b1join() b2on遇到统计什么次数用count遇到统计什么金额用sum如果是累积表,获取旧表(目标表)数据,再获取新表(输入表)数据遇到统计累积值,旧的

2020-12-06 18:10:28 326

原创 Presto简介及安装

1、Presto简介1.1 Presto概念Presto是一个开源的分布式SQL查询引擎,数据量支持GB到PB字节,主要用来处理秒级查询的场景注意:虽然Presto可以解析SQL,但它不是一个标准的数据库;不是MySQL、Oracle的代替品,也不能用来处理在线事务(OLTP)1.2 Presto架构Presto由一个Coordinator和多个Worker组成1.3 Presto优缺点1.3.1 优点Presto基于内存运算,减少了磁盘IO,计算更快能够连接多个数据源,跨数据源

2020-11-19 17:40:59 522

原创 superset遇到的问题

1、初始化superset时,若提示:UserWarning: Flask-Caching: CACHE_TYPE is set to null, caching is effectively disabled.找到python3.6/site-packages/superset/config.py打开编辑:THUMBNAIL_CACHE_CONFIG: CacheConfig = {"CACHE_TYPE": "null"}修改为THUMBNAIL_CACHE_CONFIG: CacheConfi

2020-11-18 20:38:45 3395

原创 Superset安装、配置及使用

可视化这一块,公司要么自己开发,需要会前端,开发出对应的效果,要么就用第三方的企业会开发出商业版本,一些BI工具(帆软,smartbi)这些都是需要收费的。我们可以学免费的第三方免费可视化工具Apache Superset是一个开源的、现代的、轻量级BI分析工具,能够对接多种数据源、拥有丰富的图标展示形式、支持自定义仪表盘,且拥有友好的用户界面,十分易用由于Superset能够对接常用的大数据分析工具,如Hive、Kylin、Druid等,且支持自定义仪表盘,故可作为数仓的可视化工具Superset官

2020-11-18 20:37:59 9843 1

原创 大数据架构演进

1、数仓架构演变(场景驱动)1.1 经典数仓架构数据仓库概念是Inmon于1990年提出并给出了完整的建设方法1.2 离线大数据架构随着互联网时代来临,数据量暴增,开始使用大数据工具来代替经典数仓中的传统工具此时仅仅是工具的取代,架构上并没有根本的区别,可以把这个架构叫做离线大数据架构1.3 Lambda架构后来随着业务实时性要求的不断提高,人们开始在离线大数据架构基础上加了一个加速层,使用流处理技术直接完成那些实时性要求较高的指标计算,这便是Lambda架构1.4 Kappa架构再后来,

2020-11-16 19:53:57 1234

原创 Hive开窗函数

普通的聚合函数聚合的行集是组,开窗函数聚合的行集是窗口因此,普通的聚合函数每组(Group by)只返回一个值,而开窗函数则可为窗口中的每行都返回一个值简单理解,就是对查询的结果多出一列,这一列可以是聚合值,也可以是排序值开窗函数一般分为两类,聚合开窗函数和排序开窗函数测试数据-- 建表create table student_scores( id int, studentId int, language int, math int, english in

2020-11-16 16:34:30 185

原创 Hive常用函数

Hive是建立在Hadoop上的数据仓库基础架构,定义了简单的类SQL查询语言(HQL),以实现MR功能,其提供的一系列函数同样类似于SQL函数函数分类方式很多,可以将其分为简单内置函数、高级内置函数以及自定义函数简单内置函数包括一些运算符,如关系运算符、算术运算符、逻辑运算符,数学函数,日期函数,字符函数,类型转换函数,条件函数,聚合函数等高级内置函数即由聚合函数等组成的具有一定分析性的函数自定义函数即通过自己写代码定义的具有特定功能的函数1、数学函数round(double d, int n

2020-11-16 16:32:12 460

原创 常见的人资面试题

1、请你自我介绍一下你自己?回答提示:先向面试官问好,比如:您好/上午好/下午好,两人以上说各位面试官大家好,我叫XX回答思路:一般人回答这个问题过于平常,只说姓名、年龄、学历、工作经验,这些在简历上都有,简单介绍即可。企业最希望知道的是求职者能否胜任公司工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事、主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说的合情合理企业才会相信企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问

2020-11-11 16:49:29 7288

原创 经典Hive SQL面试题

第一题找出所有科目成绩都大于某一学科平均成绩的学生数据集如下:uid subject_id score1001 01 901001 02 901001 03 901002 01 851002 02 851002 03 701003 01 701003 02 701003 03 85数据准备create table score( uid string, subject_id string, score int)row format

2020-11-11 16:45:28 3976

原创 Java终极面试题(上)

一、创建Java问题1.1 什么是Java虚拟机?Java虚拟机是一个可以执行Java字节码的虚拟机进程Java源文件被编译成功能被Java虚拟机执行的字节码文件1.2 为什么Java被称作是“平台无关的编程语言”?Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性1.3 JDK和JRE的区别是什么?Java运行时环境(JRE)是将要执行Java程序的Java虚拟机,它同时

2020-11-06 11:43:30 627 1

原创 Java类加载器

实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器主要有以下四种类加载器:启动类加载器(Bootstrap ClassLoader):用来加载Java核心类库,无法被Java程序直接引用扩展类加载器(extensions class loader):用来加载Java的扩展库;Java虚拟机的实现会提供一个扩展库目录;该类加载器在此目录里面查找并加载Java类系统类加载器(system class loader):也叫应用类加载器;它根据Java应用的类路径(CLASSPATH)来加载J

2020-11-06 11:11:17 174

原创 Java类加载过程

Java类加载需要经历以下几个过程:加载加载时类加载的第一个过程,在这个阶段,将完成一下三件事情:通过一个类的全限定名获取该类的二进制流将该二进制流中的静态存储结构转化为方法去运行时数据结构在内存中生成该类的Class对象,作为该类的数据访问入口验证验证的目的是为了确保Class文件的字节流中的信息不回危害到虚拟机在该阶段主要完成以下四钟验证:文件格式验证:验证字节流是否符合Class文件的规范,如主次版本号是否在当前虚拟机范围内,常量池中的常量是否有不被支持的类型元数据验证:对字

2020-11-06 11:06:54 146

原创 JVM内存分哪几个区,每个区的作用是什么?

Java虚拟机主要分为以下几个区:方法区有时候也成为永久代,在该区内很少发生垃圾回收,但是并不代表不发生GC,在这里进行的GC主要是对方法区里的常量池和对类型的卸载方法区主要用来存储已被虚拟机加载的类的信息、常量、静态变量和即时编译器编译后的代码等数据该区域是被线程共享的方法区里有一个运行时常量池,用于存放静态编译产生的字面量和符号引用。该常量池具有动态性,也就是说常量并不一定是编译时确定,运行时生成的常量也会存在这个常量池中虚拟机栈虚拟机栈也就是我们平常所称的栈内存,它为java方法.

2020-11-06 10:51:07 4124

原创 Hadoop面试题

1、Hadoop常用端口?Hadoop2.xHadoop3.x访问HDFS端口500709870访问MR执行情况端口80888088历史服务器1988819888客户端访问集群端口900080202、Hadoop配置文件?Hadoop2.x:core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml,slavesHadoop3.x:core-site.xml,hdfs-site.xml

2020-11-06 09:49:41 275 1

原创 Hive面试题

1、Hive的架构是什么?用户接口:ClientCLI(command-line interface)、JDBC/ODBC(jdbc访问hive)、WEBUI(浏览器访问hive)元数据:Metastore元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等默认存储在自带的derby数据库中,推荐使用MySQL存储MetastoreHadoop使用HDFS进行存储,使用MapReduce进行计算驱动

2020-11-06 08:50:22 353

原创 数据同步策略的类型

数据同步策略的类型包括:全量表、增量表、新增及变化表全量表:存储完整的数据;数据量不大的表(有变化)增量表:存储新增加的数据;数据没有修改,但是会追加的情况新增及变化表:存储新增加的数据和变化的数据;数据量比较大,修改与增加特殊表:只需要存储一次1、全量同步策略每日全量,导入完整数据到hive的分区表,就是每天存储一份完整数据,作为一个分区适用于表数据量不大,且每天既会有新数据插入,也会有旧数据的修改的场景例如:编码字典表、品牌表、商品三级分类、商品二级分类、商品一级分类、优惠规则表、活

2020-11-05 18:44:11 643

原创 数仓项目架构

1、系统数据流程设计为什么这里面需要kafka?1. 我们的业务有实时的业务,Spark可以和Flume做整合的2. 削峰平谷,处理一些高并发的场景3. 解耦,适合这种多场景对数据的多次使用埋点的数据是如何被采集的?采集的都是用户的行为,写一些代码(js,sdk),往后台发送,实时发送,每隔一段时间发送一个数据包(加密、压缩、转码,一次性发送多条)2、项目技术如何选型?技术选型主要考虑因素:数据量大小、业务需求、行业内经验、技术成熟度、开发维护成本、总成本预算数据采集传输:Flum

2020-11-04 17:38:37 1169 5

原创 人员配置参考

1、整体架构属于研发部/技术部/数据部/基础平台部,我们属于大数据组;还有后端项目组、前端组、移动开发、测试组、UI组等;其他的还有产品部、运营部、人事部、财务部、行政部、市场部、销售部等等大数据开发工程师 --> 大数据组组长 --> 项目经理 --> 部门经理 --> 技术总监2、职位等级与晋升规则职级就分初级,中级,高级;晋升规则不一定,看公司效益和职位空缺京东:T1、T2 应届生、T3 14K左右、T4 18K左右、T5 24-28K左右阿里:p5、(p6、p7、

2020-11-04 17:26:54 3060

原创 Flume对接Kafka

配置Flume(flume-kafka.conf)# definea1.sources = r1a1.sinks = k1a1.channels = c1# sourcea1.sources.r1.type = execa1.sources.r1.command = tail -F -c +0 /opt/module/datas/flume.loga1.sources.r1.shell = /bin/bash -c# sinka1.sinks.k1.type = org.apac..

2020-11-04 11:25:49 141

原创 使用Shell写过的脚本

Zookeeper集群启动停止脚本在/home/hadoop/bin目录下创建脚本zk.sh#! /bin/bashcase $1 in"start"){ for i in bigdata02 bigdata03 bigdata04 do ssh $i "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start" done};;"stop"){ for i in bigdata02 bigdata03 bigdata04 do ss

2020-11-04 11:15:59 343

原创 数据仓库进阶

一、数仓分层1.1 数仓分层ODS(Operation Data Store):原始数据层,关系建模,存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理DWD(Data Warehouse Detail):明细数据层,维度建模,对ODS层数据进行清洗(去除空值,脏数据,超过极限范围的数据)、维度退化、脱敏等DWS(Data Warehouse Service):服务数据层,以DWD为基础,实际的工作中,需要算某个app,过去1天/周/月/季度/年,上线以来的新增用户…DWT(Data Wa

2020-11-04 11:13:43 363

原创 Kafka面试题

1、Kafka中的AR、ISR、OSR又代表什么?AR(AllReplicas):分区的所有副本(AR=ISR+OSR)ISR(InSyncReplicas):与leader保持同步的follower集合OSR(OutSyncReplicas):ISR是由leader维护,follower从leader同步数据有一些延迟(包括延迟时间replica.lag.time.max.ms和延迟条数replica.lag.max.messages两个维度, 当前最新的版本0.10.x中只支持replica.la

2020-11-04 11:07:45 1387

原创 Flume面试题

1、Flume组成1.1 taildir source断点续传、多目录1.哪个flume版本产生的?Apache1.7、CDH1.62.没有断点续传功能时怎么做的?自定义3.taildir挂了怎么办?不会丢数:断点续传4.怎么处理重复数据?不处理:生产环境通常不处理,因为会影响传输效率处理:自身(在taildirsource里面增加自定义事务);找兄弟(下一级处理(hive dwd sparkstreaming flink布隆)、去重手段(groupby、开创取窗口第一条、redis)

2020-11-03 17:20:34 262

原创 Sqoop面试题

1、Sqoop参数Sqoop导入数据到hdfs中的参数/opt/module/sqoop/bin/sqoop import \# 特殊的jdbc连接的字符串--connect url\--username root\--password 000000\# hdfs目标的目录--target-dir \# 导入的目标目录如果存在则删除那个目录--delete-target-dir \# 相当于-m,并行导入时MapTask的个数--num-mappers \--fields-term

2020-11-03 11:58:46 1539

原创 Zookeeper面试题

1、Zookeeper需要装几台?半数机制:2n+1,安装奇数台;集群中半数以上机器存活,集群可用台数多,好处:提高可靠性;坏处:影响通信延时2、常用命令启动客户端:bin/zkCli.sh显示所有操作命令:help查看当前znode中所包含的内容:ls /查看当前节点数据并能看到更新次数等数据:ls2 /创建普通节点:create /app1 "hello app1"获得节点的值:get /app1创建短暂节点:create -e /app-emphemeral 8888创建带序号

2020-11-03 11:57:22 285

原创 Linux&Shell面试题

1、Liunx常用高级命令?命令说明top查看内存df -h查看磁盘内存情况iotop查看磁盘IO读写(yum install iotop安装)iotop -o直接查看比较高的磁盘读写程序netstat -tunlp | grep 端口号查看端口占用情况uptime查看报告系统运行时长及平均负载ps -aux查看进程2、如果某个端口被占用了,怎么解决?先找到是哪个进程占用了端口,之后杀死占用该端口的进程3、Shell常用工具及

2020-11-03 11:53:13 2048 2

原创 设备唯一标识

一、IMEIInternational Mobile Equipment Identity,国际移动设备身份码,在手机组装完成后赋予的一个全球唯一的号码,由于此时IPhone只支持单卡,所以IMEI和IPhone是一一对应的iOS 2提供了一种方法获取IMEI,但是为了保护用户隐私,iOS 5以后苹果不再允许获取IMEI了,如果你在应用中获取IMEI,可能会遭到Apple Store的拒绝二、IDFAIdentifier for Identifier,即广告标识符,多用于用户的广告追踪,是每台设备的

2020-10-30 14:34:53 5352 2

原创 Windows10系统快捷键

Win10新增功能快捷键大全快捷键说明Win + ←/→/↑/↓贴靠窗口Alt + Tab切换窗口Win + Tab任务视图Win + Ctrl + D创建新的虚拟桌面Win + Ctrl + F4关闭当前虚拟桌面Win + Ctrl + ←/→切换虚拟桌面Win10常用Win快捷键快捷键说明Win键桌面与开始菜单切换按键Win + R打开运行对话框Win + Q快速打开搜索Win + I快

2020-10-24 08:29:02 129

原创 Sublime Text 3 快捷键

选择类快捷键说明Ctrl+D选中光标所占的文本,继续操作则会选中下一个相同的文本Alt+F3选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑Ctrl+L选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样Ctrl+Shift+L先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行Ctrl+Shift+M选择括号内的内容(继续选择父括号)(例:快速选中删除函数中的代码,重写函数体代码或重写括号内里的内容)C

2020-10-19 16:51:00 62

原创 Flink直击灵魂问答

1、Flink的抽象层次有几种?Stateful stream processingCore APITableSQL2、Window类型?TimeWindowTumbling Window(滚动窗口)Sliding Window(滑动窗口)Session Window(会话窗口)Global Window(全局窗口)CountWindow自定义window3、Flink Time类型?Flink中的时间和其它流式计算系统的时间一样分为三类:事件时间,摄入时间,处理

2020-10-14 12:00:53 254 2

原创 大数据阶段四(Flink)面试题库

1、什么是Flink?Flink项目的理念是:Apache Flink是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。Flink能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性,还提供了丰富的时间类型和窗口计算、Exactly-once(就一次)语义支持,另外还可以进行状态管理,并提供

2020-10-12 16:41:26 1211 1

原创 Flink中状态编程和容错机制

流式计算分为无状态和有状态两种情况;无状态的计算观察每个独立事件,并根据最后一个事件输出结果;有状态的计算则会基于多个事件输出结果Flink状态管理包含哪些?状态一致性,故障处理以及高效存储和访问,以便开发人员可以专注于应用程序的逻辑1、状态的类型在Flink中,状态始终与特定算子相关联,总的来说,有两种类型的状态:算子状态(Operator State)键控状态(Keyed State)1.1 算子状态(Operator State)算子状态的作用范围限定为算子任务,由同一并行任务所处

2020-10-12 16:00:46 197 1

原创 大数据阶段三(Scala,Spark)面试题库

1、Scala中问什么没有多继承?因为子类中容易造成变量的定义混乱。2、Scala的函数与Java相比有什么差别?跟Java相比,Scala函数类似于静态方法,但是却不需要依赖某个具体的类,Java中就算是静态方法也需要类名打点的形式进行调用,Scala中的函数不依赖某个具体的类。3、Scala的所有数据类型?Byte,Char,Short,Int,Long,Float,Double,Boolean。4、什么是带有特质的对象?简单来说,带有特质的对象就是在对象构造时指定其所需要的特质。5、S

2020-10-12 11:46:28 1257

原创 Flink知识点总结

一、Flink简介1.1 初识FlinkFlink项目的理念是:Apache Flink是为分布式、高性能、随时可用以及准确的流处理应用程序打造的开源流处理框架。Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink被设计在所有常见的集群环境中运行,以内存执行速度和任意规模来执行计算。Flink能够提供毫秒级别的延迟,同时保证了数据处理的低延迟、高吞吐和结果的正确性,还提供了丰富的时间类型和窗口计算、Exactly-once(就一次)语义支持,另外还可以

2020-10-11 18:40:31 419

原创 Flink中的Window

1 WindowStreaming流式计算是一种被设计用于处理无限数据集的数据处理引擎,而无限数据集是指一种不断增长的本质上无限的数据集,而Window是一种切割无限数据理为有限块进行处理的手段Window是无限数据流处理的核心,Window将一个无限的Stream拆分成有限大小的”buckets”桶,我们可以在这些桶上做计算操作Window可以分成两类:CountWindow:按照指定的数据条数生成一个Window,与时间无关TimeWindow:按照时间生成Window滚动窗口(

2020-10-11 18:35:53 181

原创 Flink中时间语义与Wartermark

1 Flink中的时间语义在 Flink 的流式处理中,会涉及到时间的不同概念,如下图所示:Event Time:是事件创建的时间。它通常由事件中的时间戳描述,例如采集的日志数据中,每一条日志都会记录自己的生成时间,Flink 通过时间戳分配器访问事件时间戳Ingestion Time:是数据进入 Flink 的时间Processing Time:是每一个执行基于时间操作的算子的本地系统时间,与机器相关默认的时间属性就是Processing Time对于业务来说,要统计1min内的故障日志个数

2020-10-11 18:30:25 433

原创 Flink流处理API之Sink

Flink没有类似于Spark中foreach方法,让用户进行迭代的操作虽有对外的输出操作都要利用Sink完成最后通过类似如下方式完成整个任务最终输出操作stream.addSink(new MySink(xxxx))官方提供了一部分的框架的Sink;除此以外,需要用户自定义实现Sink1. Kafka<dependency> <groupId>org.apache.flink</groupId> <artifactId>fli

2020-09-29 12:17:41 373

原创 Flink运行架构

1. Flink运行时的组件Flink运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager)任务管理器(TaskManager)资源管理器(ResourceManager)分发器(Dispatcher)因为Flink是用于Java和Scala实现的,所以所有组件都会运行在Java虚拟机上1.1 JobManager控制一个应用程序执行的主进程,也就是说,每个应用程序都会被一个不同的JobManager所控制执行JobManager会先接

2020-09-29 10:57:17 239

原创 Flink流处理API之Source

1 从集合读取数据package com.streamapiimport org.apache.flink.api.scala._import org.apache.flink.streaming.api.scala.StreamExecutionEnvironmentobject Source { def main(args: Array[String]): Unit = { // 创建流处理环境 val env = StreamExecutionEnvironment.g

2020-09-29 10:50:58 140

原创 手机App指标分析

1. 新增用户1.1 指标定义当某个具体的用户,在之前的历记录中,没有出现,这个人就是一个新用户星期一:新增 10W星期二:新增 20W星期三:新增 30W星期四:新增 10W星期五:新增 100W星期六:新增 20W星期日:新增 50W1.2 指标意义新增用户算出来的意义是什么 ?(这个指标有什么作用,为什么需要算这个指标)对于很多的app,在前期主要需要融资,怎么忽悠别人的钱,新增用户的数量就是最重要的一个参考指标之一,有些app为了圈投资人的钱,做数据,地推,扫码送礼品,地

2020-09-21 09:58:01 785

空空如也

空空如也

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

TA关注的人

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