2016-02-19

  1. 在/etc/fstab文件中指定的文件系统加载参数中, 参数一般用于CD-ROM等移动设备。
    A. Defaults 默认
    B. sw 自动挂载可读写分区
    C. rw和ro 读写权限和只读权限
    D. noauto

  2. Mapreduce中的Combiner就是为了避免map任务和reduce任务之间的数据传输而设置的,Hadoop允许用户针对map task的输出指定一个合并函数。即为了减少传输到Reduce中的数据量。它主要是为了削减Mapper的输出从而减少网络带宽和Reducer之上的负载。
    数据格式转换:
    map: (K1, V1) → list(K2,V2)
    combine: (K2, list(V2)) → list(K3, V3)
    reduce: (K3, list(V3)) → list(K4, V4)
    注意:combine的输入和reduce的完全一致,输出和map的完全一致
    使用注意:
    对于Combiner有几点需要说明的是:
    1)有很多人认为这个combiner和map输出的数据合并是一个过程,其实不然,map输出的数据合并只会产生在有数据spill出的时候,即进行merge操作。
    2)与mapper与reducer不同的是,combiner没有默认的实现,需要显式的设置在conf中才有作用。
    3)并不是所有的job都适用combiner,只有操作满足结合律的才可设置combiner。combine操作类似于:opt(opt(1, 2, 3), opt(4, 5, 6))。如果opt为求和、求最大值的话,可以使用,但是如果是求中值的话,不适用。
    4)一般来说,combiner和reducer它们俩进行同样的操作。
    但是:特别值得注意的一点,一个 combiner 只是处理一个结点中的 的输出,而不能享受像reduce 一样的输入(经过了 shuffle 阶段的数据),这点非常关键。

  3. HTTP会话的四个过程
    A. 建立tcp连接
    B. 发出请求文档
    C. 发出响应文档
    D. 释放tcp连接

  4. 在N*M的草地上,提莫种了K个蘑菇,蘑菇爆炸的威力极大,兰博不想贸然去闯,而且蘑菇是隐形的.只 有一种叫做扫描透镜的物品可以扫描出隐形的蘑菇,于是他回了一趟战争学院,买了2个扫描透镜,一个 扫描透镜可以扫描出(3*3)方格中所有的蘑菇,然后兰博就可以清理掉一些隐形的蘑菇. 问:兰博最多可以清理多少个蘑菇?


import java.util.Scanner;

public class Main {

    public static int maxn=25;

    public static int gcd(int x,int y){
        if(y==0) return x;
        else return gcd(y,x%y);
    } 

    public static boolean isHurt(int x0,int y0,int x1,int y1,int r){
        return Math.sqrt(Math.pow((double)(x1-x0), 2)+Math.pow((double)(y1-y0), 2))<=r;
    }

    public static void init(int a[][]){
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a[i].length;j++){
                a[i][j]=0;
            }
        }
    }

    public static void print(int a[][]){
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a[i].length;j++){
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
    }

    public static int findTheMaxx(int map[][],int n,int m){
        int dir[][]={{-1,-1},{-1,0},{-1,1},{0,-1},{0,0},{0,1},{1,-1},{1,0},{1,1}};
        int maxx=0,maxx_i=0,maxx_j=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                int e=0;
                for(int q=0;q<9;q++){
                    int x=i+dir[q][0],y=j+dir[q][1];
                    if(x>=0 && x<n && y>=0 && y<m && map[x][y]>0)
                        e++;
                }
                if(e>maxx){
                    maxx=e;
                    maxx_i=i;
                    maxx_j=j;
                }
            }
        }
        for(int i=0;i<9;i++){
            if(maxx_i+dir[i][0]>=0 && maxx_i+dir[i][0]<n &&
                    maxx_j+dir[i][1]>=0 && maxx_j+dir[i][1]<m)
                if(map[maxx_i+dir[i][0]][maxx_j+dir[i][1]]>0){
                    map[maxx_i+dir[i][0]][maxx_j+dir[i][1]]-=1;
                }
        }
        return maxx;
    }

    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        int map[][]=new int[maxn][maxn];
        while(cin.hasNext()){
            init(map);
            int n=cin.nextInt();
            int m=cin.nextInt();
            int k=cin.nextInt();
            for(int i=0;i<k;i++){
                int x=cin.nextInt();
                int y=cin.nextInt();
                map[x-1][y-1]++;
            }
            int a=findTheMaxx(map,n,m);
            int b=findTheMaxx(map,n,m);
            System.out.println(a+b);
        }
    }
}
  1. 对选项C的解释: 用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件

  2. 新建一个管理员用户admin,需要使用的参数()
    useradd -u 0 -o admin
    -u 用户号 指定用户的用户号;因为系统用户的用户号为0,故指定用户号为0 如果同时有-o选项,则可以重复使用其他用户的标识号;因为系统本身存在用户号为0的系统用户,故应该使用该参数。

  3. MySQL实现了四种通信协议
    TCP/IP协议,通常我们通过来连接MySQL,各种主要编程语言都是根据这个协议实现了连接模块
    Unix Socket协议,这个通常我们登入MySQL服务器中使用这个协议,因为要使用这个协议连接MySQL需要一个物理文件,文件的存放位置在配置文件中有定义,值得一提的是,这是所有协议中最高效的一个。
    Share Memory协议,这个协议一般人不知道,肯定也没用过,因为这个只有windows可以使用,使用这个协议需要在配置文件中在启动的时候使用–shared-memory参数,注意的是,使用此协议,一个host上只能有一个server,所以这个东西一般没啥用的,除非你怀疑其他协议不能正常工作,实际上微软的SQL Sever也支持这个协议
    Named Pipes协议,这个协议也是只有windows才可以用,同shared memory一样,使用此协议,一个host上依然只能有一个server,即使是使用不同的端口也不行,Named Pipes 是为局域网而开发的协议。内存的一部分被某个进程用来向另一个进程传递信息,因此一个进程的输出就是另一个进程的输入。第二个进程可以是本地的(与第一个进程位于同一台计算机上),也可以是远程的(位于联网的计算机上)。正因为如此,假如你的环境中没有或者禁用TCP/IP环境,而且是windows服务器,那么好歹你的数据库还能工作。使用这个协议需要在启动的时候添加–enable-named-pipe选项

  4. 因为B机器未监听任何端口,A又向B的80端口发送了数据包,所以B不会建立连接,会异常结束建立连接,会发送RST包,如果是正常结束的话就会发送FIN包,RST是TCP连接中 出现差错产生的,RST置1可以用来拒绝一个非法的报文段或拒绝打开一个连接

  5. 32位/33MHzPCI总线的峰值带宽是多少?
    本题考查总线带宽的计算。公式Q=W×F/N计算总线的数据传输速率Q(其中,W为总线数据宽度,即总线位宽/8;F为总 线:工作频率;N为完成一次数据传送所需的总线时钟周期个数)。总线 位宽为32位,总线工作频率为33.3MHz,PCI 1.0规范完成一次数据传 送需1个总线时钟周期时,总线带宽Q133MB/s。正确答案为选项C

你可能感兴趣的:(实习笔记)