大数据工程师(开发)面试系列(5)

来源:互联网 发布:淘宝装修店铺视频教程 编辑:程序博客网 时间:2024/05/01 21:56

1. Java的第三方模块你用过哪些?

:也没有刻意去记,所以也没说出来。
:技术干货:十个非常有用的第三方Java开源库
细数一下,上述所列十个里,大致用过1/2。

2. Python的第三方模块你用过哪些?

:爬虫所用urllib,urllib2
:模块和包.那些让你相见恨晚的PYTHON第三方好用的模块儿和包?

3. 你用你的程序调度Kylin以及承接数据失败怎么办?

:在调度之前有落地策略,所以不用担心
面试官:如果落地之前,程序就停止运行了怎么办?
:因为当初并没有遇见或者着重这个问题,所以并没有考虑到相应的解决策略。
:确实,数据落地是可靠性的一种保障,而保障本身也需要保障,之前工作中没有遇见,所以没有细加思考,现在想想,我们不妨借助
下图Spark的一种故障恢复的手段进行发散:

可靠
Spark的失败恢复和Hadoop的checkpoint有异曲同工之妙,就是在落地的时候并不是光落地个数据,同时也会落地相应的计算(操作)。所以落地前崩溃怎么办?我们可以设想一种方式进行数据操作的记录,这样子等失败后重启,依据相应的记录可以实现断点重传的效果。再有甚者,遇到相当极端的情形,导致代码逻辑层面无法解决,那么就从架构层面解决;架构层面如果无法解决,那么就从运维层面解决;运维层面无法解决,那么就从产品层面去解决。

4.Kylin有哪些组件?

:Kylin极其的友好,是非侵入式的,所以谈不上组件,Hive只是作为Kylin的MetaData,HBase只是作为Kylin Cube的MetaData。
:其实这个问题,如果换成Kylin的组织架构怎么样?可能会答的好一点,因为当时的我已经沉醉在Kylin友好的非侵入式中无法自拔,所以从Hadoop般宏观层面去了解组件这个概念,比如Sqoop、HBase、Hive都可以说成是Hadoop的组件,但是他们每个单独拿出来,又何尝不是大数据圈中一等一的神器呢?所以如果说他们是Kylin的组件,一来有种臣服之感,而来也不能体现Kylin的友好非侵入。后来,查阅资料,对组件这个概念有了更深的了解,比如在某种层面上它又可以称之为模块,每个系统可以有很多的模块构成,而这些个模块就类似于组成这个系统的部件,所以唤之组件也未尝不可呀~
kylin(一): 原理架构

5. 谈一谈,你心目中的Restful API?

:对于Restful API的理解,个人仅限于使用层面。DELETE用来删除,GET用来获取,POST和PUT不同,POST用来更新,PUT用来创建。
面试官:你能认识到POST和PUT的不同很好,但,刚好说反了,POST可以创建,PUT可以更新。
:所以恶补了一下:

Restful

同时,借助这个题目,对于人的决策也产生了一定的思考,如果将使用这种行为类比成训练,而通过它获得的经验可以类比成模型,而通过这种模型可以指导我们进行决策。在我个人使用Restful的接口中,比如ES学习的时候,有这个需求,我就是通过POST进行相同数据不同ID的数据的更新的,也就是非幂等的更新,不属于常用资源的已知更新,所以这种使用训练在我脑海中生成了一个模型,这个模型在被调用,也就相当于有新数据集进来时,指导我的决策就成了POST可以更新,而还有一个模型是POST和PUT使用上要注意,它们不同,所以两者一结合,指导我的决策是POST用来更新,PUT用来创建。而这道题目本身训练出来的模型给我指导的决策是模型的正确性是由训练方式的正确性决定的,而训练方式的正确性又包括逻辑上的正确,以及多样性的保证不能以偏概全;同时训练方式的正确性很大一部分又取决于原始数据集的正确性;牵一发而动全身,不容疏忽!

0 0
原创粉丝点击