笔试要点汇总
- notify()是随机唤醒,不能指定确切,notifyAll()唤醒所有;
wait()会释放锁;
sleep()是静态方法,需要捕捉InterruptedException; - 给子网掩码,求子网位数、子网数目、每个子网中主机数目,
看后缀,如后缀240 = 11110000,子网位数为4
8 4 2 1 reduce(+)=14,子网数目、每个子网中主机数目为14; - 链表不支持随机访问;
- Linux下进程通信八种方法:
管道、命名管道、内存映射、消息队列、共享内存、信号量、信号、套接字; - Ganglia主要针对CPU、内存,不可以对Hadoop集群进行监控和报警;
HDFS一次写入,多次读取,只支持随机读,不支持随机写;
HDFS的Block默认保存3份;
Yarn中默认调度器是FIFO(hdp 1.X),
Capacity schedular(hdp 2.X); - Hbase是NoSql数据库;
列族最好不超过3个,列可以多个;
HBase不需要依赖MR; - chmod命令 语法 chmod user-group-other filename;
r=4,w=2,x=1,
若rwx属性,则 7;
chmod o+w filename o表示其他人,+表示增加权限; - lsof 查找已删除文件的进程占用;
- C语言绝大部分语法适用于C++;
C++中可以用typedef声明定义结构体,不能在结构体后面声明结构体数组,
即struct意义和用法同C不一致;
C++面向对象,C面向过程。 - 涉及父类、子类方法的混淆,注意是否new对象,只有new对象,调用的才是其
自身方法。
class Base
{
public:
void virtual Func()
{
cout<<"Base"<<endl;
}
};
class Derived : public Base
{
public:
void virtual Func()
{
cout<<"Derived "<<endl;
}
};
int main ()
{
Base* pBase = new Base();
pBase ->Func();
Derived * pDerived = (Derived*)pBase;
pDerived->Func();
delete pBase;
pDerived = new Derived();
pBase = pDerived;
pBase->Func();
delete pDerived
return 0;
}
输出为Base Base Derived;
- 嵌套循环时间复杂度通常为 O(n²)或O(nlogn);
- 有序树转为二叉树后,
树的先根序列 = 二叉树的先序遍历;
树的后根序列 = 二叉树的中序遍历;
- Hadoop中对象序列化反序列化并没有用到Java的Serialization;
Hadoop中对象序列化的接口为org.apache.hadoop.io.Writable;
Writable 接口不是一个说明性接口, 包含了两个方法,分别为write和readFields;
大部分的MapReduce 程 序 都 使 用 Writable 键 – 值 对 作 为 输 入 和 输 出, 但 这 并 不 是Hadoop 的 API 指定的, 其他序列化机制也能和 Hadoop 配合,并应用于 MapReduce 中; - 一个磁盘有自己的块大小,一般为128个字节;
HDFS中的块大小与本地磁盘保持一致;
由于多blocks,HDFS的文件可以大于每个单独的磁盘大小;
block默认3备份;
各个block存储在datanode;