漫谈大数据
在大数据横飞的时代,我只是表达下个人对大数据技术的看点,没有什么权威性,如果 有经验丰富的大佬 或者 细节控,挑刺王,欢迎吐槽。
1.大数据的技术发展路线
分布式 ,为什么要把分布式 摆在首位,可能大多数人 接触到大数据 都从hadoop集群开始,虽然,大数据的三大基石 是 谷歌的三大论文,但其都建立在分布式理论基础上。
那么学习构建一个简单的分布式系统,恐怕是最好的学习开头,最近看到flink 以及 spark 都用过akka 这个框架,现在 spark 已经弃用,自己实现了rpc,网络通信这块 都是使用netty,异步多线程。
当然 分布式中把控cap 还是取决于编码者 ,其中绕不开的是学习zookeeper 或者 raft(之前看好的 tidb 使用的分布式协同技术) 默默管理着各个模块。不由感叹 ,大佬都是 看着论文 就能撸一个系统,我看着论文 看着代码 蒙圈。
2.parse
sql 化,基本上大数据工具的共同实现目标,那么 parse 怎么实现的?或者spark 的 DAG 图,flink 的 excution gragh 是怎么实现的?挖个坑,我也不是很清楚,后期补上。
3.文件的存储方式,压缩方式,或者 序列化的方式,
序列化在分布式 尤其重要,但是 大佬们 已经将 最好了序列化 做了推荐,很多时候 拿着就用,并没有关注 为什么要序列化,为什么要用这种序列化,哈。这里面 将粗一点,不同计算机 之间通信 ,无论是啥,不可能传一个对象过去,为啥。。因为 传的10码,就是 ACSII码,也就是 存储在内存的结构体 无论是 栈 还是 队列,ACSII码都没办法翻译,就序列化,转ACSII码 通过网络传输,看看 百度的解析:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。。好准确,可是 我只想说 能不能 说人话。。。。学习道路上的文科学习。
4.调优& 性能
最近 撸了计算机组成原理 ,最大的感受就是 天下武功 唯快不破,为什么要缓存呢,如果 结合代码 最大化的利用缓存,包括流水线化 我们的指令,这部分 后面会展开讲。
学习 大数据技术 如果 是学习 如果使用,各大组件的官网 给了很多 案列 api 以及 解释 ,甚至 还把 坑,如何性能优化 都告诉,可以学习很多,可以结合 官方作者的blog 撸源码 也是种不错的方法。。。。。。end