day05 hadoopcore

o 搜索引擎的核心技术

索引-index

搜索算法-search

o 百度和谷歌的核心技术

除了索引、搜索算法外,还有海量数据采集器。

o 超级用户说明

Root是linux主机的超级用户

Hdfs是集群的hdfs的超级用户

o 全文检索引擎:

非全文检索: 只会针对全量数据当中的一部分数据。如字典,只能按索引查询。

全文检索:对所有数据区域进行全部的可搜索操作。如百度、谷歌当中的网页搜索。

o 流式数据访问

顺序访问,按数据记录逐条逐批的处理。

o 一个好的设计,顶得上一万个技巧。

o 大数据任务处理过程当中的瓶颈分析

计算瓶颈

计算性能往往远远超出计算所需。

机器学习类、深度学习类瓶颈在此。

IO瓶颈

大部分任务计算都是IO密集型,所以瓶颈在IO上

o 请介绍一下某组件的架构设计

1、角色名称

2、角色定位

3、角色关系

4、竞品分析

o 大数据处理的基本思路.

大而化小,分而治之

分布式架构设计的经典模式

o 主从模式:Master-slave

o 去中心化模式: elasticsearch、kafka

o 无中心化模式:区块链、比特币

高可用性

o HA:high availiable,高可用性

o 一个集群当中的master宕机后,并不会导致整个集群不能工作,而是可以通过master的备用得进行自动active模式切换,达到平滑集群使用。

Maven scope

o Scope本意:视野,可见范围

o 解决依赖的jar包的生存周期范围的。

o 包括test,compile,running,provided,system等。

o Provided: 布署环境当中已有相关的依赖包,不需要你在打包的时候,再多打一次这个包进入最终的jar包当中。

打包分类-按打完包之后的依赖的位置

o All-in-one: 全部打到一个包中

o 分离打包:自己写的代码是一个jar包,依赖的jar包是另外的一个文件目录。

专业术语之句柄

o 抽象是一个整体,那么抽象的入口就是所谓的句柄。

Java输入流和输出流的参考对象

o 内存

字符串编解码说明

o 编码:字符串转换成字节数组称之为编码。

o 解码:将字节数据转换成字符串,称为解码。

Maven的依赖分类-按jar所属的作用分类

o 1、应用jar包

o 2、maven环境变量需要系统依赖

Maven的仓库源分类-repository分类

o 1、中央仓库-Central

o 2、第三方依赖仓库-阿里云,gitee等。

o 3、公司基于nexus组自建的仓库源

吞吐量和时效性

o 吞吐量:是指单位时间内处理的数据的量级

o 时效性:发送一个请求后,多长时间可以返给我结果。

day08 hadoopcore

o web开发的几个阶段

web1.0: 静态网页

web2.0:动态网页

  1. 与用户有交互功能的动态网页,

Asp,php,jsp

前后端分离

典型代表:新浪微博

  1. web3.0

AR-VR

o 分布式任务计算当中的一个常用疑难杂症

木桶原理

o Mapreduce经典问题之一

是不是所有的mapreduce任务都可以加入combiner环节?

显然是不对的,

只有任务本身具有本地可聚合归约,才可以使用combiner,如果不能进行本地聚合,则一定不能用。

场景

可用: 求和,最大值,最小值。

不可用:求平均数。

o 团队管理常用话术

制度管人,流程管事。

o Java当中的跨机器传输的模块

Java IO当中的序列化和反序列化

序列化:将内存当中的对象转换成二进制字节数组,可以用于存储于磁盘,也可以进行网络传输。

反序列化:将从网络或是存储文件当中读取出来的字节数组,转化成对应的内存当中的对象。

o 同步和异步

同步:等你完事我再进行其它的操作或是执行其它的任务。

异步:你干你的,我干我的,你干完之后通知我。

o Mapreduce输出目录注意事项

必须不存在的hdfs目录才可以设置为输出目录

day09 hadoopcore

o 解决新问题的策略

先解决技术问题

再解决业务问题

o 正则表达式的Java实现的核心类

2个

Pattern:模式匹配

Matcher:数据结果匹配

o 请列举出常用的正则表达式

数值: \d

空格: \s

字母: a-z A-Z

频次: +,?,*

范围匹配: {m,n}

o Java Pattern模式匹配的3种模式

全量匹配:matches

前缀匹配: lookingAt

任意匹配: find

o 抽象分层设计

方法抽象和变量抽象-get,set,userName

类抽象-Patten,Matcher

库抽象-log4j,java.math

工具库组件抽象-spring

子系统抽象-hdfs,mapreduce,springboot

o 实现类抽象的标准做法

1、测试类:解决技术及可行性问题

2、对测试类进行方法(包括构造方法和普通方法)和变量的抽取

3、对方法和变量的修饰符

4、对类进行落地编程实现

5、测试和发布上线

o 解决分布式代码mr任务的步骤

1、详细梳理代码逻辑、业务逻辑

2、打日志,确定日志结果是否与预期相符

3、快速针对日志问题进行迭代

4、取消打印日志后,正式上线

o Linux的人机交互的自动化实现

常规的人机交互: 人和机器之间进行你来我往

Linux的自动的问答式人机交互:expect编程

通过人为编程实现程序与程序之间的交互。

o 数据格式在hdfs当中按其可切分性分类

可切分:是指可以把一个大数据文件,切分成N多小数据块,从而可以进行并行计算。

不可切分:是指文件格式,是不能够进行大而化小之后并行计算的。

o 压缩的本质

将重复数据进行去重化。

o 关于集群运行规范当中的沙箱机制-sandbox —设置临时目录

为了解决分布式环境运行当中的系统安全性保障的问题。

即集群会给每个分配到某主机的计算任务,设定临时工作目录,其代码的影响范围仅能在该临时目录当中,不能跳出该目录,否则将导致系统安全的大风险。

该临时目录,将具备该任务执行全过程的所需要的资源、依赖。

o 关于Linux交换文件swap的说明

当用linux编辑文件时,均会配套生成一个swap交换文件,即本次改动的临时文件。

该文件记录了本次改动最新内容和变化。

当你正常修改完成后,保存退出,则swap文件进行将新内容正式落地到正式文件后,则该文件自行删除。

当你编辑过程中,出现非常退出时,则该文件成了中间临时文件,并不会自动删除,当你下次再用vi编辑该文件,首先进入swap临时交换文件,从而进行之前修改的变更、确认或是修复,完成后再人为删除该swap文件即可。

day10 hadoopcore

o 一个好的设计,等于一万个技巧。

o 单点故障

集群当中的管理节点,如果出现故障,则会导致整个集群不能正常工作。

o 高可用性

High avaliable,简称HA

专门解决单点故障问题,使集群不会因为某一个管理角色的故障,使得集群不能正常工作。

o Rpc

Remote procedure call,远程过程调用。

跨机器的通信均是rpc通信。