-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path复习.txt
247 lines (176 loc) · 4.38 KB
/
复习.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
知识点复习
1、编程语言:JavaSE
基础语法:所有编程语言都有的
变量/数据类型
规范/注释/换行/缩进/编码/.....
关键字
数组
流程控制
方法\函数的定义和使用
String StringBuilder StringBuffer
String s1 = "huangbo"
String s2 = "huangbo"
String s3 = new String("huangbo");
s1 ?= s2
s1 ?= s3
s1.equals(s2)
s1.equals(s3)
面向对象
抽象
封装 + 继承 + 多态
集合
并发编程
网络编程: 流
反射
设计模式 + OOAD + UML
2、JavaEE
mysql + sql + jdbc + mybatis
jsp + css + html + jquery
spring
linux
Spring: IOC + AOP
MyBatis: ORM
SQL
3、大数据
HDFS
MapReduce
Hive
ZooKeeper
HBase
4、辅助工具
flume
redis
sqoop
azkaban
kafka
能解决什么问题:
1、数据的实时增删改查,不管是大数据量还是小数据量
mysql + hbase + redis
各种查询效率高的措施的融合
1、树 数据库的索引
2、折半查询
3、内存+磁盘 : WAL
4、布隆过滤器
2、业务程序的开发
JavaEE的三代开发模式:
1、纯Servlet
Servlet + JSP: 业务逻辑和数据视图展示划分
2、架构模式:MVC
DAO
Service
Controller
Model View Controller
3、微服务
Dubbo + SpringCloud
常见的后台管理系统:CMS、ERP、OA、CRM
P2P、O2O、P2C、B2C、B2B、C2C
大数据场景中的离线数据处理
采用通用的MapReduce大数据集的计算引擎
大数据场景中的大数据集的存储:HDFS
CDO
Common Data Object
PO
VO View Object
DTO Data Transaction Object
POJO
....
在工作中,从其他的项目吸收的比较好的编程思想和思维
设计模式
离线项目:
XX电商平台的用户行为分析系统
项目的价值
项目中的架构和数据处理流程
核心指标
数据的生成和采集
数据的存储和计算
数据的迁移和可视化展示
预处理
各种核心指标的SQL语句实现
推荐系统
用户画像
机器学习
搜索引擎
ES
重点:
linux:熟练使用
java: 能多精通就多精通
sql:编写 + 优化 + 数据库的其他高级使用策略(分库分表,读写分离,binlog的解析,索引,存储过程和触发器,事务,三大范式)
三个面试题
1、求 TopN
2、求 交集
3、快速判断一个元素是否存在于一个大数据集中
思想:
1、分而治之
2、数据分区的思路
hash
随机
范围
3、计算的模式
4、分布式的相关思想
分布式一致性算法的实现思路:
1、事务
2、分布式事务:2PC + 3PC
3、WRN: W + R > N
4、paxos算法
数据倾斜:负载不均衡
负载均衡:数据不倾斜
倾斜:存储 + 计算
集群的架构:
1、主从架构
2、对等架构
存储和计算:
1、存储:
真实数据 数据节点
元数据 核心节点
2、计算
主控协调程序 MRAppMaster
小任务 MapTask/ReduceTask
守护进程:
1、HDFS: namenode + datanode
2、YARN: resourcemanager + nodemanager
3、hbase: master + regionserver
关于对等架构:
1、zookeeper
leader + follower
quorum 议员
2、kafka
3、es
在对等架构中,在集群的安装和初始化的时候,不会指定到底谁是主节点
也不会关心在运行过程中主节点是否宕机
因为这个所谓的主节点都是选举出来的。
优化:
1、代码开发的优化
2、数据倾斜的优化
3、资源调优
4、shuffle调优(计算)
集群运维相关的问题
负载均衡:
1、节点
2、磁盘
怎么做呢?
如果使用了HDFS做数据存储系统,那么是否还需要做磁盘阵列呢?
21天定律
3天小复习
7天大复习
21天记住了一个技术点
不用就忘了
python
java
scala
r
SQL HQL
纯功能性的: 开发一个HDFS
开发一个跟用户打交道给用户使用的系统
总结的将来的技术和开发发展趋势:
Stream + UI + SQL
Java + SQL + 大数据的相关思维
shuffle 数据倾斜
主 从
namenode datanode
resourcemanager nodemanager
hmaster hregionserver
master worker
nimbus supervisor
主节点 从节点
管理者节点 工作者节点
大师 奴隶