hadoop,linux,zookeeper常见考试题

简单描述你对Hadoop集群SafeMode模式的理解?

集群处于安全模式,不能执行重要操作(写操作),集群属于只读状态。但是严格来说,只是保证HDFS元数据信息的访问,而不保证文件的访问。集群启动完成后,自动退出安全模式, 如果集群处于安全模式,想要完成写操作,需要离开安全模式。 1bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态) 2bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态) 3bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态) 4bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)。 对于全新创建的HDFS集群,NameNode启动后不会进入安全模式,因为没有Block信息。      

hadoop集群中如何设置黑名单和白名单?作用分别是什么?

添加到白名单的主机节点,都允许访问NameNode,不在白名单的主机节点,会被退出

        创建white.hosts文件:文件中添加的主机名为白名单

        在hdfs-site.xml配置文件中增加white.hosts属性,并分发文件

        在黑名单上面的主机都会被强制退出

        创建black.hosts文件:文件中添加的主机名为黑名单

        在hdfs-site.xml配置文件中增加black.hosts属性,并分发文件

是否可以在Windows上运行Hadoop?不能

在MapReduce处理任务时,简单描述经过哪节基本流程?

第一个阶段的MapTask并发实例,完全并行运行,互不相干

 第二个阶段的ReduceTask并发实例互不相干,但是他们的数据依赖于上一个阶段的所有MapTask并发实例的输出

MapReduce编程模型只能包含一个Map阶段和一个Reduce阶段,如果用户的业务逻辑非常复杂,那就只能多个MapReduce程序,串行运行

简答描述以下TextInputFormat怎么进行文件切分?

拿到文件之后,默认情况下切片的切块大小是块大小128M,如果文件大于128M,那    就看文件是否大于128 M的1.1倍(140.8M),如果不大于就不切分,如果大于,就按照    128M大小进行切分

假如Namenode中没有数据会怎么样?

将SecondaryNameNode中数据拷贝到NameNode存储数据的目录

 使用-importCheckpoint选项启动NameNode守护进程,从而将SecondaryNameNode中        数据拷贝到NameNode目录中

如何实现服务器之间的免密登录(便捷版),SSH采用的是什么加密?

SSH  [url=https://baike.baidu.com/item/Secure%20Shell]Secure Shell[/url] 的缩写,是一个网络安全协议,ssh-keygen -t rsa 可以生成公钥和私钥,要实现免密登录我们需要将本机的公钥通过 ssh-copy-id 主机名 将公钥给其他服务器

简单描述MapReduce不合适对哪些场景的使用,其实问得就是他得缺点:

MapReduce的缺点:不擅长实时计算,不擅长流式计算,不擅长DAG(有向图)计算

MapReduce的基本数据类型包括哪些?

BooleanWritable、ByteWritable、IntWritable、FloatWritable、LongWritable、DoubleWritable、   TextWritable、MapWritable、ArrayWritable

yarn有哪几部分组成,作用分别是什么?调度器主要有哪三种,hadoop默认的是哪一种?

由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成;

 ResourceManager:处理客户端请求、监控NodeManager、启动或监控ApplicationMaster、资源的分配与调度

NodeManager:管理单个节点上的资源、处理来自ResourceManager的命令、处理来自    ApplicationMaster的命令

ApplicationMaster:负责数据的切分、为应用程序申请资源并分配给内部的任务、任务的    监控与容错

Container:Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。

FIFO、Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)

Hadoop默认的资源调度器是Capacity Scheduler(容量调度器)

如果需要在namenode节点群起集群,你需要如何配置?

必须实现服务器之间的免密登录

修改hadoop2.7.2文件夹下的etc/hadoop/slaves文件

简单描述Shuffle过程环形缓冲区的作用?

key,valuemap()方法输出,被outputcollector收集通过getpartitioner()方法获取分区号,在进入环形缓冲区。默认情况下,环形缓冲区大小值为100MB。当map输入的数据进入环形缓冲区的量达到80MB以上时,那么开始执行溢写过程,溢写过程中如果有其他数据进入,那么由剩余的百分之20反向写入。溢写过程会根据keyvalue先进行分区,后进行排序,最终maptask溢写文件经过归并排序后落入本地磁盘,reduceTask将多个mapTask下相同分区的数据copy到不同的reduceTask中进行归并排序后一次读取一组数据给reduce()函数

 

Mapreduce执行过程中,在执行Reduce Task之前主要做哪些工作?

计算MapTask数量,文件的切分,向环形区写入数据,之后对文件进行分区快排,溢    出到文件(分区且区内有序),之后进行归并排序

 

hdfs-site.xml的3个主要属性?

指定HDFS副本数量:dfs.replication

指定SecondaryNameNode:dfs.namenode.secondary.http-address

指定DataNode:dfs.datanode.address

 

Hadoop完全分布式模式有什么注意点?

设计集群:将namenode、datanode、resourcemanager、nodemanager、historyserver        放在不同服务器上

 设置namenode节点所在的服务器地址和临时文件的存储目录(core-site.xml)

配置文件的副本数(hdfs-site.xml)

 配置mapred-site.xml和yarn-site.xml

集群中的其他节点和hadoop01上的配置保持一致

Hadoop集群可以运行的3个模式?

本地运行模式、伪分布式运行模式和完全分布式运行模式

用一句话总结Combiner的作用和意义?并说明使用它的前提?

Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减小网络传输量。  

 

用shell脚本完成如下功能,求极值,根据输入数据,输出最大,最小值(达到手写的程度

#!/bin/bash
        min=$1
        max=$
        for i in "$@"
        do
                if [ $min -gt $i ]
                then
                        min=$i
                fi

                if [ $max -lt $i ]
                then
                         max=$i
                fi
        done
        echo "最大值为" $max
        echo "最小值为" $min

 

编写一个最基本的wordcount单词统计的mapreduce(达到手写的程度,可以参照上课的代码样例)

public class WcMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
   private Text keyText = new Text();
   private IntWritable one = new IntWritable(1);
   @Override
    protected void map(LongWritable key, Text value, Context context) throws IOException,           InterruptedException {
        String line = value.toString();
        String [] fileds = line.split(" ");
        for (String filed : fileds) {
            keyText.set(filed);
            context.write(keyText, one);
        }
    }
        }
   public class WcReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
    private IntWritable total = new IntWritable();
    @Override
    protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws            IOException, InterruptedException {
       int sum = 0;
        for (IntWritable value : values) {
            sum += value.get();
        }
        total.set(sum);
        context.write(key, total);
    }
       }
        public class WcDriver {

    public static void main(String[] args) throws IOException, ClassNotFoundException,                          InterruptedException {
        Job job = Job.getInstance(new Configuration());
        job.setJarByClass(WcDriver.class);
        job.setMapperClass(WcMapper.class);
        job.setReducerClass(WcReducer.class);
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
        FileInputFormat.setInputPaths(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));
        boolean b = job.waitForCompletion(true);
        System.exit(b ? 0 : 1);
    }
        }

列出常用的hdfs 命令(至少10个,并说明命令的作用)

Hadoop fs | hdfs dfs 命令分类  本地文件 ->  HDFS     -put   将本地数据上传至hdfs     -copyFromLocal 将本地文件数据拷贝到hdfs     -moveFromLocal 将本地文件数据移动到hdfs,成功后本地数据会删除     -appendToFile 追加一个本地文件到hdfs已经存在的文件末尾  HDFSHDFS之间     -ls  查看hdfs文件目录     -mkdir HDFS上创建目录     -rm 删除文件或者文件夹     -rmr   递归删除     -cp  从一个目录拷贝文件至另一目录     -mv HDFS目录中移动文件     -chown  修改文件所属用户权限     -chmod  修改文件所属读写权限     -du -h   文件夹暂用的空间大小     -df -h   查看系统分区情况     -cat 查看文件       HFDS -> 本地     -get  hdfs下载文件至本地     -getmerge  合并hdfs目录下的文件至本地     -copyToLocal  hdfs拷贝文件至本地     

列出常用的10个linux命令,并说明它们的作用:

查看当前网络IP:ifconfig

        修改IP地址:vim /etc/ssconfig/network-scripts/ifcfg-eth0

        启动防火墙:servicer network start

        关闭iptables服务的自启动:chkconfig iptables off

        创建空文件:touch 文件名

        添加新用户:useradd 用户名

        显示登陆用户的用户名:who am i

        改变权限:chmod 421 文件或目录

        查看系统中的所有进程:ps -aux

        查询所安装的rpm软件包:rpm -qa | grep rpm软件包

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值