第十三周

2019-06-24  本文已影响0人  梧上擎天

Algorithm

什么是"正确"的算法?

"正确"的算法是要根据不同应用环境和场景确定的。假设面试官就问对一组数据进行排序,你将怎么做?一般人第一反应就会是使用快速排序算法O(nlogn)作答。但这个回答却忽略了使用环境因素,和数据特征。

优化算法的思路

算法复杂度和数据规模

1秒内:

O(n^2) 处理大约10^4级别的数据

O(nlogn) 处理大约10^8级别的数据

O(n) 处理大约10^7级别的数据

递归的时间复杂度是什么?

如果递归函数中,只进行一次递归调用,递归深度为depth;
在每个递归函数中,时间复杂度为T;则总体的时间复杂度为O(T * depth)

Review

一、《Flink-客户端操作》

Flink提供了丰富的客户端操作来提交任务和与任务进行交互。本期课程将分为5个部分进行讲
解,包括 Flink命令行,Scala Shell,SQL Client(后续支持DDL语句),Restful API 和 Web。)

链接

二、《Flink Window Time》

链接

Tips/Technology

一、Google大数据处理发展过程

第一阶段:无统一大数据处理框架,MapReduce应运而生解决了统一容错,让开发人员只关心业务逻辑等问题

第二阶段:MapReduce无法自动调优,大量Map和Reduce代码后期很难维护。FlumeJava出现了,将执行计划先遍历一遍形成有向无环图自动。

第三阶段:FlumeJava只支持批处理,无法对无解数据进行处理所以在2015年发布了Dataflow模型,希望集合现在市场上的框架,进行流批的统一。

第四阶段:Google全面推进Beam

  1. MapReduce: https://research.google.com/archive/mapreduce-osdi04.pdf
  2. Flumejava: https://research.google.com/pubs/archive/35650.pdf
  3. MillWheel: https://research.google.com/pubs/archive/41378.pdf
  4. Data flow Model: https://www.vldb.org/pvldb/vol8/p1792-Akidau.pdf

二、Flink和Spark对比

Share

《慢下来》

纪伯伦有句话:我们已经走得太远,以至于忘记了为什么出发。我们做事情总是很急,总怕自己错过了什么,到头来其实什么也没记住,但却满足了自身的焦虑感。有些时候我们目的还没有搞清楚,在世俗的驱动下,随波逐流的就去做了,做了半天其实方向都是错的。给自己一个建议,慢下来,只要方向是对的慢慢走早晚会到终点。

Research

项目部署、袋鼠云版本迁移、华为产品对接

上一篇 下一篇

猜你喜欢

热点阅读