Hadoop basic concept

HADOOP

HDFS

基本概念

  • master/slave architecture
  • an HDFS cluster has one master(NameNode/NN) - N slaves(DataNode/DN)
  • 一个文件拆分成多个block,分散存储
  • NN:负责客户端请求响应,元数据管理(文件名称、副本系数、DN地址)
  • DN:存储对应Block,心跳信息,健康状况
  • 一个文件的Block只有最后一个可能大小不同
  • Files in HDFS are write-once and have strictly one writer at any time

环境搭建

  • CDH download http://archive.cloudera.com/cdh5/cdh/5/ + filename

  • JDK

  • SSH 免密

  • 下载hadoop解压

  • 修改java_home, core-site.xml, hdfs-site.xml, slave

  • $ bin/hdfs namenode -format
    
  •  $ sbin/start-dfs.sh
    

    shell操作

  • hadoop fs -command

  • hdfs dfs -command
  • 添加hadoop/bin到环境变量~/.bash_profile source

Java API操作

  • maven导入对应版本依赖

YARN

YARN架构

  • ResourceManager: RM

    同一时间一个集群只有一个(有备份)

    处理客户端请求:提交作业,杀死作业

    监控NM,挂了重新处理

  • NodeManager: NM

    集群中有多个,负责本身节点资源管理

    定时向RM汇报本节点资源使用情况

    接受并处理来自RM的命令:启动Container

    处理来自AM的命令

  • ApplicationMaster: AM

    每个应用程序对应一个:MapReduce, Spark,负责应用程序管理

    为应用程序向RM申请资源(core, memory),分配给内部Task

    需要与NM通信:启动,停止task,task运行于container中

  • Container

    封装CPU,Memory等资源的容器

  • Client

    提交、查看、杀死作业

MapReduce

编程模型

  • Input
  • Splitting
  • Mapping
  • Shuffling
  • Reducing
  • Final Result

概念

  • Split:交由MapReduce作业处理的最小计算单元

    默认与HDFS blocksize(最小存储单元)对应

  • InputFormat:将输入的数据进行分片(split)

    TextInputFormat:处理文本格式数据

  • OutputFormat:结果数据

  • Combiner:本地的Reduce,减少MapTask输出数据量

  • Partitioner:规定MapTask输出的数据交由哪个ReduceTask处理

MapReduce1.x架构

  • JobTracker:JT

    作业管理者

    将作业分解成多个任务:Task(MapTask,ReduceTaask)

    将任务分派给TaskTracker运行

    作业的监控、容错处理(Task作业挂了,重新指派)

    接受TT心跳

  • TaskTracker:TT

    任务执行者

    与JT交互

  • MapTask

    解析数据,交给自己的map方法

    将map输出结果写到本地磁盘(如果没有Reduce,则写入HDFS)

  • ReduceTask

    将MapTask输出的数据进行读取

    按照数据进行分组传给自己的reduce方法处理

    输出结果到HDFS

MapReduce2.x架构

  • 同YARN

数据处理

日志数据内容

  • 访问系统属性
  • 访问特征:URL,停留时间
  • 访问信息:session_id,ip
  • Nginx记录

数据处理流程

  • 数据采集

    Flume:web日志写入HDFS

  • 数据清洗

    剔除脏数据:Spark,Hive,MapReduce

  • 数据处理

    Spark,Hive,MapReduce

  • 处理结果入库

    RDBMS,NoSQL

  • 数据可视化

    图形化展示,渲染:ECharts、HUE、Zeppelin

  • Copyrights © 2019-2020 Rex