• 【面经】Thoughtworks 大数据开发面经


    1.自我介绍
    2.结对编程

    面试之前会给一个 GitHub 仓库,需要提前下载,配置环境,运行代码,熟悉代码。

    2.1 讲一下代码是干什么的

    提前熟悉理解即可。

    2.2 知道 TDD 吗

    测试驱动开发。建议提前学习 B 站视频。

    2.3 重构代码,实现三个需求

    按照测试驱动开发的方法:

    1. 先写测试样例并运行-不通过;
    2. 修改业务逻辑代码;
    3. 运行测试代码,不通过返回第二步骤,直到通过测试。
    3.介绍简历上的项目

    项目中用到了 Elasticsearch、ClickHouse、Spark,后面的问题基于自己的项目。

    4.ES 和 CH 有什么区别

    都可以用于复杂查询,实时计算返回结果。

    Elasticsearch 提供全文检索功能,最擅长的主要是完全搜索场景(where过滤后的记录数较少),在内存富裕运行环境下可以展现出非常出色的并发查询能力。但是在大规模数据的分析场景下(where过滤后的记录数较多),ClickHouse 凭借极致的列存和向量化计算会有更加出色的并发表现,并且查询支持完备度也更好。ClickHouse 的并发处理能力立足于磁盘吞吐,而 Elasticsearch 的并发处理能力立足于内存 Cache,这使得两者的成本区间有很大差异,ClickHouse 更加适合低成本、大数据量的分析场景,它能够充分利用磁盘的带宽能力。数据导入和存储成本上,ClickHouse 更加具有绝对的优势。

    项目中 ES 用来点查,CH 查时间区间,实时计算。

    5.Spark 的数据倾斜怎么判断
    6.怎么区分数据节点故障和数据倾斜

    即:分布式计算,某个节点故障,例如千兆带宽变成百兆导致某个节点上的 task 执行缓慢,怎么区分这种情况。

    7.Spark 的架构、任务提交的流程
    8.Spark 调优用过哪些
    9.笛卡尔积是什么,笛卡尔积的 MapReduce 过程是怎么样的,Shuffle 过程是怎么样的

    笛卡尔积通俗点说就是指包含两个集合中任意取出两个元素构成的组合的集合。

    Map-only:笛卡尔积只有 Map 阶段。

    在这里插入图片描述

    图片摘自 MapReduce Design Patterns。公众号回复 806 获取 PDF。

    点击此处关注微信公众号。

  • 相关阅读:
    Hadoop集群搭建
    报错Importing ArkTS files to JS and TS files is not allowed. <etsLint>
    调度算法+等待/周转时间计算
    微服务框架 SpringCloud微服务架构 22 DSL 查询语法 22.3 精确查询
    Meta开源数字水印Stable Signature,极大增强生成式AI安全
    请问怎么获取pcord软件?
    2022年9月1日:Visual Studio Code 中的 GitHub 简介(未做完)
    numpy.unique 及其参数含义
    SAP UI5 navpopover Factory 的使用方法介绍
    英文转换-在线英文批量转换器免费
  • 原文地址:https://blog.csdn.net/weixin_45545090/article/details/126669192