百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2024-08-16 14:25 2 浏览

作者:感谢牛客,已上岸
来源:牛客网
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

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

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

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...