本篇总结一下本身对大年夜数据算法认知的过程。正文包含两部分:本身对算法的认知过程和对大年夜数据算法的懂得。
写这篇博客的原因有很多,总的来讲有下面几点:
- 本身在算法的路上一向懵懵懂懂,如今方才有了一点点头绪,赶紧做个记录。
- 梳理清跋扈本身的思路,后续会有一个算法进修的一到两年的筹划,这算是个引子。
谈起算法大年夜家都只会想到经典算法和机械算法,除此之外还有很多有意思的算法,特别是为懂得决大年夜数据量问题的算法,这些很轻易被忽视掉落,然则我认为这才算是大年夜数据算法。
0x01 认知过程
1. 算法没什么竽暌姑
分布式算法也不完全算是,虽说大年夜数据工程师都要用到分布式体系,然则他们解决的问题场景不太一样的。分布式算法要解决时钟、一致性问题这些问题。大年夜数据场景的算法不太一样。
刚入坑的时刻,一向认为大年夜数据工程师就是安装一下 Hadoop,写写 MR 法度榜样,运维一下集群就够了,虽说算法很重要,然则工作中没有什么感到。
有时刻感到本身写法度榜样可能永远也不须要写什么算法,然则不得不承认,算法的思维能让本身受益无穷。
2. 经典算法的魅力
做了一段时光大年夜数据运维后,接到了一个优化调剂体系的义务,就和 Gim 老司机在一路设计重构调剂体系的筹划,在这个过程中复习了很多图论相干的常识点,大年夜此开端对算法产生了极大年夜的兴趣并一发弗成整顿,随后从新进修了一遍辅弼关的内容,本身着手实现了什么2-3树、avl树、红黑树这些数据构造。
其实,感兴趣的一个重要原因就是发明,这些器械根本构建了我们全部的计算机体系。好交手件体系、数据库的索引,学会这些总感到今后就不会丢饭碗了。
0x02 算法技能一览
3. 机械进修代表了一切
再接着,机械进修一会儿就火了起来,世界上只剩下了两种算法:机械进修算法和非机械进修算法。身边的同伙和同窗,凡是和数据开辟相干的,都称本身想转做机械进修。笔者也不克不及免俗,开端预备跟着海潮走一波。然则一没场景,二是兴趣不大年夜,当有一天我忽然意识到本身在学机械进修累的时刻居然想玩玩 Linux 放松心境的时刻,就临时放弃了转向机械进修的┞封个设法主意。今后我会用到它,可能还会用的很深,然则如今不会全身心肠转向它。
我在很长一段时光也抱着一种算法只是起到在面试中起到区分度感化的常识点罢了。(如今鲜攀来,其拭魅这个不雅点也没什么错,大年夜部分的开辟工作切实其实用不到本身写的算法。)
机械进修过后,17年又迎来了深度进修的海潮。
4. 深度进修又是一波海潮
感触最深的是在 17 年 5 月份,看到了一份雇用请求,招的 title 是人工智能平台架构师,具体的请求是除了数据平台请求的器械外加了一些深度进修平台的器械。
这时刻就认为,当海潮到来的时刻,你可以不转向它,然则要包涵它。所以,顺逼揭捉?了一波深度的器械,入了个门,大年夜概知道我今后须要做些什么。(半年后的今天根本已经忘完了)
5. 还有很多有趣的算法
跟着工作的深刻,体系在机能上碰到了很多了瓶颈,我们要做一系列的调剂来竽暌功对,比如敏感信息的加密、集群文件的紧缩、负载均衡策略的选择,这时刻就不得不深刻进修一下加密算法、紧缩算法、负载均衡算法的道理。
这些算法一向都在,然则仍然可以在如今的大年夜数据场景下发挥极大年夜的感化。
6. 分布式算法
在这之前,我对本身大年夜事的工作一向有一点心虚,感到除了写写 MR,管一下集群貌似没什么技巧含量太深的器械,能拿得出手的也就是各个体系的架构和对他们的熟悉程度。 后来无意间在 Mooc 发清楚明了一门云计算道理的课,然后就对这一块产生了极大年夜的兴趣。
跟着进修的深刻,发明这块的水照样相当深的,我们称这些为分布式算法,它包含了这么一大年夜堆内容:
- 2PC、Gossip 这一大年夜堆协定;DHT、Paxo、Raft 这一大年夜堆算法、还有一些混乱无章的道理。
这块学的┞氛样很外相,后面会有具体的进修筹划。
7. 大年夜数据算法到底是什么?
在工作和进修中碰到了这么多算法,再加上一段时光的思虑,我会在想,大年夜数据的算法到底是什么样子的?
经典算法暂且不论,紧缩和加密算法也一向都有。
那么机械进修呢?总感到有些处所纰谬劲,应当说是机械进修是应用了大年夜数据,然则他不是为懂得决大年夜数据的各类问题的,真正的大年夜数据问题还要有大年夜数据的算法来解决。
然后我们要想一下大年夜数据场景有什愦问题?
大年夜数据场景的问题
数据量大年夜,这是一个最明显的特点,它带来的问题就是处理这些数据成了很大年夜的麻烦。Hadoop 是一个冲破性的项目,然后在这之外我们还会有一些场景要解决。
也就是,我们在很多场景下,会在许可必定就义必定的精确度地情况下来快速地算出结不雅。这一些算法有极大年夜的应用处景。比如 Redis 会用到 Hyperloglog 来做基数统计。
如许的一批算法,我认为算是大年夜数据算法中的一部分,内容比较多,有专门的博客展开来专门讲,比如 Bitmap、Roaring Bitmap、Hyperloglog等。
在这里做一个小总结,画一下我认为大年夜数据工程师须要控制、熟悉和懂得的算法。很多其实袈溱工作中都邑经常碰到。
进修优先级?
关于这些算法进修的优先级该怎么剖断?这个就不装x了,居士本身其实也会有不少迷茫,没办法说哪个更重要,不过如不雅真是要学的话可以大年夜致有一些参考。
推荐阅读
我读大年夜学的时刻专业是主动控制,当时恰是人工智能的冬天。有一天我对神经收集产生了兴趣,于是问一个师长教师该若何进修神经收集。结不雅师长教师摇着头说,神经收集上世纪就已经被研>>>详细阅读
本文标题:闲谈大数据和算法 知道这些让你受益无穷
地址:http://www.17bianji.com/lsqh/38616.html
1/2 1