(一面)
/**
* description : 快速排序
* @autor kwzhang
* modify :2012-6-20
*
* @param pData
* @param left
* @param right
* @return
*/
static void quicksort(int n[], int left,int right) {
int dp;
if (left < right) {
dp = partition(n, left, right);
quicksort(n, left, dp - 1);
quicksort(n, dp + 1, right);
}
}
static int partition(int n[], int left, intright) {
int pivot = n[left];
while (left < right) {
while (left < right &&n[right] >= pivot)
right--;
if (left < right)
n[left++] = n[right];
while (left < right &&n[left] <= pivot)
left++;
if (left < right)
n[right--] = n[left];
}
n[left] = pivot;
return left;
}
3.用zookeeper做任务分配如何实现
调度顺序gateway-->api-->schedule-->agent-->gitlab-->job-server-->job-cache-->agent-->log-server-->log-center
gitlab:用于脚本的版本管理,权限的控制
job-server: 保存任务,对任务打包等
gateway: 多个机房间的调度通过gateway执行任务的分配
log-center: 日志集中管理服务器
api: 任务调度的入口
schedule: 任务调度的主程序
agent: 客户端,执行具体的任务
log-server: 日志服务器
job-cache: 任务的缓存服务器,下载的任务保存在这里,agent来这里下载任务
zookeeper: 组织任务调度的结构
创建一个任务,任务序号033451dcabe9465eb03e683fe2a2f295,这个任务需要对100台机器执行脚本。所以我们要知道目标机器有哪些,这些机器的执行结果是怎样的?成功或者失败。所以我们要有一种结构表示这种关系。
msched
|
|----tasks
|
|-----$task_id {
'job_id':test1,
fail_rate:0,
concurrent:10}
|
|----targets
|
|-----$hostname
N:新建
W:
等待
R:
执行
S:
成功
F:
失败
一个新任务的创建,任务的状态为N,同时将新建的任务的信息调度给agent(将task_id的信息({'job_id':test1,fail_rate:0,concurrent:10})复制给agent的task_id),复制成功后将tasks中的任务状态改为W,复制失败将tasks中的任务状态改为F,同时更新signal信号,以便重新进行调度.
msched
|
|----tasks
| |
| |
-----$task_id {
'job_id':test1,
fail_rate:0,
concurrent:10}
| |
| |
----targets
| |
| |
-----$hostname
N:新建
| W:等待
|R:
执行
| S:成功
|F:
失败
|
|----agents
|
|-----$target
|
|
|-----tasks
|
|
|
|-----$task_id 复制过来的任务信息
|
|-----alive 心跳信息,临时节点
此时进入第二阶段。当任务被调度到agent后,客户端监控到agent的节点发生变化后,开始在客户端执行任务。执行任务分为这样的几个步骤:
(1)从job-server中选取一个任务地址,下载任务
(2)将下载后的任务文件解压并且渲染为一个可执行的脚本。
(3)调用命令执行脚本,修改server端的tasks的状态为R.
(4)将执行的结果写入log-server.
(5) 如果脚本执行成功了,更改server端tasks的状态为S,如果 失败更改Server端的tasks状态为F,同时更改signal的信号,以便任务可以重新调度
(6) 执行后清理工作空间
一个任务执行完毕后,将server端的callback的状态设置为S,以便于根据callback信息做其他任务
各个客户端的日志可以通过log-server传送给一个日志集中管理的服务器log-center
多个机房间的调度通过gateway执行任务的分配
完整的zookeeper结构图:
msched
|
|----tasks
| |
| |
-----$task_id {
'job_id':test1,
fail_rate:0,
concurrent:10}
| |
| |
----targets
| |
| |
-----$hostname
N:新建
| W:等待
|R:
执行
| S:成功
|F:
失败
|
|----agents
| |
| |
-----$target
| |
| |
| |
-----tasks
| |
|
|| |
-----$task_id 复制过来的任务信息
| |
| |
-----alive 心跳信息,临时节点
|
|
|----signal
|
|
|
|-----$task_id
|
|
|----callback
|
|----$task_id
脑裂(brain-split):脑裂是指在主备切换时,由于切换不彻底或其他原因,导致客户端和Slave误以为出现两个active master,最终使得整个集群处于混乱状态。解决脑裂问题,通常采用隔离(Fencing)机制,包括三个方面:
共享存储fencing:确保只有一个Master往共享存储中写数据。
客户端fencing:确保只有一个Master可以响应客户端的请求。
Slave fencing:确保只有一个Master可以向Slave下发命令。
Hadoop公共库中对外提供了两种fenching实现,分别是sshfence和shellfence(缺省实现),其中sshfence是指通过ssh登陆目标Master节点上,使用命令fuser将进程杀死(通过tcp端口号定位进程pid,该方法比jps命令更准确),shellfence是指执行一个用户事先定义的shell命令(脚本)完成隔离。
(2)切换对外透明:为了保证整个切换是对外透明的,Hadoop应保证所有客户端和Slave能自动重定向到新的active master上,这通常是通过若干次尝试连接旧master不成功后,再重新尝试链接新master完成的,整个过程有一定延迟。在新版本的Hadoop RPC中,用户可自行设置RPC客户端尝试机制、尝试次数和尝试超时时间等参数。
5.如何解决脑裂?并分别说明namenode和resourcemanager如何避免的脑裂?
6.如何实现分布式数据存储的一致性
7.讲一下一致性hash
8.一致性hash与paxos算法的区别
9.讲一下2PC,以及2pc什么情况下会出现数据不一致
10.红黑树的应用场景
11.Linux物理内存分配
12.对/proc的理解
13.讲一下代理模式
14.讲一个外观模式的适用场景
15.JVM垃圾回收
16.讲一下INODE,以及什么时候会创建Inode
17.I/O复用(select与epoll的区别)
二面
1.设计题:给定一个文件大小为10M,存储在HDFS上,同时有10万台机器下载这个文件,给此场景设计一个架构。当文件大小为1G、10G时如何进行设计?
2.为什么HDFS中的block默认大小为64M?
3.说一下HDFS中namenode的实现?
三面
1.看过哪些书?
2.人生目标?
3.介绍项目
4.通过项目有哪些收获?
一面
1.说一下你了解的分布式算法有哪些?
2.说一下你对HDFS源码的理解,读源码有哪些收获?
3.MapReduce的任务如何和HDFS结合起来?
4.介绍一下2PC的协议?
5.2PC在什么时候会发生阻塞?
6.HDFS写入数据时发生故障如何处理?(分三种情况,客户端down掉,DataNodedown掉,namenode down掉)
7.ZAB写入如何避免阻塞的?
8.Paxos协议在实际系统中,节点时如何选取的?Paxos协议中所有的角色都需要相同的逻辑吗?
9.如果Paxos协议在HDFS中使用的话,如何使用?需要使用几台机器运行这个协议?
10.Paxos协议的主要目的是什么?在Hadoop中举一个例子?
11.HDFS中的三副本一致性如何设计?
12.HDFS写入数据的过程如何保证写入数据的一致性的?
13.一致性hash为什么加入节点后可以保证相对的balance的状态
14.哪些适用到了一致性hash
二面
1.问项目
2.说一下HDFS的设计
3.Federationnamenode
4.HDFS写入数据时是如何降低延迟的同时保持数据一致性的?
5.Linux进程调度的策略?
6.讲一下SMP体系结构?
7.讲一下对指令流水线的理解
由于获得了运维部的offer,所以系统部三面拒绝了。
一面
1.手写树相关的算法(层次遍历的变种)
2.JVM内存布局
3.什么情况发生栈溢出
4.讲一下双亲委派模型,以及其优点
5.单利模式会破坏双亲委派模型吗?
6.TOP K问题
7.Map与reduce任务数量的指定
二面
1.O(1)时间内删除单链表中某一个节点
2.滑动窗口的中位数
3.Zookeeper如何实现master选举
5.Storm的结构
7.Hbase行健的设计原则
8.Hbase的日志合并树,以及为什么Hbase使用这个结构
9.手写Scala实现wordcount
三面
1.kafka与传统消息队列的区别
2.一致性hash
3.你为面试美团做了哪些准备
4.其他的都是看什么书啊,如何学习的大数据啊相关的问题
1.有一百个用户同时买一件商品,如何保证请求的顺序性
2.设计一个大型网站架构,尽可能的全面详细。
3.手写算法堆相关,取最大的K个数
5.讲一下僵尸进程与孤儿进程
6.讲一下fork函数的底层实现过程
8.Yarn中的appmaster down掉怎么办?
(面试问题基本都在整理的问题之敏感词三面,第一面主要问Java、撸算法,二面问Hadoop、spark等大数据相关、撸两个算法,三面问的比较杂,网络编程,Java,Linux,撸两个算法
1).简述ZAB协议以及zookeeper 12
2) .叙述你所知道的分布式一致性协议 12
2).叙述ZAB集群数据同步的过程P70 14
3).简述paxos算法 15
4).Java中接口与抽象类的区别? 15
5).简述jvm的内存布局 16
3) .可达性分析 18
3).简单叙述你所知道的垃圾回收算法与垃圾回收器 18
4).在垃圾回收对象的时候程序的逻辑是否可以继续执行 19
5) .将对象从年轻代到老年代是如何判断该对象的执行了多久?以及什么情况下发转移?哪些对象在老年代中? 20
18) .java中的引用 20
6) .通过可达性分析, 21
7) .散列解决冲突的方法 21
7).说三种你熟悉的排序算法,简述快排的过程,以及冒泡、插入、快排的区别?以及如何优化快排和冒泡排序? 21
7).简述平衡二叉树的插入删除等操作 22
7).简述为什么会出现锁机制 22
8).Java线程同步的方式有哪些? 23
9) .synchronized和volatile(可见性与禁止指令重排序)区别? 23
10).java中创建子类实例时会创建父类实例吗? 23
11).简单叙述minor和fullgc,结合网易一面第五题 23
12).简单叙述深度优先和广度优先遍历,以及区别? 24
13).网络请求的全过程,从客户端到服务器端? 24
14).TCP和UDP区别 24
15) .HashMap源码,问map源码问题?以及与linkedHashMap,treemap不同 24
16).java虚拟机new一个对象创建的过程 24
17).说一下Java中的类加载机制? 24
24) .双亲委派模型 25
17) .简述分派 25
17) .对象的内存布局: 26
17).简述虚拟机栈中各个部分p239 26
18).java中的泛型擦除? 26
21).死锁是如何产生的以及四个必要条件? 26
22).页表的作用、内存调度算法: 26
23) .简述虚拟存储器 26
25) .用java实现生产者消费者的三种方法 27
26) .简述java Object类中的方法有哪些? 27
27) .简述java中内部类 27
二面: 29
1) .请说出java中散列表、树所对应的容器类。Hashmap如何解决冲突的? 29
2) .concurrentHashMap的实现 29
3) .jdk 7与jdk 8中hashmap实现的区别 29
5) .hashmap的初始容量为什么设置为16? 30
3).Arraylist与LinkedList区别? 31
3) .ConCurrentHashmap是如何实现的,采用的什么锁? 32
4) .CopyOnWriteArrayList? 33
5).简述java内存模型的happenbefore原则 33
7) .简述ThreadLocal实现原理 33
8) .hashmap保存自定义类是需要重写自定义类的那些方法 33
4).Java中如何创建线程? 34
4) .Java线程池使用有界队列实现时的饱和策略有哪些? 35
5).启动线程时,Start与run的区别是什么? 35
5).JDK1.8的新特性? 35
5) .介绍一下AbstractQueuedSynchronizer? 36
6) .介绍一下Condition? 36
7) .介绍一下Reentrantlock? 36
8) .java中ReentrantLock的使用场景 37
9) .java中synchronize与Lock的区别的使用场景 37
6).java中synchronized代码块的实现,以及jdk1.6对锁的优化? 38
6).java中的线程池实现有哪些?FixedThreadPool底层使用的是什么任务队列? 39
7) .java中的线程有几种状态?什么状态是阻塞状态? 40
8)怎么去看一个java进程中有哪些线程处于阻塞状态的? 40
9) .java中的方法区中存放哪些东西?Jvm如何控制方法区的大小以及内存溢出的原因和解决。 40
10) .Jvm outmemery的种类。 41
11)方法区会发生OutofMemoryError吗?什么时候会呢?发生之后你怎么解决? 41
15).详细说一下域名解析的过程DNS? 41
16).请说一下spark的RDD? 42
一面: 42
1).C 中free与delete的区别 42
2)..C 创建对象的几种方式 42
6).一个程序在内存中都有哪些数据,哪些会占实际的内存 42
7).操作系统中虚拟存储器的作用,分页从逻辑地址到物理地址的映射过程 43
8).jvm如何判断对象是否失效,可达性分析是否可以解决循环引用 43
9).说出你所知道的jvm垃圾回收算法 43
10).简述zookeeper。 43
11).简述zookeeper部署的时候以多少个实例部署,为什么? 43
12).zookeeper的某个机器挂了,整个集群如何处理 43
13).zookeeper在重新选取leader的时候,还可以继续执行事务请求吗 43
14).请说一下zookeeper中leader的选举算法,即fastleaderelection算法 43
15).请说一下为什么会存在zookeeper,它可以用在哪里? 43
16)Zookeeper可以做横向扩展吗?可以通过增加机器可以增加集群的性能吗? 44
16)Zookeeper在yarn框架中如何实现避免脑裂的? 44
17).请实现单利模式。 44
18).产生死锁的四个必要条件: 44
二面: 45
1).请说一个你在Hadoop中理解最为深刻的点,比如hdfs等 45
2).简述tcp与udp的区别 45
3).简述tcp的三次握手与四次挥手?以及为什么四次挥手会有time_wait状态? 45
3).tcp为什么是三次握手不是两次,以及三次握手的缺陷? 46
4) .简述socket的过程。 47
4).游戏排名,可以使用什么数据结构 49
5).简述tcp的流量控制与拥塞控制机制 49
1.讲一下HDFS是如何容错,存储信息的,如果用户想hdfs写入数据,请讲一下整个写入的过程。重要??????? 52
2.在向HDFS中写数据的时候,当某写某一个副本的时候出错怎么处理? 53
3.HDFS的读流程。 53
4.说一下Namenode中维护的元数据中都存储了哪些信息? 54
5.讲一下Hadoop与spark的区别。 54
6.讲一下Hadoop和YARN中的任务调度算法和任务队列 54
1. jvm的内存布局 54
1.简述java中的深拷贝与浅拷贝,C 中的浅拷贝与深拷贝 54
2.Jvm垃圾回收分代以及何时发生minorGC以及FullGC, 55
3.讲一下zookeeper如何保证数据的一致性 55
4.讲一下同步异步(进程和IO) 55
5.讲一下epoll,以及与select的区别? 56
6.讲一下hashmap与concurrenthashmap的区别 57
7.ThreadLocal的实现 57
8.Synchronized的实现(无锁队列等) 57
10. CAS底层实现原理 58
12. Java中的锁优化 59
13. Hive数据倾斜的原因以及处理办法?Hive的map端聚合为什么能解决数据倾斜? 59
12.介绍yarn框架 60
13.介绍工厂模式以及其适用场景,说出你了解的几种单利模式的实现方式 60
14.Combiner函数的使用发生在哪个阶段,以及其使用的条件是什么?Partition的使用阶段? 60
14. java开发过程中遇到过哪些exception? 60
15. Hbase删除一条数据的过程。 61
16.Mysql有哪些存储引擎?有什么区别? 61
17.聚集索引与非聚集索引。 62
18. Linux的more命令 62
19.事务的隔离级别 具体见该链接 62
20.联合索引及其实现原理 64
21. Mysql优化 65
30. Fsimage与EditLog? 79
31. Fsimage与EditLog合并过程? 79
32. HDFS的安全模式 80
33. HDFS工具? 80
34. HDFS中在clientProtocol中出现的基本概念的抽象? 80
35. HDFS clientProtocol接口 81
36. HDFS ClientDataNodeProtocol接口 81
37. HDFS DataNodeProtocol接口 81
38. HDFS InterDataNodeProtocol接口 82
39. HDFS NameNodeProtocol接口 82
40. HDFS读数据与写数据。 83
41. HDFS源码实现中有哪些优化? 83
42. HDFS数据节点目录结构 83
43. HDFS数据节点的实现 84
44. DataNode流式接口的实现? 86
45. DataXceiver处理读请求? 86
46. DataXceiver处理写请求? 87
47. HDFS写入过程的几种可能? 89
48. HDFS写入过程DataNode出错如何处理(具体过程)? 89
49.写入过程客户端崩溃怎么处理? 90
50. HDFS DataNode升级过程? 90
51. HDFS中的distcp与fastcp? 90
52. Hadoop中输入切片inputsplit? 91
53. HDFS namenode的HA的实现? 92
54.简述联邦HDFS。 93
55. Hadoop如何实现全局排序 94
56. HDFS什么时候会出现副本数量多于设定值得情况? 95
57. HDFS如何添加和撤销数据节点 95
58.切片? 96
59.如何避免切片? 96
60.简述mapreduce的工作机制,以及mapreduce1与mapreduce2的区别? 96
12.mapreduce之间如何选择压缩格式? 97
12.mapreduce的计数器? 97
12.Yarn中的ApplicationMaster故障后如何处理? 98
61.简述yarn中的资源调度器? 98
62. Hadoop YARN常见问题以及解决方案 99
63.浅谈Yarn RM的总体架构 100
64.浅谈Hadoop Yarn内存和cup的资源调度(管理)和资源隔离机制(cvte问题)? 101
65.说一下Yarn中APPmaster向resourcemanager申请资源的过程? 102
66.说一下Hadoop Yarn中的container概念(cvte面试,资源调度的过程)? 103
67.简述mapreduce1的不足? 105
68.简述mapreduce的shuffle机制? 105
69.简述mapreduce的shuffle机制存在哪些缺陷? 106
70. MR速度较慢? 106
71. Combiner()函数何时被使用? 107
72. reduce()函数如何知道从哪台机器获取map输出? 107
73. Hadoop作业调优? 107
74.简述Hadoop archive? 107
75.简述Hadoop对于小文件的处理方法? 107
76.简述Hadoop的安全认证。 108
77.简述Hadoop如何衡量两个节点之间的距离。 108
78. HDFS上的副本时怎么放置的 109
79. HDFS的一致性模型 109
80.简述sqoop. 109
Hadoop namenode源码: 110
81. HDFS的namenode目录树(namenode的第一关系管理)?(携程) 110
82. HDFS namenode保存镜像文件之后,读取镜像文件时,如何判断是目录还是文件。P341 112
83. HDFS namenode的数据块和数据节点管理(第二关系管理)。 112
84. HDFS数据块副本状态的管理(主要是FSNameSystem)(携程) 113
85. HDFS有一个数据块损坏如何处理? 114
86. HDFS有一个数据块,如何知道其副本的情况呢(携程) 114
87.客户端在写入数据时只写入一个数据块,如何处理(携程) 114
88. HDFS块的复制?(携程) 114
89. HDFS写入的过程?(携程) 115
90. HDFS里面怎么建立三副本的过程?(携程) 115
91. HDFS删除多余副本的过程(源码)?(携程一面、三面均被问到,CVTE一面问到) 115
92. HDFS数据块复制时目的节点的选择原则(源码)?P408 115
93. HDFS删除一个文件的过程(源码)?(携程) 116
94. DataNode删除一个数据块的过程(源码)?(携程) 117
95. HDFS客户端删除一个文件是同步还是异步的(源码)?(携程) 117
96. Namenode中对于数据块的管理(增删改查)。 117
97. Namenode中对于数据节点的管理(携程)? 117
98. Spark中划分stage为什么以宽依赖为基准?(携程) 117
99. Spark中的DAGScheduler和TaskScheduler的区别及任务调度过程?(携程) 117
100. Spark中的stage必须要等所有父stage执行结束吗?(携程) 117
101.当下游stage从上游stage拉取数据时,需要上游stage保持运行(对等)还是关闭?(携程) 117
102.当上游stage关闭时,将数据存储在哪里?(携程) 117
103. Spark的shuffle中的map输出是否有序(携程) 117
104. Spark的shuffle中的map输出结果的处理结构是什么?(携程) 118
1.简述storm的计算结构? 155
1.storm怎么完成对单词的计数?可靠的单词计数呢? 156
2.metaq消息队列,zookeeper集群storm集群就可以完成对商城推荐系统功能吗 还有其他中间件吗? 156
3.storm的组件,逻辑? 156
4. storm中的Stream grouping有哪几种方式? 158
5.提高storm的并发度? 159
6.storm的可靠性如何实现,包括spout与bolt两部分?P37 159
Kafka相关: 160
1.分布式的情况下,如何保证消息的顺序? 160
2.如何提高kafka的效率?即优化? 162
3. kafka与传统消息队列的区别? 162
spark相关: 162
1.说一下spark中的基本工作流程? 162
2.说一下spark的运行模式? 162
2.RDD是如何容错的? 163
2. reduce如何获取map任务的输出? 163
3. spark map端计算结果缓存处理并简述appendOnlyMap? 163
3.spark map任务如何输出? 163
3.spark任务调度模块? 163
4.spark的存储管理? 164
4.spark的存储管理中的RDD持久化? 165
4.spark的存储管理中的shuffle持久化? 165
5.说一下spark中的shuffle过程? 165
6.说一下spark Streaming? 166
6.说一下spark Streaming支持的输入源有哪些? 167
7.spark streaming与spark作业的关系? 167
8. spark Stream优化? 167
8.spark streaming优点缺点(常问)? 167
9. spark Streaming的容错处理? 168
10. spark Stream与storm的区别 168
8. spark中reparation与coalesce的区别? 168
9. spark中persist与cache的区别? 168
8.讲一下完整的ETL过程 169
8. flume如何采集数据 169
1.简述你所知道的分布式一致性协议:2PC 3PC paxos算法 169
2.简述paxos算法与Zab协议的联系与区别? 170
3在HBASE中master的下线是否会引起Hbase完全宕机? 170
4说明zookeeper ACL的权限模式: 170
5简述zookeeper中leader选举的过程 170
6简单叙述zookeeper的内存模型 170
7.简单叙述zookeeper的日志文件与数据快照 170
8.简单介绍一下堆(数据结构)及堆排序 171
9.简单叙述Hbase? 171
10. Hbase中的zookeeper挂掉会出现什么? 172
9.Hbase中master进行负载均衡的算法?P336三种 172
9.在Hbase的特点? 172
9.在Hbase与Hive的区别? 172
9.Hbase表中新建列对行健有什么影响? 172
9.在Hbase中regionserver发生故障后的处理过程? 172
9.Hbase region切分过程?P264 173
9.Hbase合并过程?P265 173
11. Hbase中的逻辑模型与物理模型? 173
12.介绍Hbase过滤器? 173
13.介绍Hbase计数器? 174
14. Hbase协处理器(coprocessor)? 174
9.触发器与存储过程的区别 175
10.在Hbase二级索引 175
10.在Hbase region预分区? 176
15. Hbase中rowkey的设计原则 176
16. Hbase中get和scan的功能以及实现的区别 176
17. Hbase中cell的结构 177
15.Hbase中region太小和region太大带来的冲突.以及如何解决 177
18. HBASE中compact用途是什么,什么时候触发,分为哪两种,有什么区别,有哪些相关配置参数? 178
19. Hbase中列族的设计原则 178
11. Hbase的操作主要有get put scan delete(墓碑)。简单介绍delete,及其缺陷。 178
12.Hbase建表时的注意事项? 178
13.Hive与Hbase整合后,什么时候创建外部表以及内部表? 179
14. Hbase接收数据,短时间大量导入会被锁,如何处理? 179
15. Hbase存储一行数据的过程 179
16. Hbase查询一行数据的过程 179
17. Hbase性能优化 179
18. Hbase布隆过滤器:存在一定的误判率,且不可删除 180
14. Hbase中的Htable是否是线程安全的 181
15. Hbase目录结构 181
16. Hbase Hfile结构 181
14. WAL日志为何共享一个而不是每个region一个,以及WAL的切分.P274 182
15. LMS树的优缺点 182
14.聚族索引与非聚族索引的区别 183
15. B 树与B-树的区别 184
15.java中thread与Runnable的区别? 185
16.java中闭锁CountDownLatch与栅栏CyclicBarrier的区别? 185
17.通过trie树统计词频。见附件 186
19.大数据量下Mysql查询优化措施 186
20.长连接与短连接? 186
21.介绍乐观锁与悲观锁 186
22.叙述java中wait与sleep的区别以及notify与yield? 186
23.介绍java中CAS原理 187
24.syncronized与Lock的区别? 187
25.Hbase与Hive整合? 187
26.tcp粘包问题如何解决? 187
28. HIVE内部表与外部表的区别,以及各自使用与哪种环境?Hive与传统数据库的区别? 189
29. Hiverc文件? 189
30. Hive分区? 189
31. Hive分区过多有何坏处以及分区时的注意事项?(cvte面试题) 190
32. Hive中复杂数据类型的使用好处与坏处? 190
33. Hive分桶? 190
34. Hive加载数据? 190
35. Hive的表生成函数举例? 191
36. Hive中的常用与语法? 191
37. Hive元数据库是用来做什么的,存储哪些信息,为何不使用Derby? 191
38. Hive什么情况下可以避免进行mapreduce? 191
39. Hive连接? 191
40. Hive JOIN优化? 192
41. Hive外连接陷阱?P127 192
42. Hive mapjoin? 193
43. Hive的sort by,order by,distributeby,cluster by区别? 193
44.使用hive如何进行抽样查询?P136 194
45. Hive的分组排序(row_number()),组内TopN 194
46. Hive分桶的原因或者说有什么好处? 195
47. Hive视图? 195
48. Hive举例说明Multi-group by。 196
49. Hive严格模式 196
50. Hive工作原理 196
51. Hive索引 197
52. Hive插入 198
53. Hive性能调优 198
54. Hive文件压缩格式有哪些,效率如何? 199
55.如果频繁的使用自定义的UDF函数,如何不去每次通过create function temporary函数创建? 201
56.在hive中求出一个数据表中在某天首次登陆的人?借助collect_set处理。 201
57. Hive UDF UDAF UDTF介绍? 201
58. Hive UDF编写过程? 201
59. Hive编写udaf的过程,并实现group_concat功能 202
60. hive中的transform 205
61. Hive与传统关系型数据库的区别? 205
62. Linux中的管道与重定向?Grep? 205
63.列举你所知道的分布式算法或者协议?
64. Java中创建字符串生成几个对象?
补充
Linux内核: 66
1. Linux中的进程创建函数fork 66
2. Linux中进程的实现。 66
3. Linux中如何处理僵尸进程? 68
4. Linux中如果父进程退出怎么办? 68
6. Linux中内存分配。 68
7. Linux中的僵尸进程 69
8. Linux中进程地址空间 69
9. Linux中进程通信的方式 70
10. Linux中进程调度。 70
11. Linux中CFS的实现? 72
14.系统调用的作用? 73
19. Linux中的内存管理(内核中的内存分配)? 74
20. Linux中进程地址空间是如何表征的? 75
22. Linux寻址时是如何绕过段机制的? 76
23. Linux中进程的组成? 76
24. Linux中保护模式与实模式以及寻址过程? 76
25. Linux VFS? 77
27. Linux中cache与buffer的区别(携程)? 78
1.如何将一个用户源程序变为一个可在内存中执行的程序? 135
2 Linux如何将源程序编译成目标文件的? 136
2 Linux下的静态库与动态链接库 136
计算机网络: 139
131.简述SSL协议 140
132.简述http协议与https协议 140
134.七层协议每一层的任务及作用 140
135. Tcp/Ip协议族 141
137. UDP结构 144
138. IP分片 144
140. DNS解析过程 146
141. TCP协议 146
142. TCP断开为什么四次握手,而连接只需要三次? 147
143. ARQ与滑动窗口 147
设计模式相关: 148
144.设计模式的原则 148
145.代理模式的设计与实现以及使用场景 149
146.简单工厂模式的设计与实现及与策略模式的区别 149
147.工厂方法模式及其与简单工厂模式的区别? 150
148.原型模式 150
149.外观模式 (常问)150
150.建造者模式 问过151
151.观察者模式 问过152
9简述抽象工厂模式 问过153
9简述状态模式 153
10简述适配器模式 常用 153
11简述备忘录模式 154
12简述组合模式 154
13简述迭代器模式(高级编程语言中都已实现) 154
14简述单利模式 问过154
12.简述桥接模式 154
13.简述命令模式 155
14.简述责任链模式 问过 155
15.简述中介者模式 155