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

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)#东软##平安普惠##太平洋保险##校招##大数据开发工程师##面经#
全部评论
老哥 你面这么多小公司干啥,
点赞 回复 分享
发布于 2020-10-05 15:51
楼主,现在本人想转大数据开发实习。有没有一个学习路线参考的?学Spark可以吗?
点赞 回复 分享
发布于 2020-03-05 02:32
整理不易,求大家点个赞!!
点赞 回复 分享
发布于 2020-01-14 15:46

相关推荐

1. 基本情况方向:数据工程,时间:40分钟结束、16:00开始,无手撕,多场景2. 自我介绍3. 一些能够回忆起来的(或许有不正确的地方):(1)提问R:你这个项目是课程作业还是什么?R:那你说说Hive和ClickHouseR:你谈到了OLAP,那和OLTP有啥区别?R:没了?ClickHouse适合那种场景?R:可以用作实时数仓吗?R:课程中有数据库相关的吗?只有数据结构与算法?R:MySQL系统学习过吗?R:数据怎么导入到ClickHouse的?R:直接到ClickHouse?R:数仓分层?四层讲讲。R:那为什么要分层呢?DWS已经差不多了为什么还需要ADS呢?R:场景题:在你的表上新...
牛客861513826号:A场景题:数量统计不说了;退货平均时间:先沟通清楚,月平均退货时间算不算上不退货的用户,不算的话,就只计算退货用户;一个用户的退货时间减去到货时间拿到这件商品的退货时间,然后计算每个退货用户的退货时间,AVG开窗partition by月份,计算出每个月的平均退货时间。如果要算上不退货的用户,也就是让这个用户的退货时间是0,然后对所有用户计算AVG同上。 B场景题:结合下面他提示你再想想数据倾斜,其实这道题是想靠你数据倾斜怎么解决;本来是一个商品购买信息表,记录商品信息和购买者信息,如果给购买者信息加上性别,要求算出每个商品不同性别的购买人数。百分之八十女性用户,所以如果单纯对表进行分组聚合,会产生数据倾斜问题,由分组聚合产生。五种办法可以解决,两种hive参数,三种SQL,往SQL方向聊,以防他追问参数底层,参数这种东西最难聊了,别给自己挖坑
点赞 评论 收藏
分享
韶音科技-嵌入式面经韶音给我的感受还是很不错的,分享一手面经一面-hr面-30分钟主要聊聊家常,问题都比较常规吧,真诚回答就行二面-专业面-30分钟自我介绍想聊一聊哪个项目?项目是如何进行通信的?有哪些措施来保证数据的可靠性?讲一讲CRC校验讲一讲你了解的linux操作系统项目能实现哪些功能?多线程开发需要注意些什么?遇到哪些困难?为什么选择嵌入式开发方向?反问三面-专业面-30分钟自我介绍项目介绍介绍一下Linux操作系统线程和进程的区别,分别是怎么通信的用户空间和内核空间的访问方式内存映射的适应场景?内存映射可能出现什么问题?自旋锁和互斥锁的概念是什么对epoll的理解EMMC读写是怎么用的?手撕:一道简单链表题(口述思路)反问战略和营销很多HC!韶音科技25届补招内推启动拉!!!深圳市韶音科技有限公司(简称“韶音科技”)创立于2004年,是一家专注于电、声产品研发、设计、生产和营销的专精特新重点“小巨人”企业。还有大量需求!使用内推码简历优先筛选,有任何问题包括进度查询可以私信我,内推后在评论区留言【姓名缩写+岗位】,方便捞人和确认投递状态研发,营销,供应链,财务,法务,专利,人资,IT,设计超多米哈游岗位近7年营收增长超百倍的科技公司等你加入!【内推链接】https://app.mokahr.com/m/campus-recruitment/aftershokzhr/36940?recommendCode=DSe1vF9A&hash=%23%2Fjobs#/jobs【内推码】DSe1vF9A(内推简历有免笔试的机会!)使用内推码简历优先筛选,有任何问题包括进度查询可以私信我,内推后在评论区留言【姓名缩写+岗位】,方便捞人和确认投递状态 #春招#                                                                           #内推#                                                                           #内推码#                                                                           #秋招#                                                                           #韶音科技#                                                                    #牛客创作赏金
点赞 评论 收藏
分享
年少的我,一直都很期待别人告诉我的“去大城市见世面”,高考没能考出河南省,甚至上的大学离市区很远,公交地铁两个小时起步。当时我眼中的“去大城市见世面”,就是去大城市工作,看高楼大厦、看车水马龙、游览各种景点、赚很多很多钱、去酒吧去好吃的餐厅、做着高大上的工作、见牛B的人。大一时,我偶然知道了字节的稀土开发者大会,看到了很多大厂背景的人,又因为对大城市的向往,家庭经济很一般甚至有点拮据的我,跟朋友借了几十块钱,买了从郑州到北京的硬座,一晚上6小时到了北京。我确实见到了北京火车站干净的厕所、朝阳区有序的交通、骑着车路过了天安门,那场开发者大会,我也确实见到了学习视频里的人,但是由于自身知识储备的不...
我推的MK:我刚来到大城市的时候就是完全祛媚的,狭小出租屋,天价的房租和恐怖的晚高峰,但是大城市依旧给我带来了很多不一样的东西,比如实习机会,比如逛不尽的商场,比如最前沿的艺术展,比如演唱会和比赛,每当我想要遇见新事物的时候都能够很轻易地在大城市里找到,每当我想要打卡的时候发现坐一个小时地铁都不算多远……大城市就像一片广阔的海洋,我们待在水洼里并不觉得怎样,但当你无论如何眺望都看不到广袤的边界时,你会骤然意识到大城市的意义。
点赞 评论 收藏
分享
04-11 17:17
门头沟学院 Java
职导未来:从公司前景和知名度来看,虾皮肯定优于TP-Link,毁约去虾皮也属于人之常情。但是建议先入职虾皮稳定一些了在毁约。人不为己天诛地灭,就现在这个行情更要为自己打算。(同理公司找到更合适的人选也会毁约收回offer,所以也不要有太多心理负担)
点赞 评论 收藏
分享
评论
32
57
分享

创作者周榜

更多
牛客网
牛客企业服务