面试之前会给一个 GitHub 仓库,需要提前下载,配置环境,运行代码,熟悉代码。
提前熟悉理解即可。
测试驱动开发。建议提前学习 B 站视频。
按照测试驱动开发的方法:
项目中用到了 Elasticsearch、ClickHouse、Spark,后面的问题基于自己的项目。
都可以用于复杂查询,实时计算返回结果。
Elasticsearch 提供全文检索功能,最擅长的主要是完全搜索场景(where过滤后的记录数较少),在内存富裕运行环境下可以展现出非常出色的并发查询能力。但是在大规模数据的分析场景下(where过滤后的记录数较多),ClickHouse 凭借极致的列存和向量化计算会有更加出色的并发表现,并且查询支持完备度也更好。ClickHouse 的并发处理能力立足于磁盘吞吐,而 Elasticsearch 的并发处理能力立足于内存 Cache,这使得两者的成本区间有很大差异,ClickHouse 更加适合低成本、大数据量的分析场景,它能够充分利用磁盘的带宽能力。数据导入和存储成本上,ClickHouse 更加具有绝对的优势。
项目中 ES 用来点查,CH 查时间区间,实时计算。
即:分布式计算,某个节点故障,例如千兆带宽变成百兆导致某个节点上的 task 执行缓慢,怎么区分这种情况。
笛卡尔积通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合。
Map-only:笛卡尔积只有 Map 阶段。

图片摘自 MapReduce Design Patterns。公众号回复 806 获取 PDF。
点击此处关注微信公众号。