【大数据】小总结

hadoop:生态圈  hdfs  mapreduce计算框架  yarn

Hdfs  :  分布式文件系统,用于n个服务器数据的管理。

          每台服务器都需要安装hdfs分布式文件系统
          client:客户端用于交互Datanode Namenode ,文件分片
          Namenode:负责存储元数据-->块大小数量及位置。。。
                    与datanode交互
          Datanode:实际数据存储的操作
          Secondary Namenode:负责辅助Namenode合并文件--> fsimage edits
          
yarn 资源调度管理器
     Resourcemanager:负责资源的请求处理
     NamenodeManager:负责找资源 负责启动container容器(内存,cpu)
    
mapreduce:就是一个计算框架
     实现框架:实现mapper类接口  实现reducer类接口
               创建一个job,封装启动类,mapper类,reducer类,
                  mapper的输出类型,reducer的输出类型,输入输出文件的路径 ,启动

在实现mapreduce的过程中涉及到组件
  1、初始化inputformat组件:就是读取文件,读取成keyd-value的形式
     0  hello taiyuanligong
     12 hello  chognqing
     29 welcome to taiyuanligong
    
     1 hello taiyuanligong
     2 hello  chognqing
     3 welcome to taiyuanligong
 
     RecorderReader: getCurrentKey  getCurrentValue
     给自定义的map方法  value.toString
  2、分区partitionner:分区是根据我们自己的需要来定的。
     默认分区是一个分区
     默认分区和自定义分区,每一个分区对应着一个ReduceTask
     每一个ReduceTask对应一个结果文件
     每一个ReduceTask对应一个任务数
     自定义分区后在driver中设置对应分区的任务数量   
  3、合并combiner:把多个小的文件合并成一个大的文件,减少任务数量
      1000个小文件  1000个task  同时能并行运行的任务是50 需要运行20
      500个文件     500个task   同时能并行运行的任务是50 需要运行10
   
  4、排序:
      全排序:只需在自定义的bean中实现一个类WritableCompare的compareTo方法
              在compareTo方法中实现自己排序的规则:从大到小或者从小到大
      部分排序:借助我们自定义的分区
      在driver中设置分区,设置自定义的bean。
 

猜你喜欢

转载自blog.csdn.net/Qmilumilu/article/details/104677234
今日推荐