百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

上海公司大数据面试题(面经)

mhr18 2024-12-24 12:24 23 浏览 0 评论

作者:感谢牛客,已上岸
来源:牛客网
1.东软集团架构师电话面试二十分钟:1.1.hbase有什么特点,他的优缺点:海量存储,列式存储,高并发,稀疏(列的灵活性,列族中可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的),高可用(WAL解决高可用,瞬间写入量)2.单一RowKey固有的局限性决定了它不可能有效地支持多条件查询,不支持SQL语句1.1.3hbase的过滤器说几个及其作用:比较运算符(less,greater_or_equal,NO_OP),比较器(BinaryComparator,BitComparator,NullComparator)。比较过滤器:rowfilter,familyfilter,qualifierfilter,valuefilter,timestampsfilter,Filter rowFilter = new RowFilter(CompareOp.GREATER, new BinaryComparator("95007".getBytes()));2.专用过滤器:SingleColumnValueFilter -会返回满足条件的整行,单列值排除器 SingleColumnValueExcludeFilter ,前缀过滤器 PrefixFilter----针对行键,列前缀过滤器 ColumnPrefixFilter,分页过滤器 PageFilter1.2.hive表的优化:怎么解决数据倾斜:key分布不均匀,数据本身,sql语句本身容易引起倾斜(goupbykey,join,distinct count)groupbykey引起的:参数调优:set hive.groupby.skewindata=true;生成的查询计划会有两个MRJob采用sum() group by的方式来替换count(distinct)完成计算1.2hive有一张小表明细表,一张超级大的表join,怎么解决这种容易引起数据倾斜?1.3.hive表之间有父子依赖关系,几十张表,你是如何处理的?1.4.sqoop给了我一个错误的引导:说是sqoop收集数据。反怼了他。1.5.Redis的哨兵模式:自己挖的坑,自己踩。1.6其他的简历方面的也问了不少,没啥特别的说的。

2.池鹜公司架构师电话面试十五分钟:1.简单介绍自己2.hive的窗口函数:哪几种?3;每个区别,就是每种的作用;row_number ,rank区别3.hive的sql语句牛逼吗?写过多少的,4.我们现在有十个部门,每个部门人员都有绩效评分,怎么搞出每个部门的前三个?重要的来了,简单给我说出一下使用那些关键字,group by? topN?low! 窗口排序函数教你做人dense_rank over()!5.data warehouse hadoop这些组件ETl之后都是给数据仓库服务用的,这个已经也是大数据开发工程师必备的了。BI/DW了解一下。7.hive优化之join:1.join计算时,小表放左边,2.Map join:在map端完成join(避免数据倾斜)mapjoin实现方式:1.sql语句中添加Mapjoin标记:SELECT /*+ MAPJOIN(smallTable) */ smallTable.key, bigTable.value FROM smallTable JOIN bigTable ON smallTable.key = bigTable.key;2.开始自动的MapJoin:set hive.auto.convert.join = true; 该参数为 true 时,Hive 自动对左边的表统计量,如果是小表就加入内存,即对小表使 用 Map join8.union 和 union all,join和left join9.还有也是hive的几个问题,太简单不写了。

3.平安普惠公司现场面试:0.介绍一个熟悉的项目1.Java多线程:多个线程共同调用一个方法造成数据错乱的问题?怎么办:然后就知道了多个线程访问同一个方法时,为了保证数据的一致性,需要对共同访问的方法加同步锁publicstaticsynchronizedbooleanwriteText(){}2.Java内存模型:gc内存模型:分为三部分:栈,堆,程序计数器,他们每一部分有其各自的用途;虚拟机栈保存着每一条线程的执行程序调用堆栈;堆保存着类对象、数组的具体信息;程序计数器保存着每一条线程下一次执行指令位置。这三块区域中栈和程序计数器是线程私有的。也就是说每一个线程拥有其独立的栈和程序计数器。并发内存模型:。。。。。。3.spark checkpoint什么时候使用和作用:Window操作等,其中checkpoint的作用就是将DAG中比较重要的中间数据做一个检查点将结果存储到一个高可用的地方4.有一串IP(11.22.33.44),写一个方法函数,来对这串数字处理。结果:11*22*33*44。现场撸代码。5.spark YARN模式 作业内部流程:DAGYARN模式的作业运行调度描述如下(1)客户端生成作业信息提交给ResourceManager(2)ResourceManager在本地NodeManager启动Container,并将Application Master分配给该NodeManager。(3)NodeManager接收到ResourceManager的分配,启动Application Master并初始化作业,此时这个NodeManager就称为Driver。(4)Application向ResourceManager申请资源,ResouceManager分配资源同时通知其他NodeManager启动相应的Executor。(5)Executor向本地启动的Application Master注册汇报并完成相应的任务。6.spark的driver怎么驱动作业流程的:7.dataframe和dataset的区别:左侧的RDD[Person]虽然以Person为类型参数,但Spark框架本身不了解Person类的内部结构。而右侧的DataFrame却提供了详细的结构信息,使得Spark SQL可以清楚地知道该数据集中包含哪些列,每列的名称和类型各是什么。DataFrame多了数据的结构信息,即schema。RDD是分布式的Java对象的集合。DataFrame是分布式的Row对象的集合。DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化,比如filter下推、裁剪等。8.有一个表字段name(a,b,c),score(20,30,40),sql语句输出结果:三字段:index,name,score。并且按score排序。现场撸代码。不使用row_number情况下,9.sql语句超级多现场问。10.mapreduce的shuffle过程:详细点描述,以及map端输出的数据是在哪里?11.RDD:12.mysql的事物等级划分:默认是哪个,可重复读。13.mysql的B+树。。。。。。。。。14.arraylist的底层是?动态扩容的话是一个什么策略?

4.太平洋保险大地保险华腾有限公司外包现场面试:1.介绍项目:完整的2.zookeeper:zkServer,使用过这在内部删除东西?不明白他想问啥?3.zookeeper的反压:4.DAG:DAGscheduler,taskscheduler,tastscheduler下一层的叫什么:submitTasks(taskSet),cancelTasks(stageId),resourceOffer(offers: Seq[Workers])4.2MapReduce和spark的shuffle的区别:5.hbase的预分区:rowkey6.scala的高阶函数,为什么函数柯里化?

1.把多个参数转化为单参数函数的级联,达到了动态确定参数的目的。

2.当某些参数不确定时,可以先保留一个存根。剩余的参数确定以后,就可以通过存根调用剩下的参数。

3.通过类似于建造者模式(building),把一个大的东西的构造过程,切成一个个的小模块来逐步构造。举个最简单的例子,Person.name("xxx").age(num).salary(count).phone(xxxx)。

7.闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。闭包通常来讲可以简单的认为是可以访问不在当前作用域范围内的一个函数。8.beeline:jdbc9.数仓:ORACLE和DB2在OLTP中占有绝对的优势,但在注重海量数据高效查询的OLAP中,远远不及TeraData和IQ(sybase),10.其他的都比较简单,不写了。\

5.北明软件公司现场面试:1.现场撸了sql笔试题,join,left join on2.。。。。。。

6.闻政咨询公司

0.公司是处理那些数据的,整个流程。

1.scala异常分为哪些类,平时怎么抛异常的,处理策略:使用try异常处理机制的一个重要理由是,当有异常出现时,程序会跳过try继续运行下去,不会就此中断,有效提高了程序的稳健性

2.有一个很大的文件,里面有很多重复数据,如何去重的?详细说case

3.flume的高可用和高可靠性,以及failover和负载均衡:!

1.负载均衡:source里的event流经channel,进入sink组,在sink组内部根据负载算法(round_robin、random)选择sink,后续可以选择不同机器上的agent实现负载均衡。

2.failover:配置一组sink,这组sink组成一个Failover Sink Processor,当有一个sink处理失败,Flume将这个sink放到一个地方,等待冷却时间,可以正常处理event时再拿回来。event通过通过一个channel流向一个sink组,在sink组内部根据优先级选择具体的sink,一个失败后再转向另一个sink。

#define sinkgroups

a1.sinkgroups=g1

a1.sinkgroups.g1.sinks=k1 k2

a1.sinkgroups.g1.processor.type=failover

a1.sinkgroups.g1.processor.priority.k1=10

a1.sinkgroups.g1.processor.priority.k2=5

a1.sinkgroups.g1.processor.maxpenalty=10000

7.创略科技现场面试:1.kafka传数据过程中断电了,怎么保证可靠性:ISR! 主从!多副本冗余,每个 Partition 都可以搞一个副本放在别的机器上,这样某台机器宕机,只不过是 Partition 其中一个副本丢失。如果某个 Partition 有多副本的话,Kafka 会选举其中一个 Parititon 副本作为 Leader,然后其他的 Partition 副本是 Follower。只有 Leader Partition 是对外提供读写操作的,Follower Partition 就是从 Leader Partition 同步数据。一旦 Leader Partition 宕机了,就会选举其他的 Follower Partition 作为新的 Leader Partition 对外提供读写服务2.kafka的分区数据是怎么分配到不同分区的以及分区到不同的broker:1.默认的分区策略:对每个消息的key的hash值对partition数取模2.对指定的分区进行输入数据:自定义分区3.在创建topic时 kafka根据内部的负载均衡算法 将分区均匀的分布在多个broker上,分区可以提高系统的吞吐量,kafka只在partition中是有序的.从上面的算法可以看出:1 副本因子不能大于 Broker 的个数;2 第一个分区(编号为0)的第一个副本(编号为0)放置位置是随机从 brokerList 选择的;3 其他分区的第一个副本放置位置相对于第0个分区依次往后移。也就是如果我们有5个 Broker,5个分区,假设第一个分区放在第四个 Broker 上,那么第二个分区将会放在第五个 Broker 上;第三个分区将会放在第一个 Broker 上;第四个分区将会放在第二个 Broker 上,依次类推;4 剩余的副本相对于第一个副本放置位置其实是由 nextReplicaShift 决定的,而这个数也是随机产生的3.kafka的工作原理4.flume的工作原理5.flume的source,sink,channel都有哪些,说一下6.hbase对单行数据操作怎么操作7.hbase对整个表扫描用什么,结果怎么保存8.sparkstreaming:如何对rdd进行分区,以及分区的依赖是什么?9.Hadoop的mr工作过程,以及shuffle过程,详细点说明10.hdfs的mapper和reducer的个数如何确定??reducer的个数依据什么11.有一个10G的文件要存入hdfs,描述一下存储过程。hdfs默认块大小128MB12.mr整个很慢,如何去优化,13.sparkstreaming:整个过程很慢,如何优化14.mr的默认分区reducer是多少,如何mapper有是个,那么reducer是多少Partition:由PartitionerClass中的逻辑确定,默认情况下使用的HashPartitioner中使用了hash值与reducerNum的余数,即由reducerNum决定,等于Reducer数目。如果自定义的PartitionerClass中有其他逻辑比如固定了,也可以与Reducer数目无关,但注意这种情况下,如果reducerNum小于分区数则会报错,如果大于则会产生无任务的reduecer但不会影响结果。但是如果reducerNum只有1个,则不会报错而是所有分区都交给唯一的reducer。15.sparkStreaming的工作模式:ETL过程。(Yarn)


-------------------------

牛客网是全国最大的IT题库,刷真题,练算法,看面经,得内推,全面提升你的技术水平、推荐最好的工作给你!牛客网官网链接:https://www.nowcoder.com/discuss?type=2&order=0?from=toutiao

*本文由原作者首发于牛客,非经原作者授权,不得转载。

*与面经原作者交流,请点击下方了解更多。

相关推荐

mysql一 基本操作(mysql基础操作命令)

先讲数据库--mysql、redis、MongoDB爬虫今天的内容:mysql一基本操作注意事项:1.安装:自己安装,有问题可以问老师、可以自己找办法解决2.上课:先讲知识点再回答问题3....

香港DM德馬景泰藍文科集團20250702期《生命的收獲》LIN JING DE

香港DM德馬景泰藍文科集團20250702期《生命的收獲》DMSIXSEVEN/LINJINGDE/1973主編供圖:香港DM德馬數字甲骨文集團Hongkong-basedDMDelm...

01.Java发展历史(java发展简史)

1.Java发展历史Java由SunMicrosystems公司(现为Oracle公司)的JamesGosling及其团队在1991年开发,最初命名为"Oak",后改名为"...

月薪最高12000!看看这些宝山岗位有没有你心仪的~

招聘目录信息1猎上网络科技(上海)有限公司职位分析师职位分析师助理2上海祥腾金属材料有限公司商务车驾驶员3上海赋拓物联网技术有限公司软件测试工程师4上海集优标五高强度紧固件有限公司...

69岁的Java之父终于退休了,他竟然也经历过职场PUA

有些程序员不到35岁就要担心被优化,但有的程序员干到了69岁的高龄,才准备退休。就前几天,Java之父詹姆斯·高斯林,自个儿在领英上宣布以后要美美享受退休生活了。这一下子,就炸出了不少...

ocm认证年薪多少?(ocm认证好考吗)

从业数据库方面的工程师待遇都很好,年薪30万都是比较平常的事。OCM认证的价值可以归纳成以下几点:1、可以全面掌握Oracle知识,专业知识完善;2、证书对于公司招投标有巨大作用,甚至可以不上班就拿钱...

自学java开发攻略,想做程序员的必备攻略?

背景现阶段,随着互联网的快速发展,程序员这个行业越来月吃香,不仅仅是因为科技先进,说出去很牛逼,让别人产生崇拜,主要原因是程序员行业薪资待遇好,相比国内其他行业,程序员的薪资待遇是羡慕了很多人呢!于是...

SpringBoot WebFlux整合R2DBC实现数据库反应式编程

环境:Springboot2.4.12R2DBC简介SpringdataR2DBC是更大的Springdata系列的一部分,它使得实现基于R2DBC的存储库变得容易。R2DBC代表反应式关系数...

AI编码工具未能代替码农:大模型的局限性揭秘

随着ChatGPT和GithubCopilot等AI编码工具的兴起,StackOverflow近日因流量减少宣布裁员近三分之一。这引发了一个争议的问题:ChatGPT这类AI编码工具,真的要颠覆整...

大模型无法替代码农!GPT-4解决GitHub编程问题成功率为0

编辑:编辑部【新智元导读】ChatGPT之类的AI编码工具来势汹汹,StackOverflow又裁员了!不过,普林斯顿和芝大竟发现,面对真实世界GitHub问题,GPT-4的解决率竟是0%。Stac...

机器人动作领域突破!UniVLA模型实现跨模态AI机器人动作统一

还记得《星际穿越》中那台能在无重力、尘暴甚至巨浪中切换形态、随时理解库珀指令的TARS多功能机器人吗?在银幕里,我们羡慕TARS能听懂人话、看懂环境、马上给出最合适的动作;而在现实世界的实验室里,“让...

FEA-Bench:首个仓库级新功能实现基准,让大模型更懂软件开发

当前,大语言模型在代码生成领域已展现出惊人的能力,但能否胜任真实软件开发中的“新增功能实现”任务,仍是一个关键未解的问题。对此,微软亚洲研究院与北京大学联合发布了首个专注于仓库级新功能实现的基准测试...

基于Java的软件版本信息管理系统-2025计算机毕业设计

基于Java的软件版本信息管理系统-2025计算机毕业设计前言随着移动互联网的快速发展,APP已成为人们日常生活中不可或缺的一部分。为了高效地管理这些APP的信息,如版本更新、用户反馈、下载量统计等,...

马斯克在干嘛?抱着它现身推特 简介改为“推特老板”

  马斯克收购推特的交易真是“没完没了”。据彭博社报道,当地时间26日,美国亿万富翁埃隆·马斯克抱着水槽走进了推特公司的旧金山总部,他还将自己在推特账号的公开自我介绍改为“推特老板”(ChiefTw...

福布斯公布7月全球十大富豪:马斯克成6月最大“输家”,身家缩水160亿美元

7月日,福布斯今日公布了2025年7月全球十大富豪榜,其中第二名迎来新面孔。软件巨头甲骨文(Oracle)联合创始人兼董事长拉里埃里森(LarryEllison)凭借公司股价飙升成功上位。由...

取消回复欢迎 发表评论: