Hadoop知识点总结!!!

没什么好解释的,纯粹的干货分享。。。

Hadoop:
    1.Hadoop的四大模块:
        1.common:基础模块,用于支撑其他模块
        2.mapruedce:分布式计算框架
        3.YARN:分布式资源调度框架
        4.HDFS:分布式文件系统
        
    2.端口:
        1.HDFS:8082 webUI端口:8088
        2.YARN:8032 webUI端口:50070
        3.zookeeper:2181
        4.JobHistoryServer:19888
        
    3.Hadoop2.x分布式搭建的详细过程:
        一:linux相关:
            1.ip,网关,DNS
            2.hostname,本地域名解析映射(hosts)
            3.关闭防火墙,selinux
            4.ssh免密钥登陆
            5.ntp时间同步
            6.jdk配置
        二:Hadoop相关:
            1.上传,解压
            2.修改配置
                -》修改-evn.sh
                    hadoop、yarn、mapred
                -》core-site.xml
                    hdfs入口,临时文件目录
                -》hdfs-site.xml
                    副本数、访问权限、secondary节点
                -》mapred-site.xml
                    运行的框架、JobHistoryServer节点
                -》yarn-site.xml
                    resourceManager的地址、mapreduce运行方式、日志聚集
                -》slaves
                    所有从节点地址
        三:分发文件
        四:格式化文件系统
        五:启动:
                先启动hdfs后启动yarn
                
    4.Hadoop2.x中HDFS与YARN的四个进程的功能及启动方式
        4个进程的功能:
            NameNode的功能:
                -》处理客户端发过来的请求
                -》管理从节点
                -》管理元数据
            DataNode的功能:
                负责数据运输、负责读写数据的功能
            ResourceManager的功能:
                负责集群资源的管理和任务调度、处理用户的请求、管理从节点
            NodeManager的功能:
                负责处理所有任务
        4个进程的启动:
            sbin/hadoop-daemon.sh start namenode
            sbin/hadoop-daemon.sh start datenode
            sbin/yarn-daemon.sh start resourcemanager
            sbin/yarn-daemon.sh start nodemanager
            
    5.jar包提交运行在yarn上的执行流程
        1.用户提交jar包,向resourcemanager请求提交任务
        2.resourcemanager接受任务,并随机选择一台nodemanager启动appmaster
        3.appmaster向resourcemanager请求资源
        4.resourcemanager分配资源,并将资源分配信息返回给appmaster
        5.appmaster联系nodemanager启动相关Task
            ps:Task:maptask的个数由数据块的个数决定;
                               ruducetask的个数可以自己设置
                    每个task都会调用各自的方法:map方法的调用次数由数据的行数决定;
                                                                      reduce方法的调用次数由key的类型个数决定。
        6.运行的task时刻向appmaster汇报进度
        7.reduce task将执行结果返回给appmaster
        8.appmaster将结果返回给resourcemanager,并注销自己
        
    6.请描述MapReduce运行的五大过程,包含详细的shuffle过程
        input
            1.读取HDFS上文件数据
            2.将数据转成keyvalue形式,key是行偏移量,value是行内容
        map
            接收input的输出
            根据分片的个数,启动相应task
            每个map task对每条keyvalue调用map方法进行处理
        shuffle
            ->Map shuffle
                将map输出的数据输入环形缓冲区内
                在缓冲区进行分区,对每个分区进行排序
                达到阈值80%开始溢写到磁盘,变成小文件
                溢写结束,将所有小文件进行合并,并且对每个分区进行排序
                map task结束,通知appMaster
            ->reduce shuffle
                app master通知reduce,reduce去每个map task拉取属于自己分区的数据。
                对属于自己分区的数据进行合并,并排序
                对相同key进行分组
        reduce
            读取shuffle的输出,对每一种key,调用reduce方法进行处理
        output    
            将reduce的输出写入到hdfs中
    7.请写出自定义数据类型时,需要继承哪些类,以及实现的方法及其功能
                    ps:编写MapReduce模板
                        Driver:
                            -》不继承也不实现
                            -》继承和实现  -官方推荐
                                extends Configured implements Tool
                            -》不继承只实现 - 企业用的最多
                            implements Tool
         实现Writable/WritableComparable接口
        定义属性,并生产对应get、set方法。获取值和赋值
        write:序列化
        readFiled:反序列化
        compareTo:比较
        toString:转换为String类型对象
        无参和有参构造方法:初始化构建
        hashCode和equals:比较验证

    8.元数据:(描述数据的数据)
        元数据在哪里?????:
            存储在内存中,也存储在磁盘(存放的文件:fsimage)
        由谁来同步元数据:
            secondaryNameNode功能:
            辅助Namnode同步本地元数据
            fsimage(old) + edits = fsimage(new)
            
            
            
            

猜你喜欢

转载自blog.csdn.net/superme_yong/article/details/83004140