10.18 荣耀、知乎、猫眼面试题总结!!!

先把题目贴出来,答案贴一部分。。。题太多了,后面陆续更新。。

荣耀大数据

Hive 一般有什么调优方式?

Hive 的调优方式包括以下几个方面:

  1. 数据分区:通过在表中定义分区,可以将数据按照指定的列进行分割,提高查询效率。
  2. 数据压缩:对于存储在 Hive 中的大数据集,可以使用压缩算法对数据进行压缩,减少存储空间,提高查询性能。
  3. 合理设置表的存储格式:Hive 支持多种存储格式,如ORC、Parquet等。选择合适的存储格式可以提高查询性能。
  4. 使用索引:对于经常需要进行查询的列,可以创建索引,加快查询速度。
  5. 调整查询引擎的参数:可以通过设置 Hive 的相关参数,如内存分配、并行度等来优化查询。
  6. 数据倾斜处理:当数据在某些列上倾斜时,可以使用一些技术手段,如改变数据分布、使用随机前缀等方式来解决数据倾斜问题。
  7. 数据预处理:在数据加载到 Hive 前,对数据进行预处理,如清洗、过滤、聚合等,可以减少后续查询时的计算量。
  8. 使用合适的硬件资源:合理使用硬件资源,如增加内存、调整磁盘读写速度等,可以提高 Hive 的性能。

以上是一些常见的 Hive 调优方式,根据实际情况可以选择适合的方法进行优化。

HDFS 读写流程?

HDFS(Hadoop分布式文件系统)的读写流程如下:

  1. 写入流程:a. 客户端将要写入的数据切分成固定大小的数据块(默认大小为128MB),并与NameNode通信以获取一个可用的DataNode列表。b. 客户端选择一个DataNode作为主节点,并将数据块写入该主节点。c. 主节点将数据块复制到其他DataNode节点,以提供数据冗余和容错性。d. 所有副本写入成功后,主节点将确认写入操作,并向客户端发送成功的响应。
  2. 读取流程:a. 客户端向NameNode请求读取文件,并获取包含文件块信息的元数据。b. 客户端根据文件块信息选择一个DataNode作为主节点,并向其发送读取请求。c. 主节点返回所请求数据块的副本位置列表给客户端,客户端按照距离和可用性选择一个DataNode进行读取。d. 客户端与所选择的DataNode建立连接,并从该节点读取数据块。e. 如果所选择的DataNode无法提供数据块,则客户端将尝试连接其他副本位置的DataNode。

以上就是HDFS的基本读写流程。通过数据切块和复制,HDFS实现了高可用性和容错性,同时通过数据本地性和并行读取,提供了高效的读取性能。

Spark 有什么算子?

  1. 转换算子(Transformation):用于对RDD数据集进行转换操作,生成新的RDD。常用的转换算子有map、filter、flatMap、groupByKey、reduceByKey等。
  2. 行动算子(Action):用于对RDD数据集进行触发计算操作,返回结果或将结果输出到外部存储系统。常用的行动算子有collect、count、reduce、take、foreach等。
  3. 键值对算子(Key-Value):用于对键值对类型的RDD数据集进行操作。常用的键值对算子有groupByKey、reduceByKey、sortByKey、join等。
  4. 排序算子(Sorting):用于对RDD数据集进行排序操作。常用的排序算子有sortBy、sortByKey等。
  5. 连接算子(Joining):用于将两个RDD数据集按照特定的规则进行连接操作。常用的连接算子有join、leftOuterJoin、rightOuterJoin等。
  6. 文件操作算子(File Operations):用于读取和写入文件数据。常用的文件操作算子有textFile、saveAsTextFile等。
  7. 广播变量算子(Broadcast Variables):用于在集群中共享变量,以提高性能和减少网络传输。常用的广播变量算子有broadcast等。

Spark 一般有什么调优方式?

Spark 一般有以下几种调优方式:

  1. 增加硬件资源:增加集群中的节点数量、增加每个节点的CPU、内存和磁盘容量等,以提高整体的计算和存储能力。
  2. 数据分区和缓存:合理划分数据分区,使每个分区的大小适中,以提高并行处理能力。同时,将频繁访问的数据进行缓存,减少磁盘IO开销。
  3. 并行度设置:根据集群资源的情况,合理设置并行度参数,以充分利用集群资源,提高计算效率。
  4. 内存管理:通过调整Spark的内存分配策略,如调整executor内存大小、调整内存分配比例等,以避免内存溢出或频繁的GC操作。
  5. 数据压缩和序列化:对于大规模的数据集,可以考虑使用压缩算法进行数据压缩,减少网络传输和存储开销。同时,选择合适的序列化方式,如Kryo序列化,以提高性能。
  6. 并行算法选择:根据具体的计算场景,选择适合的并行算法,如广播变量、累加器等,以提高计算效率。
  7. 数据倾斜处理:针对数据倾斜的情况,采用合适的处理方式,如使用Spark提供的一些解决方案,如随机前缀、分桶等。
  8. 调整任务数量和分配:根据集群资源的情况,调整并行任务的数量和分配,以充分利用集群资源,避免资源浪费。
  9. 数据预处理:在数据处理之前,进行合适的数据预处理,如数据过滤、数据采样等,以减少数据量和提高计算效率。
  10. 监控和调优:使用Spark提供的监控工具和日志,及时监控集群的运行情况,发现潜在的性能瓶颈,并进行相应的调优。

Spark 数据倾斜如何解决?

Spark数据倾斜是指在数据处理过程中,某些分区的数据量明显偏大,导致计算过程中负载不均衡的情况。

解决Spark数据倾斜可以采取以下几种方法:

  1. Shuffle操作优化:Shuffle操作是Spark中常见的导致数据倾斜的原因之一。通过使用合适的分区策略,如使用HashPartitioner,可以将数据更均匀地分布在不同分区中,从而减少数据倾斜的可能性。
  2. 增加并行度:通过增加并行度,即增加Spark作业的并发执行量,可以分摊负载,减轻数据倾斜的影响。可以通过增加Executor数量、调整Executor内存等方式来提高并行度。
  3. 数据预处理:对于可能导致数据倾斜的操作,可以进行数据预处理来平衡数据分布。比如,可以对数据进行采样,根据采样结果进行数据重分布,使数据更均匀地分布在各个分区中。
  4. 增加随机性:在一些可能导致数据倾斜的操作中,引入随机因素可以减少数据倾斜的概率。比如,在进行ReduceByKey等聚合操作时,可以在Key上增加随机前缀或后缀,使相同Key的数据随机分布到不同分区中。
  5. 使用自定义分区器:通过自定义分区器,可以根据业务逻辑将数据更均匀地分布到不同分区中,从而减少数据倾斜的发生。自定义分区器可以根据数据的特点和业务需求进行定制。
  6. 数据重分区:当数据倾斜发生时,可以通过对倾斜分区进行数据重分区来解决。可以将倾斜分区的数据划分为更小的子分区,然后将这些子分区与其他正常分区进行合并,从而使数据更均匀地分布。

知乎大数据

Flink 的 Checkpoint 是什么?

Flink的反压的机制是什么?

Flink的状态后端有哪些?

Kafka一定不会丢数据嘛?

Spark的内存模型?

数据仓库的意义?

如何衡量一个好的数仓?

Hive的执行计划是什么样子?

猫眼大数据

Java String builder和String buffer区别?

Java String为什么是不可变的?为什么要设计成不可变?

Java 泛型了解吗?

Java反射了解吗?常用的反射方法?

Java集合类型?

Java数组和链表的区别?

Java讲讲HashMap原理?转换成红黑树条件?为什么这么设计?

Java线程安全的HashMap?ConcurrentHashMap和HashTable的区别?ConcurrentHashMap原理?

Java进程切换如何保证能够回到之前的执行位置?

JVM里面的内存结构?

Java线程池作用?线程池参数?

Hive内部表和外部表区别?

Hive UDF类别?实现步骤?

Hive存储文件格式?

行存储和列存储区别?

举几个开窗函数例子?什么要有开窗函数,和聚集函数区别?

MySQL聚簇索引和非聚簇索引区别?回表操作?

HBase读写原理?

HBase存储结构?

LSM树原理?

#大数据##大数据面试##晒一晒我的offer#

解决职场真实面试问题,分享同学真实成功案例,欢迎订阅关注!

全部评论
hive建不了索引
点赞 回复 分享
发布于 2023-11-05 15:15 广西

相关推荐

10-25 17:38
长春大学 Java
本人二本学校 是暑假找不到工作的小腊鸡!面试了很多次,几乎都挂在了一面时间过的很恍惚 从七月份开始求职到现在都快十一月了才进入 职场 其中辛酸泪和焦虑真是让人折磨 每天都是复习加找工作已读不回 真让人泪目 这些确实算是沉重的打击吧,不过暑期已经打击过一次了,所以多少有了点适应性。艾普工华 一面:项目拷打  介绍总体架构和主要负责的内容   挖掘亮点  1.redis 缓存的目的 如何实现的2.redis缓存与数据库不一致如何解决3.spring的事务使用4.spring的Aop的使用 在项目中如何实现5.分布式事务的了解,项目中的seate是如何使用的亚信科技一面1.java的基础核心知识 异常 多线程的使用2.mysql数据库的内置函数 索引 语句的考察3.前端的编写水平 使用js vue等等中星云网  一面 电话面 1.JAVA异常的类别  经常遇见的异常以及处理方法  2.throw 与throws的区别3.抽象类与接口的区别4.线程的创建方式5.序列化与反序列化的区别6.设计模式举例并说明7.单例设计模式 万智信达狠狠的拷打了项目  1.redis与mysql最大的区别2.进程与线程的关系3.Redis的数据结构有哪些4.Nacos的作用5.异常类的处理6.简单介绍一下Spring7.Springmvc的流程数科网维因为有事情拒绝了  是综合面试  人事主管  hr  技术经理 感觉好可惜 因为公司规模和水平对于我来说很珍贵上海岱凯  一面 笔试面Java1.  在数据量极大的情况下,LinkedList和ArrayList哪个占用的空间更大。2.  任意写出一种单例模式的实现。3.  Java中集合有哪三种接口。前端7.  如何实现一个双向绑定的自定义表单组件,并将数据提交后端10.20.10.1:8000端口提交数据。8.  如何设计一个数据库表?请解释数据库的规范化。9.  Redis的数据结构及对应的应用场景10.  MySQL的索引是什么,有什么用。11.  说出几种MySQL索引失效的场景。12.  MySQL具有哪些事务隔离级别,分别存在哪些问题,MySQL默认的隔离级别是什么?13.  MySQL有哪些锁?14.  写一个快排,伪代码或思路均可。二面  技术面+hr面 :技术面:拷打我的项目 Hr面:1.你的职业规划?2.你对加班的看法?3.何时可以到职?4.你还有什么问题要问吗?凌志软件一面 技术面项目拷打1.linux中如何检查访问主机的端口是否开启什么命令 2.linux权限命令与系统命令  3.平时如何使用版本提交工具4.java的线程创建方式5.介绍hashmap6.arraylist与linklis的区别7.数据库与连接池的配置参数二面 人事主管面  :1. 请你自我介绍一下你自己? 2. 你对加班的看法? 3. 你对薪资的要求? 4. 你的职业规划? 5. 你还有什么问题要问吗?  6. 在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么 做?7. 工作中你难以和同事、上司相处,你该怎么办?8. 对工作的期望与目标何在?9.何时可以到职?决策树一面笔试  两道算法题 一道mysql题  一道大数据题一面技术面 1.算法 字符串中最长回文子序列2.场景题 在springboot部署到linux之后  一段时间不可用 怎么办3.对于cou或者其他硬件资源占比超高 如何定位4.K8s的相关理念和命令  池化技术  网络 容器部署等心之易一面 技术面(40min)项目拷打 1.spring的ioc与aop2.mybatis与mybatisplus的区别3.mysql的索引作用 与 索引创建注意的问题4.springmvc的流程5.redis的数据类型何实际应用其中岱凯  万志信达 决策树都oc了 但是由于 本人原因没有选择 最后在在长春入职一家千人以上的公司 成为研发实习生 开始了工作旅途 !!!总之就是几点吧:1.带着焦虑,担忧,去做正确的事情2.穷则思变,多去尝试好运只是上岸人喜欢的说辞,在你成功之前的任何时刻都不应该把“运气”当做成功的因素之一加油吧↖(^ω^)↗以下是引流 :#牛客解忧铺# #吉利求职进展汇总# #分享求职# #华为# #吉利# #腾讯# #阿里# #春招# #秋招# #大华# #海康# #运筹优化# #杉树科技# #字节# #吉利汽车校招# #抖音#
查看59道真题和解析 牛客解忧铺 吉利求职进展汇总
点赞 评论 收藏
分享
13 68 评论
分享
牛客网
牛客企业服务