热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2020Java面试大数据常见面试题+参考答案总结

技术面试题1.Hadoop中有哪些组件?Hadoop=HDFS+Yarn+MapReduce+Hive+Hbase+…1).HDFS:分布式文件存储系统主:namenode,sec

技术面试题

1.Hadoop中有哪些组件?

Hadoop=HDFS+Yarn+MapReduce+Hive+Hbase+…

1).HDFS:分布式文件存储系统



  • 主:namenode,secondarynamenode

  • 从:datanode

2).Yarn:分布式资源管理系统,用于同一管理集群中的资源(内存等)



  • 主:ResourceManager

  • 从:NodeManager

3).MapReduce:Hadoop的计算框架,用map和reduce方式实现数据的全局汇总

4).Zookeeper:分布式协调服务,用于维护集群配置的一致性、任务提交的事物性、集群中服务的地址管理、集群管理等



  • 主:QuorumPeerMain

  • 从:QuorumPeerMain

5).Hbase:Hadoop下的分布式数据库,类似于NoSQL



  • 主:HMaster,HRegionserver,Region

7).Hive:分布式数据仓库,其实说白了就是一个数据分析工具,底层用的还是MapReduce

8).Sqoop:用于将传统数据库中数据导入到hbase或者Hdfs中一个导入工具

9).Spark:基于内存的分布式处理框架



  • 主:Master

  • 从:Worker

2.Hdfs中角色有哪些?



  • NameNode:管理元数据信息,给子节点分配任务(FSImage是主节点启动时对整个文件系统的快照,Edits是修改记录)

  • DataNode:负责数据存储,实时上报心跳给主节点

  • SecondaryNameNode:

1)首先,它定时到NameNode去获取edit logs,并更新到fsimage上。一旦它有了新的fsimage文件,它将其拷贝回NameNode中。

2) NameNode在下次重启时会使用这个新的fsimage文件,从而减少重启的时间。

3.Hdfs和Yarn有什么区别?

1)Hdfs是分布式文件存储系统,是用来存储文件的;

2)Yarn是一个资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和 数据共享等方面带来了巨大好处

4.MapReduce的shuffle过程?

从Map产生输出开始到Reduce取得数据作为输入之前的过程称作shuffle。

1).Collect阶段:将MapTask的结果输出到默认大小为100M的环形缓冲区,保存的是key/value,Partition分区信息等。

2).Spill阶段:当内存中的数据量达到一定的阀值的时候,就会将数据写入本地磁盘,在将数据写入磁盘之前需要对数据 进行一次排序的操作,如果配置了combiner,还会将有相同分区号和key的数据进行排序。

3).Merge阶段:把所有溢出的临时文件进行一次合并操作,以确保一个MapTask最终只产生一个中间数据文件。

4).Copy阶段:ReduceTask启动Fetcher线程到已经完成MapTask的节点上复制一份属于自己的数据,这些数据默认会 保存在内存的缓冲区中,当内存的缓冲区达到一定的阀值的时候,就会将数据写到磁盘之上。

5).Merge阶段:在ReduceTask远程复制数据的同时,会在后台开启两个线程对内存到本地的数据文件进行合并操作。

6).Sort阶段:在对数据进行合并的同时,会进行排序操作,由于MapTask阶段已经对数据进行了局部的排序, ReduceTask只需保证Copy的数据的最终整体有效性即可。

5.MapReduce的Partition和Combine有什么区别?



  • combine分为map端和reduce端,作用是把同一个key的键值对合并在一起,可以自定义,该类的主要功能是合并相同的key键

  • partition是分割map每个节点的结果,按照key分别映射给不同的reduce,也是可以自定义的,partition的作用就是把这些数据归类

6.Hadoop的高可用模式说一下?

7.Zookeeper在Hadoop中的作用?

1)Zookeepe主要用来解决分布式应用中经常遇到的数据管理问题,如集群管理、统一命名服务、分布式配置管理、 分布式消息队列、分布式锁、分布式协调等。

2)Zookeeper是一个由多个server组成的集群,一个leader,多个follower,每个server保存一份数据副本,全局数据 一致、分布式读写,更新请求转发,由leader实施。

8.Sqoop的底层原理?

是用来实现结构型数据(如关系数据库)和Hadoop之间进行数据迁移的工具。它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,同时也借助MapReduce实现了容错

9.Sqoop是怎么连接的关系型数据库?

sqoop import-all-tables –connect jdbc:mysql://192.168.52.110/hivemetadb --username root -password root

10.Java中抽象类怎么理解?

抽象类不能实例化,继承的关键字仍然是extends,而且继承过后可以不覆盖方法,只是使用继承而来的方法

A:抽象类和抽象方法必须用abstract关键字修饰;

B:抽象类中不一定有抽象方法,但是有抽象方法的类必须定义为抽象类;

C:抽象类不能直接实例化;(可以通过子类(重写方法后的子类)的多态方式实例化);



  • 它不是具体的;

  • 抽象类有构造方法,用于子类访问父类数据的初始化;

D:抽象类的子类;



  • 如果不想重写抽象方法,该子类必须是抽象类;

  • 成为具体类则必须重写所有的抽象方法;

由于篇幅有限,只展示了一部分,需要完整版的朋友可以点一点下方链接免费领取!


链接:1103806531暗号:CSDN



项目面试题

1.大概介绍一下项目;

2.hbase表你们是怎么存数据的?一天数据量是多少?这么多数据你们都存hbase里吗?一开始就是个文件,hbase是表结构,那你是怎么去获取数据然后给存成表结构的?

3.假如现在我要查询每个月的每个片区里订单成交量最高的那个司机ID,你怎么实现?

4.hive怎么读取数据的?我要只存里边我需要的数据,你给我想下怎么优化?

5.你都用过哪些ETL工具?怎么用的?就像flume是怎么获取数据的,你怎么配置的?那kafka怎么读取数据的?hive是直接从kafka里获取数据吗?

6.你建过外表吗?怎么建的?为什么要建外表?

7.你会写shell吗?写过哪些?

8.你应该也经常用linux命令吧,都用过哪些?我现在要查所有后缀是.txt的文件名,怎么查?grep用过吗?

9.我现在不想查司机,我想查订单,怎么去设计hbase表?


总结

我这边也整理了一份 架构师全套视频教程 和关于java的系统化资料,包括java核心知识点、面试专题和20年最新的互联网真题、电子书等都有。有需要的朋友可以点一点下方链接免费领取!

链接:1103806531暗号:CSDN


本文地址:https://blog.csdn.net/XingXing_Java/article/details/108869452



推荐阅读
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在使用达梦数据库时,管理员可能会遇到连接频繁中断或特定SQL语句语法错误的问题。这些问题通常源于开发人员在创建对象时的不规范操作。为了解决这些问题,建议对数据库配置进行优化,并确保所有SQL语句符合达梦数据库的标准语法。此外,定期检查和维护数据库连接参数,以及对异常日志进行详细分析,也有助于及时发现并解决问题。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文详细介绍了使用 Python 进行 MySQL 和 Redis 数据库操作的实战技巧。首先,针对 MySQL 数据库,通过 `pymysql` 模块展示了如何连接和操作数据库,包括建立连接、执行查询和更新等常见操作。接着,文章深入探讨了 Redis 的基本命令和高级功能,如键值存储、列表操作和事务处理。此外,还提供了多个实际案例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • MySQL索引详解及其优化策略
    本文详细解析了MySQL索引的概念、数据结构及管理方法,并探讨了如何正确使用索引以提升查询性能。文章还深入讲解了联合索引与覆盖索引的应用场景,以及它们在优化数据库性能中的重要作用。此外,通过实例分析,进一步阐述了索引在高读写比系统中的必要性和优势。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 技术日志:深入探讨Spark Streaming与Spark SQL的融合应用
    技术日志:深入探讨Spark Streaming与Spark SQL的融合应用 ... [详细]
author-avatar
与人无缘-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有