- 博客(37)
- 收藏
- 关注
原创 辛普森悖论
辛普森悖论在对样本集合进行分组研究时,在分组比较中都占优势的一方,在总评中有时反而是失势的一方,这种有悖常理的现象,就成为 “辛普森悖论”。工作中的典型案例:某产品的用户中有10000人使用Android设备、5000人使用IOS设备,整体的付费转化率应该是5%。细分发现其中IOS设备的转化率仅为4%,而Android设备则是5.5%。“聪明”的数据分析师得出结论:IOS平台的用户付费转化率低下,建议放弃IOS平台的研发。一般来说,IOS平板的付费转化率比Android平板高出很多,而IOS
2021-08-16 22:24:05
401
原创 Hadoop面试-HDFS,MapReduce,Yarn
Hadoop面试HDFS###1.hdfs写流程(1)客户端通过 Distributed FileSystem 模块向 NameNode 通信请求上传文件,NameNode 检查目标文件是否已存在,父目录是否存在。(2)NameNode 返回是否可以上传。(3)客户端请求第一个 Block 上传到哪几个 DataNode 服务器上。(4)NameNode 返回 3 个 DataNode 节点,分别为 dn1、dn2、dn3。(5)客户端通过 FSDataOutputStream 模块请求 d
2021-08-11 23:08:06
496
原创 Flume面试题
Flume面试题1 flume怎么保证数据不丢失?其一:lume使用两个独立的事务分别负责从source到channel以及从channel到sink的事件传递,source向channel写数据时会先将数据写入临时缓冲区putlist,然后检查channel是否可以写入,如果写入成功会更新偏移量,如果不成功就回滚数据,channel到sink的事件传递也会现将数据写入临时缓冲区takelist,如果数据发送成功就更新偏移量,如果发送失败就回滚数据。其二:Channel 使用的是 File Chann
2021-08-11 22:53:41
1012
转载 PaaS 平台的架构、现状及未来
PaaS 平台的架构、现状及未来说起云计算平台,大家可能都知道有IaaS、PaaS和SaaS。IaaS和SaaS的概念大部分人都能很清晰的认知。说到IaaS大多会讲:存储、计算和网络这三大基础资源,说到SaaS大家会想到各种类型的应用,但是说到PaaS就没有一个非常明确的共识。做大数据平台的厂商会数自己的大数据平台是PaaS,做容器云的厂商会数自己的容器平台是PaaS,甚至传统的IaaS厂商会数自己的平台也是PaaS。那么PaaS究竟是什么呢?PaaS的定义云计算相关概念我们来说PaaS的定义时就要
2021-08-06 23:31:05
3062
原创 clickhouse系列学习笔记——(四)引擎详解--->(1)Log系列引擎
四 引擎详解表引擎是ClickHouse设计实现中的一大特色 ,数据表拥有何种特性、数据以何 种形式被存储以及如何被加载。ClickHouse拥有非常庞大的表引擎体 系,截至本书完成时,其共拥有合并树、外部存储、内存、文件、接口 和其他6大类20多种表引擎。而在这众多的表引擎中,又属合并树 (MergeTree)表引擎及其家族系列(*MergeTree)最为强大,在生产 环境的绝大部分场景中,都会使用此系列的表引擎。因为只有合并树系 列的表引擎才支持主键索引、数据分区、数据副本和数据采样这些特 性,同时也
2021-08-06 11:12:35
272
原创 Hive面试题
Hive面试题1.Hive的架构2.Hive和数据库比较Hive 和数据库除了拥有类似的查询语言,再无类似之处。1)数据存储位置Hive 存储在 HDFS 。数据库将数据保存在块设备或者本地文件系统中。2)数据更新Hive中不建议对数据的改写。而数据库中的数据通常是需要经常进行修改的,3)执行延迟Hive 执行延迟较高。数据库的执行延迟较低。当然,这个是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive的并行计算显然能体现出优势。4)数据规模Hive支持很大
2021-08-05 20:47:02
904
转载 hive数据导入方式
hive数据导入方式1. 向表中装载数据(Load)1.语法hive> load data [local] inpath '/opt/module/datas/student.txt' overwrite | into table student [partition (partcol1=val1,…)];(1)load data:表示加载数据(2)local:表示从本地加载数据到hive表;否则从HDFS加载数据到hive表(3)inpath:表示加载数据的路径(4)overwrit
2021-08-05 20:35:23
1483
转载 Hive中小表与大表关联(join)的性能分析
经常看到一些Hive优化的建议中说当小表与大表做关联时,把小表写在前面,这样可以使Hive的关联速度更快,提到的原因都是说因为小表可以先放到内存中,然后大表的每条记录再去内存中检测,最终完成关联查询。这样的原因看似合理,但是仔细推敲,又站不住脚跟。 多小的表算小表?如果所谓的小表在内存中放不下怎么办?我用2个只有几条记录的表做关联查询,这应该算是小表了,在查看reduce的执行日志时依然是有写磁盘的操作的。实际上reduce在接收全部map的输出后一定会有一个排序所有键值对并合并写入磁盘
2021-07-08 17:58:37
1217
转载 Flink运行架构
Flink运行架构1.1 Flink运行时的组件Flink运行时架构主要包括四个不同的组件,它们会在运行流处理应用程序时协同工作:作业管理器(JobManager)资源管理器(ResourceManager)任务管理器(TaskManager)分发器(Dispatcher)因为Flink是用Java和Scala实现的,所以所有组件都会运行在Java虚拟机上。每个组件的职责如下:作业管理器(JobManager)控制一个应用程序执行的主进程,也就是说,每个应用程序都会被
2021-07-04 22:47:11
170
转载 mysql limit工作原理及order by效率分析
mysql limit工作原理及order by效率分析MySQL的limit m n工作原理就是先读取前面m+n条记录,然后抛弃前m条,读后面n条想要的,所以m越大,偏移量越大,性能就越差。推荐分页查询方法:1、尽量给出查询的大致范围SELECT c1,c2,cn... FROM table WHERE id>=20000 LIMIT 10;2、子查询法SELECT c1,c2,cn... FROM table WHERE id>=( SELECT id FROM ta
2021-07-02 23:17:43
396
转载 如何理解SparkSQL中的partitionColumn, lowerBound, upperBound, numPartitions
如何理解SparkSQL中的partitionColumn, lowerBound, upperBound, numPartitions在SparkSQL中,读取数据的时候可以分块读取。例如下面这样,指定了partitionColumn,lowerBound,upperBound,numPartitions等读取数据的参数。简单来说,就是并行读取。关于这四个参数的意思,SparkSQL官方解释是:Property NameMeaningpartitionColumn, lowerB
2021-06-18 15:36:10
1955
转载 Spark中 cache和checkpoint的比较
cache和checkpoint的比较关于这个问题,Tathagata Das 有一段回答: There is a significant difference between cache and checkpoint. Cache materializes the RDD and keeps it in memory and/or disk(其实只有 memory). But the lineage(也就是 computing chain) of RDD (that is, seq of operat
2021-06-12 11:00:30
429
原创 杨晓峰-java核心技术36讲(学习笔记)-2讲 | Exception和Error有什么区别?
杨晓峰-java核心技术36讲(学习笔记)接下来我会分享杨晓峰-java核心技术36讲的学习笔记,内容较多,补充了其中一些牛人评论,相对详细(仅供个人学习记录整理,希望大家支持正版:https://time.geekbang.org/column/intro/100006701)2讲 | Exception和Error有什么区别?请对比Exception和Error,另外,运行时异常与一般异常有什么区别?典型回答Exception和Error都是继承了Throwable类,在Java中只有Thro
2021-06-06 21:09:29
318
原创 杨晓峰-java核心技术36讲(学习笔记)- 第1讲 | 谈谈你对Java平台的理解?
杨晓峰-java核心技术36讲(学习笔记)接下来我会分享杨晓峰-java核心技术36讲的学习笔记,内容较多,补充了其中一些牛人评论,相对详细(仅供个人学习记录整理,希望大家支持正版:https://time.geekbang.org/column/intro/100006701)第1讲 | 谈谈你对Java平台的理解?谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗?典型回答Java本身是一种面向对象的语言,最显著的特性有两个方面,一是所谓的“书写一次,到处运行”(Write on
2021-06-02 22:06:30
489
原创 scala_集合专题
第 7 章 集合7.1 集合简介1)Scala 的集合有三大类:序列 Seq、集 Set、映射 Map,所有的集合都扩展自 Iterable特质。2)对于几乎所有的集合类,Scala 都同时提供了可变和不可变的版本,分别位于以下两个包不可变集合:scala.collection.immutable可变集合: scala.collection.mutable3)Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象,而不会对原对象进行修改。类似于 java 中的 Str
2021-05-28 20:48:29
289
原创 Scala—函数至简原则
函数至简原则函数至简原则:能省则省1)至简原则细节(1)return 可以省略,Scala 会使用函数体的最后一行代码作为返回值(2)如果函数体只有一行代码,可以省略花括号(3)返回值类型如果能够推断出来,那么可以省略(:和返回值类型一起省略)(4)如果有 return,则不能省略返回值类型,必须指定(5)如果函数明确声明 unit,那么即使函数体中使用 return 关键字也不起作用(6)Scala 如果期望是无返回值类型,可以省略等号(7)如果函数无参,但是声明了参数列表,那么调用时,
2021-05-26 20:38:52
454
原创 clickhouse系列学习笔记——(三)(下)clickhouse基本语法
三 clickhouse基础入门2 基本语法2.1 DDL基础建表目前只有MergeTree、Merge和Distributed这三类表引擎支持 ALTER查询,所以在进行alter操作的时候注意表的引擎!注意在建表的时候一般要求指定表的引擎CREATE TABLE tb_test1( `id` Int8, `name` String)ENGINE = Memory() ;修改表结构-- 查看表结构desc tb_test1 ;┌─name─┬─type─
2021-05-20 21:13:32
1067
原创 clickhouse系列学习笔记——(三)(上)clickhouse数据类型
三 clickhouse基础入门基本语法演示-- show databases ;-- create database if not exists test1 ;-- use test1 ;-- select currentDatabase() ;-- drop database test1 ;1 数据类型注意在CK中关键字严格区分大小写ck中建表的时候 ,一定指定表引擎!create table tb_test1(id Int8 , name String )engine=Me
2021-05-20 21:09:06
673
原创 clickhouse系列学习笔记——(二)clickhouse部署
二 clickhouse-部署ClickHouse支持运行在主流64位CPU架构(X86、AArch和 PowerPC)的Linux操作系统之上,可以通过源码编译、预编译压缩包、Docker镜像和RPM等多种方法进行安装。1 单节点部署1) 信息步骤安装curl工具yum install -y curl添加clickhouse的yum镜像curl -s https://packagecloud.io/install/repositories/altinity/clickhouse/s
2021-05-20 21:05:15
319
原创 clickhouse系列学习笔记——(一)clickhouse简介
一 clickhouse-简介 ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System) , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse的全称是Click Stream,Data WareHouse,简称ClickHouse实时数据 ,事件,快
2021-05-20 21:00:33
467
转载 clickhouse简介
1 简介 ClickHouse是俄罗斯的Yandex于2016年开源的一个用于联机分析(OLAP:Online Analytical Processing)的列式数据库管理系统(DBMS:Database Management System),简称CK , 主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 ClickHouse是一个完全的列式数据库管理系统,允许在运行时创建表和数据库,加载数据和运行查询,而无需...
2021-05-20 20:48:28
1661
原创 day11 面向对象【修饰符,内部类,参数传递】
day11 面向对象【修饰符,内部类,参数传递】今日内容static访问权限内部类引用类型参数第一章 static关键字1.1 概述static是静态修饰符,一般修饰成员。被static修饰的成员属于类,不属于单个这个类的某个对象。static修饰的成员被多个对象共享。static修饰的成员属于类,但是会影响每一个对象。被static修饰的成员又叫类成员,不叫对象的成员。1.2 static特点被static修饰的成员变量属于类,不属于这个类的某个对象。(也就是说,多个对象在访问或
2021-05-13 22:48:29
76
原创 day10 final、接口、多态
day10 final、接口、多态今日内容final接口多态第一章 final关键字1.1 概述学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种随意改写的情况,Java提供了final 关键字,用于修饰不可改变内容。final: 不可改变。可以用于修饰类、方法和变量.类:被修饰的类,不能被继承。方法:被修饰的方法,不能被重写。变量:被修饰的变量,不能被重新赋值。
2021-05-13 22:44:33
90
原创 day09【API、String类、StringBuilder类】
day08【API、String类、StringBuilder类】今日内容String类StringBuilder类第一章 API1.1 概述API(Application Programming Interface),应用程序编程接口。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们.1.2 API使用步骤打开帮助文档。点击显示,找到索引,看到输入框
2021-05-13 22:39:05
63
原创 day08 面向对象【继承、包、权限修饰符】
day08 面向对象【继承、包、权限修饰符】今日内容继承方法重写this/super关键字抽象类包第一章 面向对象回顾1.1 类与对象 什么是类?类是现实事物的抽象,将现实事物描述成对应的类,其行为封装为方法,属性封装为成员变量。比如说人,人都有哪些属性?姓名,年龄,性别…等等这些都属于人的属性,可以将其封装为类的成员变量。人都有哪些行为?吃饭,睡觉…等等都属于人的行为,可以将其封装为类的成员方法。那么就可以定义一个Person类来描述人这一类事物!public class
2021-05-06 23:36:08
98
转载 Partitioner的使用以及原理
Partitioner简介shuffle是通过分区partitioner 分配给Reduce的 一个Reducer对应一个记录文件Partitioner是shuffle的一部分partitioner执行时机:在mapper执行完成,Reducer还没有执行的时候,mapper的输出就是partitioner的输入 即<k2,v2>partitioner 分区主要是用来提高效率的 例如从全国基站的数据中查找北京基站的数据,如果计算时不分区全国的数据都放在一起,查询的时候就相当于全表扫描 效率非常
2021-05-05 16:23:23
691
原创 序列化-反序列化专题
序列化-反序列化专题一.序列化1.1版本一: 简单来说序列化就是一种用来处理对象流的机制。所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是I/O)。我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时会引发一些问题,而序列化机制正是用来解决这些问题的!1.2版本二:序列化:把对象转换为字节序列的过程称为对象的序列化。反序列化:把字节序列恢复为对象的过程称为对象的反序列化。 上面是专业的解释,
2021-04-27 23:29:32
185
1
原创 day07【类与对象、封装、构造方法】
day07【类与对象、封装、构造方法】今日内容面向对象类与对象三大特征——封装构造方法第1章 面向对象思想1.1 面向对象思想概述概述Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。它区别于面向过程思想,强调
2021-04-25 22:52:31
101
原创 day06【自定义类型,ArrayList类】
day06【自定义类型,ArrayList类】今日内容自定义类型ArrayList类随机点名案例第一章 自定义类型1.1 引用数据类型分类提到引用数据类型(类),其实我们对它并不陌生,如使用过的Scanner类、Random类.我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包含了很多的方法与属性,可供我们使用。 第二种,我们自己创建的类,按照类的定义标准,可以在类中包含多个方法与属性,来供我们使用。 这里我
2021-04-25 22:30:19
151
原创 day05【方法】
day05【方法】今日内容方法的概念方法的参数和返回值方法的重载方法的练习第一章 方法入门1.1 概述假如我们使用循环在一段程序中实现在控制台上打印3次helloworld、再打印5次helloworld , 我们会在main方法中编写两段for循环语句 , 若要再来3个打印多次呢 ? 这个时候我们会发现这样编写代码非常的繁琐且重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现.方法:就是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。当我们需要这个
2021-04-25 22:28:51
90
原创 day04【 Idea、数组】
day04【 Idea、数组】今日内容集成开发工具IDEA数组及内存图数组的常见问题数组的练习第一章 开发工具IntelliJ IDEA1.1 开发工具概述IDEA是一个专门针对Java的集成开发工具(IDE),由Java语言编写。所以,需要有JRE运行环境并配置好环境变量。它可以极大地提升我们的开发效率。可以自动编译,检查错误.在公司中,使用的就是IDEA进行开发。eclipse myeclipse1.2 IDEA软件安装此软件集成了32位和64位,双击ideaIU-2018.
2021-04-25 22:26:50
206
原创 day03【流程控制语句】
day03【流程控制语句】今日内容ScannerRandomif语句for循环while循环do…while循环跳出语句break,continue猜数字小游戏案例第一章 引用数据类型1.1 键盘录入Scanner类我们要学的Scanner类是属于引用数据类型,我们先了解下引用数据类型。引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式。 数据类型 变量名 = new 数据类型(); 每种引用数据类型都有其功
2021-04-25 22:19:55
97
原创 day02 【变量、运算符】
day02 【变量、运算符】今日内容变量数据类型转换运算符第一章 变量1.1 变量概述前面我们已经学习了常量,接下来我们要学习变量。在Java中变量的应用比常量的应用要多很多。所以变量也是尤为重要的知识点!什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装载衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。**1.2 定
2021-04-25 22:16:50
120
原创 day01_HelloWorld&常量
day01_HelloWorld&常量今日内容Java语言的发展历史Java开发环境搭建编写HelloWorld程序注释、关键字、标识符数据类型、常量第一章 开发前言1.1 Java语言概述什么是Java语言Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。Java语言发展历史1995年Sun公司发布J
2021-04-25 22:11:13
118
原创 SHELL教程(简易入门版)
SHELL教程一.简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Shell 编程跟 JavaScript、php 编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。 Linux 的 Shell 种类众多,本教程关注的是 Bash,也就是 Bourne Again Shell
2021-04-25 18:10:13
774
原创 VI(VIM)编辑器常用指令
VI(VIM)编辑器常用指令1 插入命令命令作用a在光标后附加文本A(shift + a)在本行行末附加文本 行尾i在光标前插入文本I(shift+i)在本行开始插入文本 行首o在光标下插入新行O(shift+o)在光标上插入新行2 定位命令命令作用:set nu设置行号:set nonu取消行号gg / G到第一行 / 到最后一行nG到第n行:n到第n行3
2021-04-25 18:00:52
372
原创 linux基本指令总结
linux基本指令总结1.1 cd英文:change directory 命令路径:内部命令 执行权限:所有用户作用: 切换目录语法:cd [目录]/ 切换到根目录 .. ../ 回到上一级目录 . 当前目录\- 显示并打开到上一次操作的目录 ~ 当前用户的宿主目录(eg:# cd ~用户名 进入某个用户的家目录)1.2 ls英文:list 命令路径:/bin/ls 执行权限:所有用户作用:显示目录文件语法:ls [-alrRd] [文件或目
2021-04-25 16:30:59
114
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人