精华内容
下载资源
问答
  • 大数据面试题以及答案整理(面试必备)
    2022-04-02 15:43:05

    一、 java基础

    1、 Queue和Stack你平时有用过么,说说你常用的方法,他们的却别在哪呢?

    2、 了解java的异常吗,有什么区别,常见的异常有哪些呢?

    3、 两个字面值相同的Integer,它们两个用等于号去比较,结果是true还是false?(这个题要分两部分去回答,结果可能为true,也可能为false。因为有缓存)

    4、 可以讲一下你常用的集合类么?他们的实现类有哪些?

    5、 ArrayList、LinkedList的区别,底层的实现呢了解吗,有没有什么优缺点,分别适合于什么样的场景,多线程环境下,有没有安全的list的实现类呢?

    6、 其他数据结构的了解吗?LinkedHashMap、ConcurrentSkipHashMap(作为一个扩展,面试的时候问到的不是很多,能答出来挺好,答不出来也没关系)

    7、 说一说你对HashSet的理解,越详细越好 ( tip:底层是用hashMap实现的),treeSet有了解吗?聊一聊?

    8、 HashMap:

    a. HashMap的底层数据结构是什么样子的

    b. 了解hash冲突吗?它是如何解决hash冲突的

    c. 请你简单叙述一下hashMap的put和get操作,当然,能说多细就说多细?

    d. Jdk7和jdk8中对hashMap做了什么改进嘛(红黑树)?

    e. 有没有其他的解决冲突的办法呢

    f. HashMap中的hash函数

    更多相关内容
  • 尚硅谷大数据高频面试题文档
  • 2021最全最新大数据面试题
  • HADOOP 面试题目录 1. 下列哪项通常是集群的最主要瓶颈 2. 下列哪项可以作为集群的管理工具? 3. 下列哪个是Hadoop 运行的模式? 4. 列举几个hadoop 生态圈的组件并做简要描述 4. 列举几个hadoop 生态圈的组件并做...
  • Hadoop和hive大数据面试题,压缩包一共有三个文件一共超过两百个大数据就业实用相关面试题
  • 2021最全大数据面试题汇总---hadoop篇,附答案!

    千次阅读 多人点赞 2021-07-30 10:55:11
    大数据面试题来了! 本篇文章搜集了常见的大数据面试题以及答案,包含了Hadoop,Flume,Hbase,Hive,kafka,spark,zookeeper等方面的内容,助同学们收到心仪的Offer! 1.hadoop面试题合集 1、集群的最主要瓶颈 ...

    大数据面试题来了! 本篇文章搜集了常见的大数据面试题以及答案,包含了Hadoop,Flume,Hbase,Hive,kafka,spark,zookeeper等方面的内容,助同学们收到心仪的Offer!

    1.hadoop面试题合集


    1、集群的最主要瓶颈

    磁盘IO

    2、Hadoop运行模式

    单机版、伪分布式模式、完全分布式模式

    3、Hadoop生态圈的组件并做简要描述

    1)Zookeeper:是一个开源的分布式应用程序协调服务,基于zookeeper可以实现同步服务,配置维护,命名服务。
    2)Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。
    3)Hbase:是一个分布式的、面向列的开源数据库, 利用Hadoop HDFS作为其存储系统。
    4)Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据档映射为一张数据库表,并提供简单的sql 查询功能,可以将sql语句转换为MapReduce任务进行运行。
    5)Sqoop:将一个关系型数据库中的数据导进到Hadoop的 HDFS中,也可以将HDFS的数据导进到关系型数据库中。

    4、解释“hadoop”和“hadoop 生态系统”两个概念

    Hadoop是指Hadoop框架本身;hadoop生态系统,不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop等辅助框架。

    5、请列出正常工作的Hadoop集群中Hadoop都分别需要启动哪些进程,它们的作用分别是什么?

    1)NameNode:它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有metadate。
    2)SecondaryNameNode:它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。
    3)DataNode:它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。
    4)ResourceManager(JobTracker):JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。
    5)NodeManager:(TaskTracker)执行任务。
    6)DFSZKFailoverController:高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。
    7)JournalNode:高可用情况下存放namenode的editlog文件。

    6、 HDFS 中的 block 默认保存几份?

    默认保存3份

    7、HDFS 默认 BlockSize 是多大?

    默认64MB

    8、负责HDFS数据存储的是哪一部分?

    DataNode负责数据存储

    9、SecondaryNameNode的目的是什么?

    他的目的使帮助NameNode合并编辑日志,减少NameNode 启动时间

    10、hadoop的块大小,从哪个版本开始是128M

    Hadoop1.x都是64M,hadoop2.x开始都是128M。

    11、HDFS的存储机制

    HDFS存储机制,包括HDFS的写入数据过程读取数据过程两部分 HDFS写数据过程

      1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是否已存在,父目录是否存在。
      2)NameNode返回是否可以上传。
      3)客户端请求第一个 block上传到哪几个datanode服务器上。
      4)NameNode返回3个datanode节点,分别为dn1、dn2、dn3。
      5)客户端通过FSDataOutputStream模块请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。
      6)dn1、dn2、dn3逐级应答客户端。
      7)客户端开始往dn1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,dn1收到一个packet就会传给dn2,dn2传给dn3;
    dn1每传一个packet会放入一个应答队列等待应答。
      8)当一个block传输完成之后,客户端再次请求NameNode上传第二个block的服务器。(重复执行3-7步)。

    HDFS读数据过程
      1)客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址。
      2)挑选一台DataNode(就近原则,然后随机)服务器,请求读取数据。
      3)DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以packet为单位来做校验)。
      4)客户端以packet为单位接收,先在本地缓存,然后写入目标文件。

    12、econdary namenode工作机制

    1)第一阶段:NameNode启动
      (1)第一次启动NameNode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
      (2)客户端对元数据进行增删改的请求。
      (3)NameNode记录操作日志,更新滚动日志。
      (4)NameNode在内存中对数据进行增删改查。
    2)第二阶段:Secondary NameNode工作
      (1)Secondary NameNode询问NameNode是否需要checkpoint。直接带回NameNode是否检查结果。
      (2)Secondary NameNode请求执行checkpoint。
      (3)NameNode滚动正在写的edits日志。
      (4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode。
      (5)Secondary NameNode加载编辑日志和镜像文件到内存,并合并。
      (6)生成新的镜像文件fsimage.chkpoint。
      (7)拷贝fsimage.chkpoint到NameNode。
      (8)NameNode将fsimage.chkpoint重新命名成fsimage。

    NameNode与SecondaryNameNode 的区别与联系?
    1)区别
      (1)NameNode负责管理整个文件系统的元数据,以及每一个路径(文件)所对应的数据块信息。
      (2)SecondaryNameNode主要用于定期合并命名空间镜像和命名空间镜像的编辑日志。
    2)联系:
      (1)SecondaryNameNode中保存了一份和namenode一致的镜像文件(fsimage)和编辑日志(edits)。
      (2)在主namenode发生故障时(假设没有及时备份数据),可以从SecondaryNameNode恢复数据。

    13、HDFS组成架构

    架构主要由四个部分组成,分别为HDFS Client、NameNode、DataNode和Secondary NameNode。下面我们分别介绍这四个组成部分。
    1)Client:就是客户端。
      (1)文件切分。文件上传HDFS的时候,Client将文件切分成一个一个的Block,然后进行存储;
      (2)与NameNode交互,获取文件的位置信息;
      (3)与DataNode交互,读取或者写入数据;
      (4)Client提供一些命令来管理HDFS,比如启动或者关闭HDFS;
      (5)Client可以通过一些命令来访问HDFS;
    2)NameNode:就是Master,它是一个主管、管理者。
      (1)管理HDFS的名称空间;
      (2)管理数据块(Block)映射信息;
      (3)配置副本策略;
      (4)处理客户端读写请求。
    3)DataNode:就是Slave。NameNode下达命令,DataNode执行实际的操作。
      (1)存储实际的数据块;
      (2)执行数据块的读/写操作。
    4)Secondary NameNode:并非NameNode的热备。当NameNode挂掉的时候,它并不能马上替换NameNode并提供服务。
      (1)辅助NameNode,分担其工作量;
      (2)定期合并Fsimage和Edits,并推送给NameNode;
      (3)在紧急情况下,可辅助恢复NameNode。

    14、HAnamenode 是如何工作的?

    ZKFailoverController主要职责
      1)健康监测:周期性的向它监控的NN发送健康探测命令,从而来确定某个NameNode是否处于健康状态,如果机器宕机,心跳失败,那么zkfc就会标记它处于一个不健康的状态。
      2)会话管理:如果NN是健康的,zkfc就会在zookeeper中保持一个打开的会话,如果NameNode同时还是Active状态的,那么zkfc还会在Zookeeper中占有一个类型为短暂类型的znode,当这个NN挂掉时,这个znode将会被删除,然后备用的NN,将会得到这把锁,升级为主NN,同时标记状态为Active。
      3)当宕机的NN新启动时,它会再次注册zookeper,发现已经有znode锁了,便会自动变为Standby状态,如此往复循环,保证高可靠,需要注意,目前仅仅支持最多配置2个NN。
      4)master选举:如上所述,通过在zookeeper中维持一个短暂类型的znode,来实现抢占式的锁机制,从而判断那个NameNode为Active状态

    15、谈谈Hadoop序列化和反序列化及自定义bean对象实现序列化?

    1)序列化和反序列化
      (1)序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。
      (2)反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。
      (3)Java的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop自己开发了一套序列化机制(Writable),精简、高效。
    2)自定义bean对象要想序列化传输步骤及注意事项:
      (1)必须实现Writable接口
      (2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造
      (3)重写序列化方法
      (4)重写反序列化方法
      (5)注意反序列化的顺序和序列化的顺序完全一致
      (6)要想把结果显示在文件中,需要重写toString(),且用"\t"分开,方便后续用
      (7)如果需要将自定义的bean放在key中传输,则还需要实现comparable接口,因为mapreduce框中的shuffle过程一定会对key进行排序

    16、FileInputFormat切片机制

    job提交流程源码详解
      waitForCompletion()
      submit();
      // 1、建立连接
        connect();
          // 1)创建提交job的代理
          new Cluster(getConfiguration());
            // (1)判断是本地yarn还是远程
            initialize(jobTrackAddr, conf);
      // 2、提交job
      submitter.submitJobInternal(Job.this, cluster)
        // 1)创建给集群提交数据的Stag路径
        Path jobStagingArea = JobSubmissionFiles.getStagingDir(cluster, conf);
        // 2)获取jobid ,并创建job路径
        JobID jobId = submitClient.getNewJobID();
        // 3)拷贝jar包到集群
        copyAndConfigureFiles(job, submitJobDir);
        rUploader.uploadFiles(job, jobSubmitDir);
        // 4)计算切片,生成切片规划文件
        writeSplits(job, submitJobDir);
        maps = writeNewSplits(job, jobSubmitDir);
        input.getSplits(job);
        // 5)向Stag路径写xml配置文件
        writeConf(conf, submitJobFile);
        conf.writeXml(out);
        // 6)提交job,返回提交状态
        status = submitClient.submitJob(jobId, submitJobDir.toString(), job.getCredentials());

    17、在一个运行的Hadoop 任务中,什么是InputSplit?

    FileInputFormat源码解析(input.getSplits(job))
    (1)找到你数据存储的目录。
    (2)开始遍历处理(规划切片)目录下的每一个文件。
    (3)遍历第一个文件ss.txt。
      a)获取文件大小fs.sizeOf(ss.txt);。
      b)计算切片大小computeSliteSize(Math.max(minSize,Math.min(maxSize,blocksize)))=blocksize=128M。
      c)默认情况下,切片大小=blocksize
      d)开始切,形成第1个切片:ss.txt—0:128M 第2个切片ss.txt—128:256M 第3个切片ss.txt—256M:300M(每次切片时,都要判断切完剩下的部分是否大于块的1.1倍,不大于1.1倍就划分一块切片)。
      e)将切片信息写到一个切片规划文件中。
      f)整个切片的核心过程在getSplit()方法中完成。
      g)数据切片只是在逻辑上对输入数据进行分片,并不会再磁盘上将其切分成分片进行存储。InputSplit只记录了分片的元数据信息,比如起始位置、长度以及所在的节点列表等。
      h)注意:block是HDFS上物理上存储的存储的数据,切片是对数据逻辑上的划分。
    (4)提交切片规划文件到yarn上,yarn上的MrAppMaster就可以根据切片规划文件计算开启maptask个数

    18、如何判定一个job的map和reduce的数量?

    1)map数量
      splitSize=max{minSize,min{maxSize,blockSize}}
      map数量由处理的数据分成的block数量决定default_num = total_size / split_size;
    2)reduce数量
      reduce的数量job.setNumReduceTasks(x);x 为reduce的数量。不设置的话默认为 1。

    19、 Maptask的个数由什么决定?

      一个job的map阶段MapTask并行度(个数),由客户端提交job时的切片个数决定。

    20、MapTask和ReduceTask工作机制

    MapTask工作机制

    (1)Read阶段:Map Task通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。
    (2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。
    (3)Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector.collect()输出结果。在该函数内部,它会将生成的key/value分区(调用Partitioner),并写入一个环形内存缓冲区中。
    (4)Spill阶段:即“溢写”,当环形缓冲区满后,MapReduce会将数据写到本地磁盘上,生成一个临时文件。需要注意的是,将数据写入本地磁盘之前,先要对数据进行一次本地排序,并在必要时对数据进行合并、压缩等操作。
    (5)Combine阶段:当所有数据处理完成后,MapTask对所有临时文件进行一次合并,以确保最终只会生成一个数据文件。

    ReduceTask工作机制

    (1)Copy阶段:ReduceTask从各个MapTask上远程拷贝一片数据,并针对某一片数据,如果其大小超过一定阈值,则写到磁盘上,否则直接放到内存中。
    (2)Merge阶段:在远程拷贝数据的同时,ReduceTask启动了两个后台线程对内存和磁盘上的文件进行合并,以防止内存使用过多或磁盘上文件过多。
    (3)Sort阶段:按照MapReduce语义,用户编写reduce()函数输入数据是按key进行聚集的一组数据。为了将key相同的数据聚在一起,Hadoop采用了基于排序的策略。 由于各个MapTask已经实现对自己的处理结果进行了局部排序,因此,ReduceTask只需对所有数据进行一次归并排序即可。
    (4)Reduce阶段:reduce()函数将计算结果写到HDFS上。

    21、描述mapReduce有几种排序及排序发生的阶段

    1)排序的分类:
      (1)部分排序:
        MapReduce根据输入记录的键对数据集排序。保证输出的每个文件内部排序。
      (2)全排序:
        如何用Hadoop产生一个全局排序的文件?最简单的方法是使用一个分区。但该方法在处理大型文件时效率极低,因为一台机器必须处理所有输出文件,从而完全丧失了MapReduce所提供的并行架构。
        替代方案:首先创建一系列排好序的文件;其次,串联这些文件;最后,生成一个全局排序的文件。主要思路是使用一个分区来描述输出的全局排序。例如:可以为待分析文件创建3个分区,在第一分区中,记录的单词首字母a-g,第二分区记录单词首字母h-n, 第三分区记录单词首字母o-z。
      (3)辅助排序:(GroupingComparator分组)
        Mapreduce框架在记录到达reducer之前按键对记录排序,但键所对应的值并没有被排序。甚至在不同的执行轮次中,这些值的排序也不固定,因为它们来自不同的map任务且这些map任务在不同轮次中完成时间各不相同。一般来说,大多数MapReduce程序会避免让reduce函数依赖于值的排序。但是,有时也需要通过特定的方法对键进行排序和分组等以实现对值的排序。
      (4)二次排序:
        在自定义排序过程中,如果compareTo中的判断条件为两个即为二次排序。
    2)自定义排序WritableComparable
      bean对象实现WritableComparable接口重写compareTo方法,就可以实现排序
        @Override
        public int compareTo(FlowBean o) {
          // 倒序排列,从大到小
          return this.sumFlow > o.getSumFlow() ? -1 : 1;
        }
    3)排序发生的阶段:
      (1)一个是在map side发生在spill后partition前。
      (2)一个是在reduce side发生在copy后 reduce前。

    22、描述mapReduce中shuffle阶段的工作流程,如何优化shuffle阶段

    分区,排序,溢写,拷贝到对应reduce机器上,增加combiner,压缩溢写的文件。

    23、描述mapReduce中combiner的作用是什么,一般使用情景,哪些情况不需要,及和reduce的区别?

    1)Combiner的意义就是对每一个maptask的输出进行局部汇总,以减小网络传输量。
    2)Combiner能够应用的前提是不能影响最终的业务逻辑,而且,Combiner的输出kv应该跟reducer的输入kv类型要对应起来。
    3)Combiner和reducer的区别在于运行的位置。
      Combiner是在每一个maptask所在的节点运行;
      Reducer是接收全局所有Mapper的输出结果。

    24、如果没有定义partitioner,那数据在被送达reducer前是如何被分区的?

      如果没有自定义的 partitioning,则默认的 partition 算法,即根据每一条数据的 key 的 hashcode 值摸运算(%)reduce 的数量,得到的数字就是“分区号“。

    25、MapReduce 出现单点负载多大,怎么负载平衡?

      通过Partitioner实现

    26、MapReduce 怎么实现 TopN?

      可以自定义groupingcomparator,对结果进行最大值排序,然后再reduce输出时,控制只输出前n个数。就达到了topn输出的目的。

    27、Hadoop的缓存机制(Distributedcache)

      分布式缓存一个最重要的应用就是在进行join操作的时候,如果一个表很大,另一个表很小,我们就可以将这个小表进行广播处理,即每个计算节点上都存一份,然后进行map端的连接操作,经过我的实验验证,这种情况下处理效率大大高于一般的reduce端join,广播处理就运用到了分布式缓存的技术。
      DistributedCache将拷贝缓存的文件到Slave节点在任何Job在节点上执行之前,文件在每个Job中只会被拷贝一次,缓存的归档文件会被在Slave节点中解压缩。将本地文件复制到HDFS中去,接着Client会通过addCacheFile() 和addCacheArchive()方法告诉DistributedCache在HDFS中的位置。当文件存放到文地时,JobClient同样获得DistributedCache来创建符号链接,其形式为文件的URI加fragment标识。当用户需要获得缓存中所有有效文件的列表时,JobConf 的方法 getLocalCacheFiles() 和getLocalArchives()都返回一个指向本地文件路径对象数组。

    28、如何使用mapReduce实现两个表的join?

      1)reduce side join : 在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag),比如:tag=0 表示来自文件File1,tag=2 表示来自文件File2。
      2)map side join : Map side join 是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多份,让每个map task 内存中存在一份(比如存放到hash table 中),然后只扫描大表:对于大表中的每一条记录key/value,在hash table 中查找是否有相同的key 的记录,如果有,则连接后输出即可。

    29、什么样的计算不能用mr来提速?

      1)数据量很小。
      2)繁杂的小文件。
      3)索引是更好的存取机制的时候。
      4)事务处理。
      5)只有一台机器的时候。

    30、ETL是哪三个单词的缩写

      Extraction-Transformation-Loading的缩写,中文名称为数据提取、转换和加载。

    31、简述hadoop1与hadoop2 的架构异同

      1)加入了yarn解决了资源调度的问题。
      2)加入了对zookeeper的支持实现比较可靠的高可用。

    32、为什么会产生 yarn,它解决了什么问题,有什么优势?

      1)Yarn最主要的功能就是解决运行的用户程序与yarn框架完全解耦。
      2)Yarn上可以运行各种类型的分布式运算程序(mapreduce只是其中的一种),比如mapreduce、storm程序,spark程序

    33、HDFS的数据压缩算法?

      Hadoop中常用的压缩算法有bzip2、gzip、lzo、snappy,其中lzo、snappy需要操作系统安装native库才可以支持。

    企业开发用的比较多的是snappy

    34、Hadoop的调度器总结

    (1)默认的调度器FIFO
      Hadoop中默认的调度器,它先按照作业的优先级高低,再按照到达时间的先后选择被执行的作业。
    (2)计算能力调度器Capacity Scheduler
      支持多个队列,每个队列可配置一定的资源量,每个队列采用FIFO调度策略,为了防止同一个用户的作业独占队列中的资源,该调度器会对同一用户提交的作业所占资源量进行限定。调度时,首先按以下策略选择一个合适队列:计算每个队列中正在运行的任务数与其应该分得的计算资源之间的比值,选择一个该比值最小的队列;然后按以下策略选择该队列中一个作业:按照作业优先级和提交时间顺序选择,同时考虑用户资源量限制和内存限制。
    (3)公平调度器Fair Scheduler
      同计算能力调度器类似,支持多队列多用户,每个队列中的资源量可以配置,同一队列中的作业公平共享队列中所有资源。实际上,Hadoop的调度器远不止以上三种,最近,出现了很多针对新型应用的Hadoop调度器。

    35、MapReduce 2.0 容错性(☆☆☆☆☆)

    1)MRAppMaster容错性
      一旦运行失败,由YARN的ResourceManager负责重新启动,最多重启次数可由用户设置,默认是2次。一旦超过最高重启次数,则作业运行失败。
    2)Map Task/Reduce
      Task Task周期性向MRAppMaster汇报心跳;一旦Task挂掉,则MRAppMaster将为之重新申请资源,并运行之。最多重新运行次数可由用户设置,默认4次。

    36、mapreduce推测执行算法及原理(☆☆☆☆☆)

    1)作业完成时间取决于最慢的任务完成时间
      一个作业由若干个Map 任务和Reduce 任务构成。因硬件老化、软件Bug 等,某些任务可能运行非常慢。
      典型案例:系统中有99%的Map任务都完成了,只有少数几个Map老是进度很慢,完不成,怎么办?
    2)推测执行机制
      发现拖后腿的任务,比如某个任务运行速度远慢于任务平均速度。为拖后腿任务启动一个备份任务,同时运行。谁先运行完,则采用谁的结果。
    3)不能启用推测执行机制情况
      (1)任务间存在严重的负载倾斜;
      (2)特殊任务,比如任务向数据库中写数据。
    4)算法原理
      假设某一时刻,任务T的执行进度为progress,则可通过一定的算法推测出该任务的最终完成时刻estimateEndTime。另一方面,如果此刻为该任务启动一个备份任务,则可推断出它可能的完成时刻estimateEndTime,于是可得出以下几个公式:     estimateEndTime=estimatedRunTime+taskStartTime     estimatedRunTime=(currentTimestamp-taskStartTime)/progress     estimateEndTime= currentTimestamp+averageRunTime
      其中,currentTimestamp为当前时刻;taskStartTime为该任务的启动时刻;averageRunTime为已经成功运行完成的任务的平均运行时间。这样,MRv2总是选择(estimateEndTime- estimateEndTime·)差值最大的任务,并为之启动备份任务。为了防止大量任务同时启动备份任务造成的资源浪费,MRv2为每个作业设置了同时启动的备份任务数目上限。
      推测执行机制实际上采用了经典的算法优化方法:以空间换时间,它同时启动多个相同任务处理相同的数据,并让这些任务竞争以缩短数据处理时间。显然,这种方法需要占用更多的计算资源。在集群资源紧缺的情况下,应合理使用该机制,争取在多用少量资源的情况下,减少作业的计算时间。

    展开全文
  • 大数据面试笔试资料-56家互联网大公司面试笔试资料整理汇总: hive面试.doc 京东.jpg 笔试1.docx 笔试10.jpg 笔试11.JPG 笔试12_搜狐 笔试13_九章云极科技有限公司 笔试14_北京东方国信科技股份有限...
  • 大数据面试题

    2021-01-07 16:31:42
    目录 一、linux相关内容 2 1、 什么是交换空间? 2 2、 Linux下的权限有哪些? 2 3、 如何在Linux下更改权限? 3 4、 什么是守护进程? 3 5、 使用vi编辑器时有哪些不同的模式?...6、 计算文件夹大小的命令是什么?...
  • 2021大数据面试真题(持续更新)

    万次阅读 多人点赞 2020-04-02 17:14:11
    答案在公众号:大数据私房菜 一.Hadoop 1.hdfs写流程 2.hdfs读流程 3.hdfs的体系结构 4.一个datanode 宕机,怎么一个流程恢复 5.hadoop 的 namenode 宕机,怎么解决 6.namenode对元数据的管理 7.元数据的checkpoint 8....

    答案在公众号:大数据私房菜

    一.Hadoop

    1.hdfs写流程

    2.hdfs读流程

    3.hdfs的体系结构

    4.一个datanode 宕机,怎么一个流程恢复

    5.hadoop 的 namenode 宕机,怎么解决

    6.namenode对元数据的管理

    7.元数据的checkpoint

    8.yarn资源调度流程 

    9.hadoop中combiner和partition的作用

    10.用mapreduce怎么处理数据倾斜问题?

    11.shuffle 阶段,你怎么理解的

    12.Mapreduce 的 map 数量 和 reduce 数量是由什么决定的 ,怎么配置

    13.MapReduce优化经验

    14.分别举例什么情况要使用 combiner,什么情况不使用?

    15.MR运行流程解析

    16.简单描述一下HDFS的系统架构,怎么保证数据安全?

    17.在通过客户端向hdfs中写数据的时候,如果某一台机器宕机了,会怎么处理

    18.Hadoop优化有哪些方面

    19.大量数据求topN(写出mapreduce的实现思路)

    20.列出正常工作的hadoop集群中hadoop都分别启动哪些进程以及他们的作用

    21.Hadoop总job和Tasks之间的区别是什么?

    22.Hadoop高可用HA模式

    23.简要描述安装配置一个hadoop集群的步骤

    24.fsimage和edit的区别

    25.yarn的三大调度策略

    26.hadoop的shell命令用的多吗?,说出一些常用的

    27.用mr实现用户pv的top10?

    28.一个文件只有一行,但是这行有100G大小,mr会不会切分,我们应该怎么解决

    29.hdfs HA机制,一台namenode宕机了,joualnode,namenode,edit.log   fsimage的变化

    二.Hive

    1.大表join小表产生的问题,怎么解决?

    2.udf udaf udtf区别

    3.hive有哪些保存元数据的方式,个有什么特点。

    4.hive内部表和外部表的区别

    5.生产环境中为什么建议使用外部表?

    6.insert into 和 override write区别?

    7.hive的判断函数有哪些

    8.简单描述一下HIVE的功能?用hive创建表几种方式?hive表有几种?

    9.线上业务每天产生的业务日志(压缩后>=3G),每天需要加载到hive的log表中,将每天产生的业务日志在压缩之后load到hive的log表时,最好使用的压缩算法是哪个,并说明其原因

    10.若在hive中建立分区仍不能优化查询效率,建表时如何优化

    11.union all和union的区别

    12.如何解决hive数据倾斜的问题

    13.hive性能优化常用的方法

    14.简述delete,drop,truncate的区别

    15.order by , sort by , distribute by , cluster by的区别

    16.Hive 里边字段的分隔符用的什么?为什么用\t?有遇到过字段里 边有\t 的情况吗,怎么处理的?为什么不用 Hive 默认的分隔符,默认的分隔符是什么?

    17.分区分桶的区别,为什么要分区

    18.mapjoin的原理

    19.在hive的row_number中distribute by 和 partition by的区别 

    20.hive开发中遇到什么问题?

    21.什么时候使用内部表,什么时候使用外部表

    22.hive都有哪些函数,你平常工作中用到哪些

    23.手写sql,连续活跃用户

    24.left semi join和left join区别

    25.group by为什么要排序

    26.说说印象最深的一次优化场景,hive常见的优化思路

    27.聊聊hive的执行引擎,spark和mr的区别?

    28.hive的join底层mr是如何实现的?

    29.sql问题,连续几天活跃的用户?

    30.建好了外部表,用什么语句把数据文件加载到表里

    31.Hive的执行流程?

    32.hive的元数据信息存储在哪?

    33.sql语句的执行顺序from-where-group by-having -select-order by -limit

    34.on和where的区别

    35.hive和传统数据库之间的区别

    36.hive中导入数据的4种方式

    37 下述sql在hive,sparksql两种执行引擎中,执行流程分别是什么,区别是什么?

    38.hive的执行计划有看过吗,你一般会关注哪几个点

    39.hive底层运行mr或者spark程序的时候语法树说一下

    三.Spark

    1.rdd的属性

    2.算子分为哪几类(RDD支持哪几种类型的操作)

    3.创建rdd的几种方式

    4.spark运行流程

    5.Spark中coalesce与repartition的区别

    6.sortBy 和 sortByKey的区别

    7.map和mapPartitions的区别

    8.数据存入Redis  优先使用map mapPartitions  foreach  foreachPartions哪个

    9.reduceByKey和groupBykey的区别

    10.cache和checkPoint的比较

    11.spark streaming流式统计单词数量代码

    12.简述map和flatMap的区别和应用场景

    13.计算曝光数和点击数

    14.分别列出几个常用的transformation和action算子

    15.按照需求使用spark编写以下程序,要求使用scala语言

    16.spark应用程序的执行命令是什么?

    17.Spark应用执行有哪些模式,其中哪几种是集群模式

    18.请说明spark中广播变量的用途

    19.以下代码会报错吗?如果会怎么解决 val arr = new ArrayList[String]; arr.foreach(println)

    20.写出你用过的spark中的算子,其中哪些会产生shuffle过程

    21.Spark中rdd与partition的区别

    22.请写出创建Dateset的几种方式

    23.描述一下RDD,DataFrame,DataSet的区别?

    24.描述一下Spark中stage是如何划分的?描述一下shuffle的概念

    25.Spark 在yarn上运行需要做哪些关键的配置工作?如何kill -个Spark在yarn运行中Application

    26.通常来说,Spark与MapReduce相比,Spark运行效率更高。请说明效率更高来源于Spark内置的哪些机制?请列举常见spark的运行模式?

    27.RDD中的数据在哪?

    28.如果对RDD进行cache操作后,数据在哪里?

    29.Spark中Partition的数量由什么决定

    30.Scala里面的函数和方法有什么区别

    31.SparkStreaming怎么进行监控?

    32.Spark判断Shuffle的依据?

    33.Scala有没有多继承?可以实现多继承么?

    34.Sparkstreaming和flink做实时处理的区别

    35.Sparkcontext的作用

    36.Sparkstreaming读取kafka数据为什么选择直连方式

    37.离线分析什么时候用sparkcore和sparksql

    38.Sparkstreaming实时的数据不丢失的问题

    39.简述宽依赖和窄依赖概念,groupByKey,reduceByKey,map,filter,union五种操作哪些会导致宽依赖,哪些会导致窄依赖

    40.数据倾斜可能会导致哪些问题,如何监控和排查,在设计之初,要考虑哪些来避免

    41.有一千万条短信,有重复,以文本文件的形式保存,一行一条数据,请用五分钟时间,找出重复出现最多的前10条

    42.现有一文件,格式如下,请用spark统计每个单词出现的次数

    43.共享变量和累加器

     44.当 Spark 涉及到数据库的操作时,如何减少 Spark 运行中的数据库连接数?

    45.特别大的数据,怎么发送到excutor中?

    46.spark调优都做过哪些方面?

    47.spark任务为什么会被yarn kill掉?

    48.Spark on Yarn作业执行流程?yarn-client和yarn-cluster有什么区别?

    49.Flatmap底层编码实现?

    50.spark_1.X与spark_2.X区别 

     51.说说spark与flink

    52.spark streaming如何保证7*24小时运行机制?

    53.spark streaming是Exactly-Once吗?

    四.Kafka

    1.Kafka名词解释和工作方式

    2.Consumer与topic关系

    3.kafka中生产数据的时候,如何保证写入的容错性?

    4.如何保证kafka消费者消费数据是全局有序的

    5.有两个数据源,一个记录的是广告投放给用户的日志,一个记录用户访问日志,另外还有一个固定的用户基础表记录用户基本信息(比如学历,年龄等等)。现在要分析广告投放对与哪类用户更有效,请采用熟悉的技术描述解决思路。另外如果两个数据源都是实时数据源(比如来自kafka),他们数据在时间上相差5分钟,需要哪些调整来解决实时分析问题?

    6.Kafka和SparkStreaing如何集成?

    7.列举Kafka的优点,简述Kafka为什么可以做到每秒数十万甚至上百万消息的高效分发?

    8.为什么离线分析要用kafka?

    9.Kafka怎么进行监控?

    10.Kafka与传统的消息队列服务有很么不同

    11.Kafka api  low-level与high-level有什么区别,使用low-level需要处理哪些细节

    12.Kafka的ISR副本同步队列

    13.Kafka消息数据积压,Kafka消费能力不足怎么处理?

    14.Kafka中的ISR、AR又代表什么?

    15.Kafka中的HW、LEO等分别代表什么?

    16.哪些情景会造成消息漏消费?

    17.当你使用kafka-topics.sh创建了一个topic之后,Kafka背后会执行什么逻辑?

    18.topic的分区数可不可以增加?如果可以怎么增加?如果不可以,那又是为什么?

    19.topic的分区数可不可以减少?如果可以怎么减少?如果不可以,那又是为什么?

    20.Kafka有内部的topic吗?如果有是什么?有什么所用?

    21.聊一聊Kafka Controller的作用?

    22.失效副本是指什么?有那些应对措施?

    23.Kafka 都有哪些特点?

    24.请简述下你在哪些场景下会选择 Kafka?

    25.Kafka 的设计架构你知道吗?

    26.Kafka 分区的目的?

    27.你知道 Kafka 是如何做到消息的有序性?

    28.Kafka 的高可靠性是怎么实现的?

    29.请谈一谈 Kafka 数据一致性原理

    30.ISR、OSR、AR 是什么?

    31.LEO、HW、LSO、LW等分别代表什么

    32.Kafka 在什么情况下会出现消息丢失?

    33.怎么尽可能保证 Kafka 的可靠性

    34.消费者和消费者组有什么关系?

    35.Kafka 的每个分区只能被一个消费者线程,如何做到多个线程同时消费一          个分区?

    36.数据传输的事务有几种?

    37.Kafka 消费者是否可以消费指定分区消息?

    38.Kafka消息是采用Pull模式,还是Push模式?

    39.Kafka 消息格式的演变清楚吗?

    40.Kafka 偏移量的演变清楚吗?

    41.Kafka 高效文件存储设计特点

    42.Kafka创建Topic时如何将分区放置到不同的Broker中

    43.Kafka新建的分区会在哪个目录下创建

    44.谈一谈 Kafka 的再均衡

    45.谈谈 Kafka 分区分配策略

    46.Kafka Producer 是如何动态感知主题分区数变化的?

    47.Kafka 是如何实现高吞吐率的?

    48.Kafka 监控都有哪些?

    49.如何为Kafka集群选择合适的Topics/Partitions数量

    50.谈谈你对 Kafka 事务的了解?

    51.谈谈你对 Kafka 幂等的了解?

    52.Kafka 缺点?

    53.Kafka 新旧消费者的区别

    54.Kafka 分区数可以增加或减少吗?为什么?

     55.kafka消息的存储机制

    56.相比较于传统消息队列,kafka的区别

    57.消息丢失和消息重复

    五.Hbase

    1.Hbase调优

    2.hbase的rowkey怎么创建好?列族怎么创建比较好?

    3.hbase过滤器实现用途

    4.HBase宕机如何处理

    5.hive跟hbase的区别是?

    6.hbase写流程

    7.hbase读流程

    8.hbase数据flush过程

    9.数据合并过程

    10.Hmaster和Hgionserver职责

    11.HBase列族和region的关系?

    12.请简述Hbase的物理模型是什么

    13.请问如果使用Hbase做即席查询,如何设计二级索引

    14.如何避免读、写HBaes时访问热点问题?

    15.布隆过滤器在HBASE中的应用

    16.Hbase是用来干嘛的?什么样的数据会放到hbase

    17.Hbase在建表时的设计原则(注意事项)

    18.Hbase中的region server发生故障后的处理方法(zk-->WAL)

    19.用phenix和es作为hbase二级索引的区别,最新的hbase已经支持二级索引了,你清楚吗?

    六.数仓

    1.维表和宽表的考查(主要考察维表的使用及维度退化手法)

    2.数仓表命名规范

    3.拉链表的使用场景

    4.数据库和数据仓库有什么区别

    5.有什么维表

    6.数据源都有哪些

    7.你们最大的表是什么表,数据量多少

    8.数仓架构体系

    9.数据平台是怎样的,用到了阿里的那一套吗?

    10.你了解的调度系统有那些?,你们公司用的是哪种调度系统

    11.你们公司数仓底层是怎么抽数据的?

    12.为什么datax抽数据要比sqoop 快?

    13.埋点数据你们是怎样接入的

    14.如果你们业务库的表有更新,你们数仓怎么处理的?

    15.能独立搭建数仓吗

    16.搭建过CDH 集群吗

    17.说一下你们公司的大数据平台架构?你有参与吗?

    18.介绍一下你自己的项目和所用的技术

    19.对目前的流和批处理的认识?就是谈谈自己的感受

    20.你了解那些OLAP 引擎,MPP 知道一些吗?clickHouse 了解一些吗?你自己做过测试性能吗?

    21.Kylin 有了解吗?介绍一下原理

    22.datax 源码有改造过吗

    23.你们数仓的APP 层是怎么对外提供服务的?

    24.数据接入进来,你们是怎样规划的,有考虑数据的膨胀问题吗

    25.简述拉链表,流水表以及快照表的含义和特点

    26.全量表(df),增量表(di),追加表(da),拉链表(dz)的区别及使用场景

    27.你们公司的数仓分层,每一层是怎么处理数据的

    28.什么是事实表,什么是维表

    29.星型模型和雪花模型

    30.缓慢变化维如何处理,几种方式

    31.datax与sqoop的优缺点

    32.datax抽数碰到emoji表情怎么解决

    33.工作中碰到什么困难,怎么解决的

    34.如何用数据给公司带来收益

    35.需求驱动和业务驱动,数据开发和ETL开发,实战型和博客型

    36.如何用数据实现业务增长?

    37.什么是大数据?千万级别的数据完全可以用传统的关系型数据库集群解决,为什么要用到大数据平台。

    38.数据质量,元数据管理,指标体系建设,数据驱动

    39.什么是数仓,建设数仓时碰到过什么问题

    40.实时数仓技术选型及保证exactly-once

    41.维度建模和范式建模的区别;

    42.埋点的码表如何设计;

    43.集市层和公共层的区别;

    44.缓慢变化维的处理方式

    45.聊聊数据质量

    46.说说你从0-1搭建数仓都做了什么?你觉得最有挑战的是什么?

    47.数据模型如何构建,星型、雪花、星座的区别和工作中如何使用;

    48.如何优化整个数仓的执行时长,比如7点所有任务跑完,如何优化到5点;

    49.数据倾斜,遇到哪些倾斜,怎么发现的?怎么处理的?;

    50.如何保证数据质量;

    51.如何保证指标一致性;

    52.了解onedata吗,说说你的理解;

    53.数据漂移如何解决;

    54.实时场景如何解决的;

    55.拉链表如何设计,拉链表出现数据回滚的需求怎么解决。

    56.平台选型依据;

    57.数仓分层、模型、每层都是做什么的?为什么这么做?

    58.交叉维度的解决方案?

    59.数据质量如何保证(DQC)?

    60.任务延迟如何优化(SLA)?

    61.聊一下数据资产。

    62.如果让你设计实时数仓你会如何设计,为什么?

    63.指标如何定义?

    64.sql问题:连续活跃n天用户的获取;

    65.数据倾斜的sql如何优化;数据量大的sql如何优化?

    66.数据仓库主题的划分,参考Teradata的LDM模型;

    67.Kimball和Inmon的相同和不同;

    68.数据质量管理、数据治理有什么好的方案?知识库管理有什么好的思路?血缘关系图。

    69.元数据管理相关问题,集群存储不够了,需要清理不需要的任务和数据该怎么做?

    70.业务库2亿数据入仓的策略,一次全量,之后每次增量;

    71.什么场景会出现数据倾斜,怎么解决?比如select user_id,count(1) from table group by user_id,其中某些user_id的访问量很大,查询不出结果该怎么办?

    72.sql里面on和where有区别吗? 

    73.聊一下技术架构,整个项目每个环节用的什么技术这个样子;

    74.hive、hbase、spark。。。。这些大数据组件,熟悉哪个或者哪些?我说hive和hbase,对方就问hive和hbase的原理,差异等问题;

    75.有没有实时数仓的经验,数据实时入仓思路,canal;

    76.你对当前的项目组有没有什么自己的看法、意见或者需要改进的地方,这个改进对你有没有什么影响

    77.ods的增量能否做成通用的?

    78.公共层和数据集市层的区别和特点?

    79.从原理上说一下mpp和mr的区别

    80.对了中间还有问数仓数据的输出主要是哪些还有数仓的分层;

    81.报表如何展示

    82.数据源,怎么同步,同步时对业务库的性能影响,同步后怎么处理,使用方式谁,怎么使用

    83.你们数仓怎么分层的以及各层主要做了什么

    84.你们主题是怎么划分的,举个例子

    85.如何判断一个模型的好坏

    86.你们需求的开发流程是什么样的

    七.Flink

    1.Flink实时计算时落磁盘吗

    2.日活DAU的统计需要注意什么

    3.Flink调优

    4.Flink的容错是怎么做的

    5.Parquet格式的好处?什么时候读的快什么时候读的慢

    6.flink中checkPoint为什么状态有保存在内存中这样的机制?为什么要开启checkPoint?

    7.flink保证Exactly_Once的原理?

    8.flink的时间形式和窗口形式有几种?有什么区别,你们用在什么场景下的?

    9.flink的背压说下?

    10.flink的watermark机制说下,以及怎么解决数据乱序的问题?

    11.flink on yarn执行流程

    12.说一说spark 和flink 的区别 

    13.flink双流join

    14.flink任务提交方式

    15.slot资源分配规划

    16.flink消费kafka发生partition数变更,flink底层是不是reblance

    17.checkpoint原理

    18.checkpoint barrier对齐原理,非对齐checkpoint原理

    19.checkpoint失败的场景

    20.flink两段提交原理

    21.flink背压的底层原理

    22.onTimer同state并发操作的安全问题

    23.flink kafkaConsumer源码

    24.看过哪些flink源码

    八.Java

    1.hashMap底层源码,数据结构

    2.写出你用过的设计模式,并举例说明解决的实际问题

    3.Java创建线程的几种方式

    4.请简述操作系统的线程和进程的区别

    5.Java程序出现OutOfMemoryError:unable to create new native thread 的原因可能有哪些?如何分析和解决?

    6.采用java或自己熟悉的任何语言分别实现简单版本的线性表和链表,只需实现add,remove方法即可

    7.ArrayList和LinkedList的区别

    8.JVM 内存分哪几个区,每个区的作用是什么?

    9.Java中迭代器和集合的区别?

    10.HashMap 和 HashTable 区别

    11.线程池使用注意哪些方面?

    12.HashMap和TreeMap的区别?TreeMap排序规则?

    13.用java实现单例模式

    14.使用递归算法求n的阶乘:n! ,语言不限

    15.HashMap和Hashtable的区别是什么

    16.TreeSet 和 HashSet 区别

    17.Stringbuffer 和 Stringbuild 区别

    18.Final、Finally、Finalize

    19..==和 Equals 区别

    20.比较ArrayList,LinkedList的存储特性和读写性能

    21.Java 类加载过程

    22.java中垃圾收集的方法有哪些?

    23.如何判断一个对象是否存活?(或者GC对象的判定方法)

    24.jvm、堆栈

    25.java基本数据类型

    26.spring AOP应用场景

    27.分布式锁的几种实现方式

    28.两个数 a=3,b=5,如何不使用中间变量不使用函数情况下调换他们

    九.Elasticsearch

    1.为什么要用es?存进es的数据是什么格式的,怎么查询

    十.Flume

    1.什么是flume

    2.flume运行机制

    3.Flume采集数据到Kafka中丢数据怎么办

    4.Flume怎么进行监控?

    5.Flume的三层架构,collector、agent、storage

    十一.Sqoop

    1.Sqoop底层运行的任务是什么

    2.sqoop的迁移数据的原理

    3.Sqoop参数

    4.Sqoop导入导出Null存储一致性问题

    5.Sqoop数据导出一致性问题

    6.通过sqoop把数据加载到mysql中,如何设置主键?

    十二.Redis

    1.缓存穿透、缓存雪崩、缓存击穿

    2.数据类型

    3.持久化

    4.悲观锁和乐观锁

    5.redis 是单线程的,为什么那么快

    6.redis的热键问题?怎么解决?

    十三.Mysql

    1.请写出mysql登录命令,用户名user,密码123456,地址192.168.1.130

    2.为什么MySQL的索引要使用B+树而不是其它树形结构?比如B树?

    十四.数据结构与算法

    1.二分查找

    2.快排

    3.归并排序

    4.冒泡排序

    5.字符串反转

    6.Btree简单讲一下

    7.动态规划 最大连续子序列和

    8.二叉树概念,特点及代码实现

    9.链表

    10.算法题:两数之和

    十五.Linux

    1.怎么查看用户组

    2.怎么修改文件权限

    3.常用的命令有哪些

    4.怎么修改文本文件第一行字符

    5.查看内存

    6.查看磁盘存储情况

    7.查看磁盘IO读写(yum install iotop安装)

    8.直接查看比较高的磁盘读写程序

    9.查看端口占用情况

    10.查看报告系统运行时长及平均负载

    11.查看进程

    展开全文
  • 大数据面试题整理,有道云笔记版以及pdf版,有道云笔记直接导入即可查看,认真整理了部分面试题,还有一些参考链接在里面,根据需要再自行查看 今日更新,增加了题目分类,方便查看
  • 大数据面试
  • 大数据
  • 针对我们大数据 ,云计算, 所有用的到的面试题,包含近几年公司用到过的面试题,大家可以借鉴一下,百度,腾讯,阿里公司都用到过的面试题
  • 又到了金三银四的招聘旺季,很多想入行大数据开发的程序员却在面试上发了愁。大数据方向技术栈繁多,不同的面试官和公司用到的技术栈也不一样,问的问题也是各有不同。大厂面试题回忆:【腾讯PCG事...

    又到了金三银四的招聘旺季,很多想入行大数据开发的程序员却在面试上发了愁。大数据方向技术栈繁多,不同的面试官和公司用到的技术栈也不一样,问的问题也是各有不同。

    大厂面试题回忆: 

    【腾讯PCG事业部 大数据开发岗】 

    1. spark数据分发机制 

    2. Spark Streaming给个具体视频应用场景阐述开发思路及任务架构 

    【阿里创新业务事业群 大数据开发工程师】 

    1. spark partition的类型及特点 

    2. yarn任务启动的具体流程 

    3. spark任务分发机制

    为了帮助想要入行大数据开发的程序员们在金三银四顺利挺进大厂,我们研究了各个大厂的面试题型,整理出出这「 100 道大数据开发高频面试题+详细解答

    (篇幅有限,此处仅展示部分大纲,扫码获取更多)

     如何领取?

     

    扫描????海报二维码即可免费领取

    「大数据开发面试必备 100 题」


    展开全文
  • 收集整理了2018BAT大数据相关的面试题,供大家参考查看,如果因版本内容有差异,请及时联系我下架资源,谢谢。
  • 大数据面试题,大数据成神之路开启...Flink/Spark/Hadoop/Hbase/Hive... 已经更新100+篇~ 关注公众号~ 大数据成神之路目录 大数据开发基础篇 :skis: Java基础 :memo: NIO :open_book: 并发 :...
  • java面试题_大数据(3题)
  • 15道经典大数据面试题

    千次阅读 2021-11-25 05:09:32
    写一个算法:删除排序链表中的重复元素_II Leetcode83 答案解析 1自我介绍+项目介绍 一般自我介绍 3 分钟,开头为: 面试官你好,我叫 xxx ,目前在 xxx 公司担任大数据开发工程师,组内专注于 xxx 技术,在任职...
  • 一线大厂大数据面试真题解析
  • 1. Spark面试题.pdf 2. Hive面试题.pdf 3. HBase 面试题.pdf 4. Flink面试题.pdf 5. ZooKeeper 面试题.pdf ...12. 网易大数据面试题.pdf 13. 美团大数据面试题.pdf 14. 京东大数据面试题 .pdf 15. 腾讯大数据面经.pdf
  • 当今时代,跳槽确实是大部分人升职加薪最快的方式,特别是职业生涯初期。说起来也是很无奈,公司经常是宁愿花更多的钱来请个新人也不愿意加薪留住老人。面试了 N 多公司之后,我发现其实问来问去也...
  • 2020年大数据面试题

    2020-12-30 15:53:59
    2020年大数据面试题,比较适合初学者学习和复习时使用,希望能对读者的学习和面试起到正面作用。
  • 如今这个数字化时代,需求大薪资高的,依然非大数据工程师莫属。我跟不少行业大佬聊过,他们纷纷表示,大数据现在依然处在非常强的爆发期,依然是“黄金时代”!这里有两个关键趋势:一是实时化,从传统的T+1数仓到...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,189
精华内容 16,875
关键字:

大数据面试题2021

友情链接: ODBCRWExcel.rar