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:动态网页
与用户有交互功能的动态网页,
Asp,php,jsp
前后端分离
典型代表:新浪微博
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通信。