day11 hive来了

请介绍一下hadoop

概念

特点/特征

应用场景

代码实现

o 当问:请介绍一下某个组件或是技术的架构设计时,如何作答?

角色名称

角色作用

角色间关联关系

竞品角色或是竞品组件

o 面向分析与面向事务

面向事务强调时效性,发了请求立即得到回复。

面向分析强调吞吐量,发了请求不要求立马给我结果,强化融较大的数据量,得出准确的结构。

o 实时性:响应时间要短

o 吞吐量:单位时间处理的数据量要大。

o 离线和实时处理的分类依据

实时

在线:高实时

秒级实时

分钟级实时

小时级实时

离线

天级,T+1=Today+1

o 关于hive或是hdfs的用户权限管理问题

1、hdfs-hive的用户、组等权限数据,均来源于linux本地用户。

2、在用户级别上,集群中所有的不同主机上的相同用户名称,是共享一个hdfs系统的用户数据权限的。

潜台词:hdfs系统的用户是以用户名来判断权限的。

3、在用户组级别上的权限,是以组的ID作为判断依据的,而不仅仅是靠组名。

o Linux用户权限管理

常规用户权限管理:useradd,usermod,gpasswd等。

遵循的用户、组、其它的三个级别的权限管理。

优点:简单、有效

缺点:不灵活,不能够解决特殊情况下权限管理。

o ACLs:access control list,访问控制列表的方式,

专门来为传统权限管理不能解决的特殊情况服务、补充的。

o Hive的计算引擎

Mapreduce

Tez: hive官方默认的计算引擎

Spark

o Tez与mapreduce的对比分析

相同点

均为分布式计算框架,hive也都进行对等的支持。

都能够基于Hive和yarn调度来使用,共享HDFS存储。

差异点

Tez对DAG数据流图进行了执行优化,大大提升了执行效率。

Tez采用了会话代理机制,提前在yarn端开户一个任务交互的session proxy,为更多的任务提交提高效率。

Tez是属于自动计算优化,并不善长对用户的编程优化。相对于mapreduce而言,编程复杂度和学习难度很大。

o DAG有向无环图

Directed Acyclic graph

所有的数据类处理任务,形成的数据流图,均为DAG图。

o Derby

Java开发的开源的、嵌入式数据库。

o 嵌入式数据库:

你的数据库和你的代码是在一起的,而且一般是在同一个进程当中的。

SQLLite,android开发的默认数据库。

BerkerlyDB:简称BDB。

o Thrift

是一个实现服务跨语言调用的中间件。

比如可以让Java开发的服务或是中间件,可以让python,c,php来调用。

day11 hive进阶

o Web开发发展史

ASP-PHP

JSP

SSH

SSH2-nutz-springside

SSM-SpringMVC

Springboot

Springcloud

o 数据模型

为解决某一个或是某一类具体的应用场景问题,而抽象出来的公共的、共认的、统一的解决方案。

o Hive模型当中为何要进行分区和分桶?

很多问题的解决方法,没有对错之分,只有好坏之别。

主要作用在于提升查询效率

o Varchar和char对比分析

相同点:都是做字符串存储的类型。

差异点

Varhar是变长,char定长。

值本身长度不确定则用varchar,若确定则用char。

对比数据类型是从计算和存储两个维度

Varchar是有利于存储,但不利计算。

Char是有利于计算,但不利于存储。

Varchar是用时间换空间,

Char是用空间换时间。

o 请介绍一下hive的rc数据格式。

概念说明

Rc是row-column的缩写,即行列式文件。

先水平划分数据,再按字段进行存储。

特点特征

综合性能非常高,存储效率和查询效率均比较出色。

应用场景

Hive的表格式绝大部分情况均可以使用rc,现在都建议使用orc。

代码实现

Mr: 引入包之类的。

Hive

直接创建表的时候,设置表的存储格式即可。

o 数据格式当中的可切分性

可切分性即大数据处理理念当中的大而化小,分而治之。

分两个维度来理解。

存储维度

是不是所有的数据均可以进行大而化小、即hadoop里的block形式来存储?

答案是肯定的。因为底层都是二进制。

计算维度

是不是所有的计算均可以进行大而化小、即mapreduce类型的并行计算?

答案是肯定不行,取决于数据的存储格式是否可以被可切分,比如txt,seq,rc等均可以切分,但是gzip,snappy不可切分。

o 请介绍一下视图view

概念

虚表,一个SQL语句构成一个SQL数据抽象,但他本身是不存储数据的。

操作这个虚表就相当操作数据本身。

桥梁和数据抽象的作用。

特点

不存储数据本身,但是存储的是SQL,其实质是存储的复杂关系的抽象。

应用场景

解耦,解编程开发者与复杂关系数据的耦合性。

相当于多个人在开发相同业务的复杂SQL时,不用每个人都搞一遍这个复杂SQL,只要统一抽象这个复杂SQl形成一个视图,即可统一使用,提高了编程效率、降低了业务复杂性。

代码实现

Create view view_name query;

o 请介绍一下索引-index

概念

对数据进行高效检索而额外建立的一个数据结构,能够大幅度提升查询效率。

该数据结构:倒排性质结构,倒排索引。

正排:按照常规传统逻辑,先找大的,再找小的。

倒排:按照反常规逻辑,先找小的即词,再找大的即文章,即存储的是词到文章的关系。

特点

额外数据存储索引,其大小一般是远远小于数据本身,便于查询提升使用。

典型代码是康熙字典。

需要额外维护索引。

索引的优点在于提升查询效率,但也要注意索引的使用。

其缺点额外占用了存储空间,而且在对数据进行增删的时候还需要单独先维护索引。

应用场景

提升数据查询效率的地方均可以。

代码实现

Create index

Navicat界面

o 请介绍一下hive的内外表

概念

内表是元数据和实体数据统一由hive管理。

外表是元数据归hive管理,实体数据归hdfs管理。

特点

内表是一删则全删。

外表是一删只会删除元数据,实体数据继续hdfs管理。

应用场景

内表:表是可以在hive内部进行自生成的。

外表:表数据是由外部的数据通过load命令进来的,不能够自己生成的时候。

代码实现

内部表创建:create table

外部表创建:create external table

o 一次查询多次插入语法的实现

解决的是一张宽表并行高效、一次性读取后,生成多张子表的过程。

o Sort by和order by

前者是单个reduce内部排序,后者是全局排序。

o SQL优化之count(1)代替count(*)

相同点:均可以达到记录统计的目的。

不同点

SQL的是查询两部骤

确定有无:确定有没有

具体数据获取:具体拿出来看,到底是什么

day13 hive进阶

o 求职三个关键阶段及关系

简历

解决让招聘方愿意跟你取得主动联系的问题。

笔试

解决让招聘方愿意安排一个面试官,跟你面对面进行沟通,以线下面试为主,也可以是电话面试。

面试

解决的是完整、真实、客观、专业、全面的进行评估考量,确定求职者是否真的满足岗位需要。

o 答题技巧

能图化的一定不要列表

能列表的一定不要纯文字

能文字的一定不要纯说话

o 数据分析类题目的答题技巧

1、拿到题干:这个题到底问的是什么

2、审题:得到这个题目的考点是什么

3、题目的计算口径

其实就是准确的来描述和表达该题目当中存在可能歧义性的内容,即说明问题的模糊点。

简而言之,即在计算过程当中以什么计算方式为准。

4、确定输入与输出

5、SQL编程

6、测试运行与bug解决

7、正式上线

o SQL数据进行链接分类

左右水平链接:join

上下垂直合并:union

day15 hive进阶

o 外包工作分类

一等:到BAT、互联网大厂

二等:去金融、保险类公司

三等:运营商、科研院所

四等:不知名的、较偏的公司。

o Hive函数分类

系统函数

自定义函数

o Hive自定义函数分类-按照生命周期

临时函数-temporary

全局函数-global

o 关于mapreduce的排序

一次排序

map到reduce的过程中,会有sort排序,使得reduce的输出默认是按key升序排列输出。

特点:key是一个字段。

二次排序:

在map到reduce的过程当中,按照2个字段进行升序排序,当第1个字段的值相同时,按第2个字段排序。

day16 hive进阶

o 生产系统-生产环境

线上的,直接为用户提供正常服务的平台或是应用。

o 关于活跃数说明

DAU:daily active user

MAU: month active user

YAU: year active user

o 关于用户访问数量的统计名词:

Pv: page visit

你访问一个网页就是一个PV

同一个网页被同一个用户访问10次,则PV是10.

衡量访问数量。

Uv: uniq visit

一个人访问一个网页,就是一个UV

同一个网页被同一个用户访问10次,则UV是1.

衡量访问用户。

刷量

各种网络平台,都有刷量,

其中视频平台中的刷量,即为刷UV和PV。

o 数据模型

是对现实生活当中的实体、以及实体之间关系的映射。

最终要反射现实当中的业务中去。

o 阿里是一家数据公司,即数据驱动发展的公司。数字化公司。

o 数据建模的意思

让数据说话

o 维度:人们看待一个事物的角度。

o 数据分析

简而言之,基于给定的大批量的源数据,通过数据统计分析相关的方法,得出有利辅助决策的结果。

o QPS

Query per seconds,每秒请求数,一般作为衡高并发程度的最常用因子。

o 请介绍一下OLTP和 OLAP

概念说明

OLTP: on – line transactional processing,联机事务处理

OLAP:on-line analytical processing,联机分析处理

特点特征

OLTP:强调实时性和事务性。

OLAP:强调高吞吐量、分析性。

应用场景

OLTP:主要是应用线上的应用系统、网络平台的数据库方面。

OLAP:主要是应用于数据仓库的建设,离线数据处理与数据分析挖掘。

代码实现

都可以通SQL来实现。

o 数据分析当中的环比和同比

环比:连续的某个时间范围的比较,比如2月和3月。

同比:连续的两个周期的相同时间范围内的比较,比如2021年3月和2020年3月。

day17 hive进阶

o Hadoop集群的优化工作

第1轮:相关hive、tze、yarn的参数优化

包括container、jvm申请等方面。

第2轮:

硬件资源优化方向

CPU、内存、磁盘都有,只是接收和执行慢的情况。

之前资源有一定的空闲,但是总体资源还是比较弱小的,可能是导致整体集群工作效率低的主要原因。

o Hivesql之关键字比较顺序的问题

order by < select< group by< where < from

o 电商专业术语

曝光:商品被用户在网页当中看到了一次,称为一次曝光

即将商品呈现到用户的终端网页上。

Pv: page visit,一次网页的曝光,即为一个pv

Pvid: 一次曝光的唯一标识。

点击:click,用户用鼠标点进去某个曝光的商品的明细页面。

Uv: uniq visit,独立用户访问,一个用户访问一个网页N多次,但只有一个UV,相当于按用户进行去重统计。

Ctr:click through rate,广告点击率