决定了,天气再热也要坚持学,不能浪费时间。
你要学就马上直接去学,不用整那么多废话,你需要或者你想要,就这么两个动力,其他什么也不用说。因为知易行难,全世界的人都想努力,想过上好日子,关键不在于能不能想到,或者有没有说出这个目标,而是你愿不愿意承受不舒服,去把这些落实。现实就是需要先苦后甜。
但是人不能一直沉迷温柔乡,还是得活的警醒一点,人无远虑必有近忧。远虑就是你为未来做的努力。
开整。
【在it行业,懂技术的人才有资格大声说话,地位由技术决定。】
day2-14
在大数据集群中会有很多机房,一个机房中会有很多机架,不同机架之间通信要经过交换机,消耗更多带宽。
副本放置原则
- 副本不能全放在同一个机架上,否则一个机架损毁数据就没了
- 副本也不能都跨机架,这样通信成本很高
所以给出了一个最合适的放置方式,如果是三副本,2个机架,那就是1-2,如果有更多副本那就随机找机架放。其他机架随机选择,每个机架放置副本的数量是有上限的,(replicas - 1) / racks + 2。
读取副本遵循就近原则
说白了就是数网络拓扑的杠杠,数量最少的那个来读取,比如我在A机架某个DN访问,那我肯定优先读A机架的副本数据。
【这多利索,重点明确,就两个原则,15分钟搞定。你一天哪儿那么毒牢骚啊,抱怨这个不公,那个不平了,都是网络闹的。没有网络你也不觉得自己多可怜。】
【既然记不住全部内容,那就只明确重点来记忆,其他的在实战中巩固,至今还没写过啥代码呢。所谓重点就是没他不行的内容,你甚至可以只记粗体的部分。】
day2-15 hdfs读流程(主要记着是通过串行的输出流来写入,也是通过输入流来读取)
先回顾下hdfs写流程,主要涉及客户端、NN、DN。
- 客户端自己做的:计算及切片
- 客户端和NN交互:申请写入,NN回复你往哪几个DN上写入。
- 客户端和DN交互:以自己为中心,需要创建串行的输出流,将DN1 DN2 DN3串起来,向DN1内存中写入数据。串行好处是减少客户端网络IO压力。
- DN之间:数据从客户端写入DN1内存,DN1一边往本地磁盘写,一边通过网络复制给DN2和DN3。
记忆难点主要在于串行输出流的写入方式,为什么用流来写入,不懂先这样记。串行的话,比客户端和每个DN单独交互,网络IO压力小很多。
读流程:比写入更简单,也是客户端向NN发起第1个数据块的下载申请,NN返回该数据块所在DN的list列表。然后客户端通过输入流从DN1读取,若失败就从DN2读取。
hdfs结课,重点是shell练习 hdfs操作 hdfs读写流程理论。
办公室热就热把,时间不能再这么浪费,热也要把心静下来踏实学习。因为你不可能把这么多大好时光都浪费掉,而且更应该赶紧换工作啊,这办公条件太烂了。
——————————————————————————
Mapreduce开始
day3-01