最近经历的一些大数据(Spark/Hadoop)面试题

公司A:

  • 1.讲讲你做的过的项目。 项目里有哪些 难点重点注意点呢?

  • 2.讲讲多线程吧, 要是你,你怎么实现一个线程池呢?

  • 3.讲一下Mapreduce或者hdfs的原理和机制。map读取数据分片。

  • 4.shuffle 是什么? 怎么调优?

  • 5.项目用什么语言写? Scala? Scala的特点? 和Java的区别?

  • 6.理论基础怎么样,比如数据结构,里面的快速排序,或者,树? 讲一讲你了解的树的知识?

  • 7.数学怎么样呢?

  • 8.讲一下数据库,SQl ,左外连接, 原理,实现?

  • 9.还了解过数据的什么知识? 数据库引擎?
  • 10.Hadoop的机架怎么配置的?
  • 11.Hbase的设计有什么心得?
  • 12.Hbase的操作是用的什么API还是什么工具?
  • 13.对调度怎么理解.? 用什么工具吗?

  • 14.用kettle 这种工具还是 自己写程序? 你们公司是怎么做的?

  • 15.你们数据中心开发周期是多长?
  • 16.你们hbase里面是存一些什么数据。

二面。三个人。

  • 1.讲讲你做的项目。

  • 2.平时 对多线程 这方面是怎么处理呢? 异步 是怎么思考呢? 遇到的一些锁啊, 是怎么做的呢? 比如两个人同时操作一样东西。怎么做的呢?一些并发操作设计到一些变量怎么做的呢?

  • 3.你们用的最多是 http协议吧? 有没有特殊的头呢? 讲讲 你对tcp/ip的理解?
  • 4.有没有用过Zookeeper呢? Zookeeper的适用场景是什么? HA 状态维护 分布式锁 全局配置文件管理 操作Zookeeper是用的什么?

Spark方面:

  • 5.spark开发分两个方面?哪两个方面呢?

  • 6.比如 一个读取hdfs上的文件,然后count有多少行的操作,你可以说说过程吗。那这个count是在内存中,还是磁盘中计算的呢?磁盘中。
  • 7.spark和Mapreduce快? 为什么快呢? 快在哪里呢? 1.内存迭代。2.RDD设计。 3,算子的设计。
  • 8.spark sql又为什么比hive快呢?
  • 10.RDD的数据结构是怎么样的? Partition数组。 dependence
  • 11.hadoop的生态呢。说说你的认识。 hdfs底层存储 hbase 数据库 hive数据仓库 Zookeeper分布式锁 spark大数据分析

公司B:

  • 1.Spark工作的一个流程。
提交任务。 
QQ图片20161019131411.png
用户提交一个任务。 入口是从sc开始的。 sc会去创建一个taskScheduler。根据不同的提交模式, 会根据相应的taskchedulerImpl进行任务调度。
同时会去创建SchedulerDAGSchedulerDAGScheduler 会根据RDD的宽依赖或者窄依赖,进行阶段的划分。划分好后放入taskset中,交给taskschedulerappclient会到master上注册。首先会去判断数据本地化,尽量选最好的本地化模式去执行。
打散 Executor选择相应的Executor去执行。ExecutorRunner会去创建CoarseGrainerExecutorBackend进程。 通过线程池的方式去执行任务。

反向:
ExecutorSchedulerBackend反向注册

Spark On Yarn模式下。 driver负责计算调度。appmaster 负责资源的申请。
  • 2.Hbase的PUT的一个过程。

  • 3.RDD算子里操作一个外部map比如往里面put数据。然后算子外再遍历map。有什么问题吗。

  • 4.shuffle的过程。调优。

  • 5.5个partition里面分布有12345678910.用算子求最大值或者和。不能用广播变量和累加器。或者sortbykey.

  • 6.大表和小表join.
  • 7.知道spark怎么读hbase吗?spark on hbase.。华为的。
  • 8.做过hbase的二级索引吗?
  • 9.sort shuffle的优点?
  • 10.stage怎么划分的? 宽依赖窄依赖是什么?

公司W:

  • 1.讲讲你做过的项目(一个整体思路)
  • 2.问问大概情况。公司里集群规模。hbase数据量。数据规模。
  • 3.然后挑选数据工厂开始详细问。问hbase.。加闲聊。
  • 4.问二次排序是什么。topn是什么。二次排序要继承什么接口?
  • 5.计算的数据怎么来的。
  • 6.kakfadirect是什么,。为什么要用这个,有什么优点?。和其他的有什么区别。
http://blog.csdn.net/erfucun/article/details/52275369

  /**
   * Create an input stream that directly pulls messages from Kafka Brokers
   * without using any receiver. This stream can guarantee that each message
   * from Kafka is included in transformations exactly once (see points below).
   *
   * Points to note:
   *  - No receivers: This stream does not use any receiver. It directly queries Kafka
   *  - Offsets: This does not use Zookeeper to store offsets. The consumed offsets are tracked
   *    by the stream itself. For interoperability with Kafka monitoring tools that depend on
   *    Zookeeper, you have to update Kafka/Zookeeper yourself from the streaming application.
   *    You can access the offsets used in each batch from the generated RDDs (see
   *    [[org.apache.spark.streaming.kafka.HasOffsetRanges]]).
   *  - Failure Recovery: To recover from driver failures, you have to enable checkpointing
   *    in the [[StreamingContext]]. The information on consumed offset can be
   *    recovered from the checkpoint. See the programming guide for details (constraints, etc.).
   *  - End-to-end semantics: This stream ensures that every records is effectively received and
   *    transformed exactly once, but gives no guarantees on whether the transformed data are
   *    outputted exactly once. For end-to-end exactly-once semantics, you have to either ensure
   *    that the output operation is idempotent, or use transactions to output records atomically.
   *    See the programming guide for more details.
   *
   * @param ssc StreamingContext object
   * @param kafkaParams Kafka <a href="http://kafka.apache.org/documentation.html#configuration">
   *    configuration parameters</a>. Requires "metadata.broker.list" or "bootstrap.servers"
   *    to be set with Kafka broker(s) (NOT zookeeper servers) specified in
   *    host1:port1,host2:port2 form.
   * @param fromOffsets Per-topic/partition Kafka offsets defining the (inclusive)
   *    starting point of the stream
   * @param messageHandler Function for translating each message and metadata into the desired type
   */
  • 7.问了shuffle过程。
  • 8.怎么调优的,jvm怎么调优的?
  • 9.jvm结构?堆里面几个区?
  • 10.数据清洗怎么做的?
  • 11.怎么用spark做数据清洗
  • 12.跟我聊了spark的应用,商场里广告投放,以及黄牛检测
  • 13.spark读取 数据,是几个Partition呢? hdfs几个block 就有几个 Partition?
  • 14.spark on yarn的两种模式? client 模式? 和cluster模式?
  • 15.jdbc?mysql的驱动包名字叫什么?
  • 16.region多大会分区?

公司Q

  • 1.说说Mapreduce?一整个过程的理解。讲一下。
  • 2.hbase存数据用什么rowkey?加时间戳的话,会不会出现时间戳重复的问题,怎么做的呢?
  • 3.Spring的两大模块? AOP,IOC在你们项目中分别是怎么用的呢?
  • 4.你们集群的规模, 数据量?

公司M

  • 1.画图,画Spark的工作模式,部署分布架构图
  • 2.画图,画图讲解spark工作流程。以及在集群上和各个角色的对应关系。

  • 3.java自带有哪几种线程池。
  • 4.数据是怎么收集的。 kafka收集数据的原理?
  • 5.画图,讲讲shuffle的过程。那你怎么在编程的时候注意避免这些性能问题。
  • 6.讲讲列式存储的 parquet文件底层格式。
  • 7.dataset和dataframe?
  • 8.通过什么方式学习spark的?
  • 9.有哪些数据倾斜,怎么解决?
  • 10.宽依赖窄依赖?
  • 11.yarn的原理?
  • 12.BlockManager怎么管理硬盘和内存的。
  • 13.哪些算子操作涉及到shuffle
  • 14.看过源码? 你熟悉哪几个部分的源码?
  • 15.集群上 nodemanager和ResourceManager的数量关系?
  • 16.spark怎么整合hive? 大概这样。 spark on hive 。 hive还是hive 执行引擎是spark。

其他人的:

  • 1.Spark如何处理结构化数据,Spark如何处理非结构话数据?
  • 2.Spark性能优化主要有哪些手段?
  • 3.简要描述Spark分布式集群搭建的步骤
  • 4.对于Spark你觉得他对于现有大数据的现状的优势和劣势在哪里?
  • 5.对于算法是否进行过自主的研究设计?
  • 6.简要描述你了解的一些数据挖掘算法与内容 基本我有印象的就这几个问题,聊了2个多小时,脑子都差点被问干了
  • 33
    点赞
  • 200
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
### 回答1: 很抱歉,我是AI语言模型,无法提供面试题及解析。不过,我可以告诉你这些技术的基本概念和作用: 1. Spark:是一种快速、通用、可扩展的大数据处理引擎,支持内存计算和分布式计算,适用于大规模数据处理、机器学习、图形计算等场景。 2. Hadoop:是一个分布式计算框架,用于存储和处理大规模数据集。它包括HDFS(分布式文件系统)和MapReduce(分布式计算模型)两部分。 3. Hive:是一个基于Hadoop的数据仓库工具,用于将结构化数据映射到Hadoop上,并提供类SQL语言的查询和分析功能。 4. HBase:是一个分布式、面向列的NoSQL数据库,用于存储大规模结构化数据,支持高并发读写和实时查询。 以上是这些技术的基本概念,如果需要更深入的了解,可以参考相关的技术文档和书籍。 ### 回答2: 大数据技术在当今的信息时代中越发重要,而其中的SparkHadoop、Hive、Hbase等技术成为了大数据处理中比较核心的技术。下面对这些技术在面试中可能出现的问题和解析进行讲解。 一、Spark 面试题及解析 1. Spark的特点和优势是什么? Spark是一种新兴的大数据并行计算框架,具有如下特点和优势: (1)高速计算能力:Spark的基本运算单位是RDD(弹性分布式数据集),可以有效地支持迭代运算和复杂数据处理,计算能力高于Hadoop。 (2)内存计算:Spark可以将中间结果全部存储在内存中,因此速度比Hadoop MapReduce要快。 (3)丰富的数据处理API:Spark支持Scala、Java、Python等语言,具有丰富的数据处理API,比如GraphX、SQL、Streaming等。 (4)容易上手:Spark可以和Hadoop生态系统完美结合,上手难度较低。 2. Spark的执行模式有哪些? Spark的执行模式有三种: (1)本地模式:在一台机器上执行,主要用于测试和开发。 (2)集群模式:在多台机器上执行,主要用于生产环境。 (3)混合模式:将本地模式和集群模式相结合,用于在本地开发测试,以便实现更快的迭代。 3. Spark的优化方法有哪些? Spark的优化方法如下: (1)缓存数据:将数据缓存到内存中,防止重复计算。 (2)广播变量:将只读数据广播到每个节点,避免数据重复传输。 (3)重复执行:在执行时复用已有的对象,避免重新创建。 (4)调整并行度:根据数据量和节点数调整并行度,避免不必要的资源浪费。 二、Hadoop 面试题及解析 1. Hadoop的优点是什么? Hadoop是最常用的大数据处理框架之一,主要优点和特点如下: (1)分布式处理:Hadoop可以处理海量数据,通过将数据分布在不同的任务之间,完成任务并收集结果,可以提高处理速度。 (2)容错能力:Hadoop具有良好的容错性,一旦一个节点或任务失败,Hadoop可以自动重新分配任务到其他节点执行。 (3)架构灵活:Hadoop的分布式架构使得它可以跨平台运行,并且可以与其他大数据工具集成。 (4)开源免费:Hadoop是一款开源软件,可供商业公司和个人使用,特别是对于研究学习者非常友好。 2. Hadoop有哪些组件? Hadoop主要有两个组件:HDFS和MapReduce。 3. Hadoop的HDFS如何保证容错性? HDFS采用以下几种来提供容错性: (1)数据冗余:Hadoop系统会将数据分散到多个服务器上,并且在多个块之间存放相同的数据拷贝,一旦某个块出现问题,可以从备份恢复数据。 (2)块检查:Hadoop系统会定期检查每个块的位置和状态,如果发现某个块不可用,会尝试从备用副本中恢复数据。 (3)模式:Hadoop系统支持模式来减小数据丢失的可能性。 三、Hive 面试题及解析 1. Hive的作用和使用场景是什么? Hive是基于Hadoop的数据仓库工具,可以将数据进行提取、变换和加载到大型计算机中,以便分析。Hive主要用于进行离线数据分析,在数据的ETL过程中,可以方便地用SQL进行数据转换和映射,处理大规模结构化数据,更适用于批处理,而不是实时操作场景。 2. Hive常用的数据存储格式有哪些? Hive支持多种数据存储格式,常用的包括:文本文件、序列文件、RC文件和ORC文件。 3. Hive与关系型数据库(RDBMS)的区别是什么? Hive是基于Hadoop的数据仓库,而关系型数据库是基于传统的表格结构的。Hive不支持实时查询和交易,但能够有效地处理海量数据,并采用类SQL(HiveQL)进行查询,而关系型数据库则适用于事务处理和实时查询。另外,Hive也支持非结构化数据,而关系型数据库则更适合处理结构化数据。 四、Hbase 面试题及解析 1. Hbase的缺点是什么? Hbase是一款分布式、非关系型数据库,主要面向交互式查询和扫描大数据量的应用场景。在使用Hbase时,需要注意以下几个缺点: (1)性能:Hbase对范围查询和高并发支持不够完善,处理性能相比关系型数据库略逊一筹。 (2)数据复杂性:Hbase不支持关系型数据,而是采用键值对的存储策略,这可能会导致一些查询操作难度加大。 (3)可用性:由于Hbase是基于Hadoop的分布式文件系统(HDFS)构建的,因此可用性方面的问题可能存在性能和资源问题,需要进行一定的优化。 2. Hbase如何保证数据一致性? Hbase采用以下几种方式来保证数据一致性: (1)Zookeeper:Hbase通过Zookeeper的协同机制来协调数据的一致性,确保存储数据的多个地方具有同样的数据。 (2)版本控制:Hbase每次更改数据都会将其存储为新版本,而不会改变原有的数据,防止数据的丢失。 (3)读取锁:当有多个读取请求同时处理时,Hbase通过读取锁来避免不一致问题。 ### 回答3: 大数据技术已经成为当前信息时代的基石之一。在大数据领域中,有很多技术框架和工具。其中,SparkHadoop、Hive和HBase是最受欢迎的几种框架,广泛运用于大数据领域。下面我将会针对这四种框架的相关面试题进行解析。 1. Spark Q: Spark 是什么?有什么特点? A: Spark 是一种基于 Hadoop 的计算框架,它的分布式计算引擎可以支持 Java、Scala 和 Python 等多种编程语言。Spark 的一个主要特点是,它可以将内存作为存储系统,并且具有高速的数据处理能力,因此在大数据处理过程中速度非常快。此外,Spark 还提供了一个可扩展的集群管理系统,使得 Spark 集成和优化变得更加容易。 Q: Spark 可以运行在哪些模式下? 有哪些常见的运行模式? A: Spark 可以运行在 Local 模式下、Standalone 模式下和在 Hadoop 上运行的 YARN 模式下。其中,Local 模式只能在本地运行,Standalone 模式则以 Spark 自带的集群管理器 Spark Standalone 为基础,在多台主机上运行将构成一个 Spark 集群。 Q: Spark 有哪些数据源? A: Spark 可以支持读写不同的数据源,比如 HDFS、本地文件系统、HBase、JDBC 等。 2. Hadoop Q: Hadoop 是什么?有哪些组件? A: Hadoop 是一种开源的分布式计算框架,它的核心是用来处理大规模数据处理的问题。Hadoop 中包含了多个组件,比如 Hadoop 分布式文件系统、MapReduce、YARN 等。其中,HDFS(Hadoop Distributed File System)作为分布式文件系统,是 Hadoop 的存储层;MapReduce 则是 Hadoop 的计算框架;YARN 则是 Hadoop 2.x 中引入的资源调度系统。 Q: Hadoop 的 NameNode 和 DataNode 有什么区别? A: NameNode 是一个机器,由 Hadoop 集群中的一个节点充当,用于维护整个文件系统的元数据信息;DataNode 则是分布式文件系统存储数据的节点,在 Hadoop 集群中可以有多个。所以 NameNode 和 DataNode 之间的区别就是功能不同,NameNode 负责元数据信息维护,DataNode 则负责数据存储。 Q: Hadoop 的 HDFS 和 MapReduce 之间有什么关系? A: HDFS 是分布式文件系统,它为 MapReduce 提供了底层的数据存储服务。而 MapReduce 则是 Hadoop 的计算框架,它可以通过 HDFS 进行数据读取并进行相关的数据处理操作。 3. Hive Q: Hive 是什么?它可以做什么? A: Hive 是建立在 Hadoop 之上的数据仓库系统,它可以将数据存储在 Hadoop 文件系统中,并且支持使用 SQL 方式对数据进行查询分析。Hive 可以将 SQL 查询语句转换成 MapReduce 任务,实现 Hadoop 集群上的数据处理。 Q: Hive 的重要组件包括哪些? A: Hive 的重要组件包括 Metastore 和 HiveServer2 等。Metastore 负责 Hive 的元数据管理,包括表的存储信息、分区信息以及其他详细内容;HiveServer2 是 Hive 的服务端组件,它可以提供对外的 JDBC 服务和 Thrift 服务等,使得其他客户端可以通过 SQL 语句与 Hive 交互。 Q: Hive 中的分区有什么作用? A: Hive 中的分区是指将具有相同属性的数据存放在同一目录下的方法,可以用来提高数据的查询效率。分区可以基于单个或多个列来进行划分,比如将数据按照时间、地理位置等属性进行分区,这样查询时只需要扫描特定的分区即可,提高了查询效率。 4. HBase Q: HBase 是什么?它的主要特点是什么? A: HBase 是一种 NoSQL 数据库,它是建立在 Hadoop 文件系统之上的基于列的数据库系统。HBase 主要的特点是高可扩展性和高可用性,可以满足大规模企业级应用的需求。 Q: HBase 中的 Region 是什么?具有什么特点? A: HBase 中的 Region 即数据表的一部分,一个数据表可以被拆成多个 Region 来进行存储和管理。Region 拆分的主要目的是为了解决 HBase 在数据量庞大的情况下,单一 Region 的存储和数据读写性能瓶颈。可以通过 Region 的拆分和合并来处理数据分片的问题,以摆脱单一 Region 的限制。 Q: HBase 中的存储结构?它和关系型数据库的区别? A: HBase 中的存储结构采用的是分布式存储方式,数据被分散在多个节点上。同时,HBase 和关系型数据库的主要区别在于数据存储结构和数据模型上。HBase 采用的是基于列的存储模型,具有高可扩展性和高可用性;而关系型数据库则通常采用行式存储,具有事务处理等特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值