2018年04月14日
---
# 技术一面(60分钟)
> 基本全程在问项目(实验室项目、实习项目),根据项目中的知识点纵向展开追问,最后问了些有关线程和集合框架的内容
* 自我介绍
* 久其实习项目
* 业务背景,自己所完成的功能,为什么要这么做?
* 为什么使用HBase替换Oracle?
HBase的表结构的设计
rowkey是如何设计的?
* 如何使用Kettle实现数据的ETL工作?
数据格式之间是如何进行转换的?
在Kettle的面板组件上通过js脚本实现数据的清洗、维度的统一、最后文本文件的导出
* 如何使用MR将数据导入HBase?
说一下具体的实现(简单的映射)
* 感觉MongoDB也可以实现你的需求,为啥用HBase呢?
* 这个数据的规模有多大呢?(几百G吧)
* 这个MR批量数据导入的速度大概是多少呢?(几万条的话10分钟吧),离线的还是实时增量呢?
* 导数据在运行的时候如何保证数据一致呢?
* 为什么选取Phoenix作为中间引擎
怎么对Oracle语句进行解析?
说一下简单工厂的思想,画一下UML,是不是可以用语法解析树实现呢?
怎样对可解析SQL语句的种类进行扩充?增加产品类
* 是怎样保证数据的事务的?
存在并发读写的情况怎么解决?
一条记录的不同字段进行分次更新时可能遇到覆盖,怎么解决?(一次push一条记录,不存在这样的问题)
* 对于数据倾斜是怎么解决的?
说一下Phoenix的数据加盐的底层实现原理
数据加盐有什么样的好处呢?
* 二级索引有没有用到?
如何构建的二级索引表呢?
Phoenix的两种二级索引表有什么区别呢,优劣?
二级索引的底层实现原理是什么?
* 搭建的web平台的功能是什么?
* 在久其都干了什么?简单介绍下日常工作
* 实验室项目
* 介绍下项目背景,技术实现
你在项目小组中是什么角色呢?
* 影响最大化的算法的实现原理
* 简单画一下项目的架构设计
算法(graphx) -> jar -> hdfs
jobserver承担着什么角色,如何对job进行调度?
* 情感分析使用的什么分词工具
怎么通过java调用python
* 数据是怎获取的?
* 基础知识
* 如果实现多线程呢?
常用线程池
不同线程之间的变量共享,theadlocal
# 技术二面(60分钟)
* 基础知识
* JVM内存模型
每个分区的作用
哪些分区时共享的,哪些分区时私有的?
垃圾回收算法(常见描述,对比优劣)
判断一个对象是否可回收(判断引用类型)
* 虚拟内存
* JDK, JRE, JIT
* 集合框架
HashMap内部实现,存储于读取的内部流程
ArrayList, LinkedList的内部实现原理与区别
HashMap与HashTable之间的差异
HashSet实现原理
* 如何实现多线程
创建线程
线程共享变量
线程安全
线程池
* 线程与进行的区别
* TCP, UDP区别
* TCP三次握手
* 设计模式知道哪些?
* 二叉树的前中后序遍历的区别
* 数据库索引,B树介绍原理
* 编译型语言和解释型语言的区别
* HDFS的原理
* 对数据仓库的理解
* 目前有再看哪方面的技术书籍
* 有什么想完善的技术栈
* 算法
* 求二叉树的最短叶子节点的深度(手写)
* 用栈模拟实现队列(说思路)
# 技术三面(40分钟)
* 线程池了解吗?
线程池的分类
有哪些常用的线程池
如何构造一个自己的线程池
当任务数量多于线程池中的线程数量时,应该怎么办?(消息队列)
* shell脚本说一下实现思路
如果有任务执行失败了应该怎么办,在运行的时候而不是通过日志进行判断
* Hbase数据更新的原理,timestamp
* 在久其的主要工作,承担一个什么样的角色
* 实验室的项目中承担着什么样的角色
* 对百度有什么看法?
* 有什么想问他的?
网友评论