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

1.HBase和Hive都是基于Hadoop,为什么Hive查询起来非常慢,但HBase不是?

Hive是类SQL引擎,其查询都需要遍历整张表,跑MapReduce自然很慢,但HBase是一种NoSQL的列式数据库,基于Key/Value的存储格式,不需要像Hive一样遍历,自然在速度上,乃至写的性能上是相当之快的。

相关参考文献

HIVE和HBASE区别

2.通过Java,判断一个数是否是2的n次方?

我想到的一种方法是,给定范围或者直接将Java语言所能表示的数据类型的最大值作为范围,通过Math.pow(2,n)的方法,在整个范围中遍历,然后通过if'判断比较,设置一个boolean值,如果在设定的范围中有等于给出的数值的数,则将boolean值设置为true。反之为false。后来面试官给出了一个很巧妙的方法,将所给出的数与所给出的数减一的数进行与的位运算,如果运算结果为零则表示这个数为2的n次方,而这道题据说考验的是数据敏感性。

相关参考文献

【java】判断一个数是不是2的N次方

3.Java中的经典排序算法?

java的几种经典排序算法
程序员必知的8大排序(三)-------冒泡排序,快速排序(java实现)

4.Java链表的概念、用法以及实现原理?

链表
数组和链表--Java学习笔记(一)

5.Java HashMap有序吗?如果没序,那么有序的map是怎么实现的呢?

普通的HashMap没有序,有序的HashMap有两种:LinkedHashMap和TreeMap,其中前者是基于原有HashMap的定制拓展,后者采用了一种“红黑树”的算法。

相关参考文献

Map集合中的entry是什么?
HashMap输出顺序的问题
有序的HashMap-LinkedHashMap
TreeMap实现原理
红黑树(Red-black tree)

6.JVM调优方法?

JVM调优总结

7.MapReduce的工作原理以及一个简单的WordCount的实现流程和Daemon?

Hadoop集群(第6期)_WordCount运行详解

8.TCP工作在OSI模型的第几层?IP呢?

前者工作在第四层:传输层,后者为第三层:网络层。

9.进程与线程的区别?进程有哪几种状态?

进程与线程的区别
进程状态百度百科
僵尸进程百度百科

你可能感兴趣的:(大数据工程师(开发)面试系列(2))