hadoop期末

本文介绍了大数据背景下的Hadoop生态系统,包括HDFS、MapReduce、YARN等核心组件,详细阐述了HDFS的元数据管理机制、HA模式以及安装过程。此外,还探讨了HBase、Hive的特点和错误排查技巧。
摘要由CSDN通过智能技术生成

1、概论

  • 什么是大数据?

    指所涉及的数据集规模已超过了传统数据软件获取、存储、管理和分析的能力。

  • 大数据的特点5V:大量、高速、多样、低价值密度、真实性

    ​ volume、velocity、variety、value、veracity

  • Google三驾马车GFS、MapReduce、BigTable
    (HDFS) (HBase)

  • Hadoop生态系统:HDSF、MapReduce、HBase、Zookeeper、OoZie、Pig、Hive(七个)

2、HDFS

  • hadoop三大基本组件HDSF、MapReduce、YARN

  • HDFS的局限性:

    • 查询性能低
    • 基于一次写入多次读取设计(不支持并发写入)
    • 不支持文件修改
    • 不支持缓存
    • 不适合存储小文件
  • HDFS的主从架构(守护进程):NameNode、DataNode、SecondaryNameNode

    文章链接

    • NameNode:负责存储和管理文件系统元数据信息,包括namespace目录结构、文件块位置信息、访问权限等

      访问hdfs的唯一入口

    • DataNode:存储文件具体的数据块

      决定hdfs集群的整体数据存储能力,通过和namenode配合维护数据块

    • SecondaryNamenode:主节点的辅助,帮助主节点进行数据的合并

      辅助namenode从namenode下载fsimage文件和edits log文件进行合并

  • 元数据的管理机制:内存元数据、fsimage、edits文件,以及checkpoint过程(主要解决什么问题?参与该过程的节点有什么?)

    • 内存元数据(meta data):namenode把所有元数据存储在内存中,成为内存元数据。内存中的元数据是最完整的,包括文件自身属性信息、文件块信息映射信息。用于元数据查询

      断点数据丢失,数据不会持久化。namenode辅佐了元数据文件来保证元数据的安全完整

    • fsimage内存镜像文件:内存元数据的一个持久化的检查点,仅包含hadoop文件系统中文件自身属性相关的元数据信息,不包含文件块位置的信息,位置信息只存储在内存中。由datanode启动加入集群时向namenode进行数据块的汇报得到的,并且后续简短指定时间进行数据块报告。持久化的动作是一种数据从内存到磁盘的IO过程,会对namenode正常服务造成一定的影响,不能频繁地进行持久化。持久化存储元数据

    • edits log编辑文件:数据操作日志,记录更改记录,可于运算出元数据,为了避免两次持久化之间数据丢失的问题设计的。文件中记录的是hdfs所有更改操作的日志,文件系统客户端执行的更改操作首先会被记录到edits文件中。

    • checkpoint机制:核心是fsimage与edits log合并以生成新的fsimage的过程,fsimage就会不断更新、edits log文件不会太大

      流程:

      • sn向nn发起询问是否需要checkpoint
      • nn读取fstime中上次checkpoint时间,结合edits文件大小等因素,决定开始checkpoint
      • nn新建一个edits文件,让新操作写入到edits.new中(避免在checkpoint过程中edits文件改变)
      • SNN向NN请求(http get)获取fsimage和edits文件
      • SNN将edits与fsimage合并,生成新的fsimage.checkpoint文件
      • SNN将fsimage.checkpoint发送给NN
      • NN收到fsimage.checkpoint后将其与旧的fsimage替换,更新fstime文件记录本次checkpoint操作

      checkpoint触发条件由core-site.xml配置

      dfs.namenode.checkpoint.period=3600  //两次连续的checkpoint之间的时间间隔。默认1小时
      dfs.namenode.checkpoint.txns=1000000 //最大没有执行checkpoint事务的数量,满足将强制执行紧急checkpoint,即使尚未达到检查点周期。默认100万事务数量。
      
    • 管理过程:

      • 系统启动时,读取fsimage和edits至内存,形成内存元数据meta data
      • client向namenode发起数据增删查请求
      • namenode接收到请求后,在内存元数据中执行增删查操作,并向client返回操作结果
      • 如果是增删操作,则同时记录数据操作日志edits
      • 使用snn,在适当时机将操作日志合并到fsimage中(checkpoint过程)
  • HA模式(高可用模式)

    • 允许配置两个相同的nn,一个为active mode处于活动模式,另一个为standby mode处于待机模式
    • 两个nn数据保持一致,一旦活动节点失效,则由待机节点切换为活动节点,保证hadoop的正常运行
    • 两个nn之间的数据共享可使用nfs或Quorum Journal Node实现

    HA模式中,checkpoint通过standby namenode实现,不需要再配置snn

    jourmalnode是轻量化的节点,用于两个nn之间的通信,需要配置三个以上的节点

  • 心跳机制:用于dn与nn之间的通信

    • register:datanode启动时,将自身信息发送给namenode
    • block report:将block的信息汇报给namenode,使得namenode可以维护block和datanode之间的映射关系
    • 周期性send heartbeat:
      • 向namenode报告剩余存储空间等信息
      • 执行namenode返回过来的指令
      • 如果namenode没有收到datanode周期性的heartbeat则认为该dn已失效,nn会将失效节点中的block重新备份到其他dn上
  • 什么是block:所有的文件将被拆分为若干block,以存放再不同的datanode中(每个block将有三个备份保存到不同datanode)

  • 为什么HDFS不适合存储小文件?

    每个文件最少一个block,每个block的元数据都会在namenode占用内存如果存在大量的小文件,它们会吃掉namenode节点的大量内存

    • 处理小文件不适合存储的问题,可以把多个文件归档成为一个文件,归档后还可以透明地访问每一个文件。

    • 创建archive:(archive归档是通过mapreduce程序完成的,需要启动yarn集群)

      hadoop archive -archiveName test.har(archive名称) -p /smallfile /outputdir
      

      路径写法(-p后面的内容):

      -p /foo/bar a/b/c e/f/g,这里的/foo/bar是a/b/c与e/f/g的父路径,所以完整路径为/foo/bar/a/b/c与/foo/bar/e/f/g
      
  • HDFS命令:

    hdfs dfs -ls /     查看当前目录信息
    hdfs dfs -mkdir /hello    创建文件夹
    hdfs dfs -mkdir -p /hello/world  创建多级文件夹
    hdfs dfs -get /hdfs路径 /本地路径  下载文件到本地
    hdfs dfs -copyToLocal /hdfs路径 /本地路径
    hdfs dfs -put /本地路径 /hdfs路径  上传文件
    hdfs dfs -copyFromLocal /本地路径 /hdfs路径
    hdfs dfs -cat /文件     查看hdfs中的文件
    
  • HDFS Java API:hdfs命令的抽象,支持远程访问hdfs,应用程序能够以和读写本地数据系统相同的方式从hdfs读取数据,或者将数据写入到hdfs

  • 50070Web端口:hdfs的web服务地址,显示hdfs服务状态和日志

3、Hadoop安装

  • Hadoop的安装模式及特点(单机、伪分布、多节点集群)

    • 单机模式:hadoop运行在一个单独的JVM中,便于开发调试
    • 伪分布式集群模式:各节点在不同的java进程中,用于模拟集群环境
    • 多节点集群安装模式:各节点安装在不同的系统中,是可用于生产的集群环境
  • Hadoop由什么语言开发?Java,所以必须先安装JDK

  • SSH免密的原理是什么?RSA非对称加密

    通过加密算法将需要传输的数据进行处理后,进行tcp传输,在两端之间通过密文交互达到安全目的,本质是数据加密

  • 怎么启动Hadoop:cd /home/hadoop/hadoop-3.1.2/

    sbin/start-all.sh

  • 重要的配置文件:

    • core-site.xml:hadoop系统的通用关键属性
    • workers:定义所有dn地址
    • hdfs-site.xml:hdfs属性配置
    • yarn-site.xml:yarn基本属性
    • mapred-site.xml:mapreduce计算框架的属性配置
    • /etc/profile:涉及系统的环境,与环境变量相关
    • /etc/hosts:负责ip地址与域名快速解析的文件,hosts映射文件
  • 简单的网络异常排查
    (1)如果ping外网域名不通,但ping外网IP通,问:问题可能出在哪?
    (2)如果ping网关通,但ping外网不IP通,问:问题可能出在哪?
    ……

    在这里插入图片描述

  • 简单Linux命令

    jps 检查守护进程
    cd     cd ~跳到home目录        .表示目前所在的目录    ..表示目前目录的上一层目录   
    ../..当前目录的上上两层
    vi
    ls
    mkdir
    ssh   
    
    scp    scp [可选参数] file_source file_target 基于ssh登陆进行安全的远程文件拷贝命令
    scp local_file remote_username@remote_ip:remote_folder 
    或者 
    scp local_file remote_username@remote_ip:remote_file 
    或者 
    scp local_file remote_ip:remote_folder 
    或者 
    scp local_file remote_ip:remote_file 
    
    scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music 
    scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3 
    scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music 
    scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3 
    

    vi编辑器:

    i 编辑模式

    esc 非编辑模式

    :

    w

    q

    wq

    x

    q!

    $跳到文件末尾

    /关键字 查找关键字

4、YARN

  • 什么是YARN(yet another resource negotiator)

    统一资源管理和调度平台

  • Hadoop的哪个版本开始支持YARN的?

    MRv2

  • YARN的守护进程:ResourceManager、NodeManager

    • resourcemanager(Master):集群中各个节点的管理者,yarn的常驻进程,数目是一个,负责整个集群上资源监控、管理等
    • nodemanager(Slave):集群中单个节点的代理,yarn的常驻进程,工作节点上都有一个,启动和监控工作节点上的容器(cpu,内存等资源)
  • 双层调度范式:

    • 一级调度ResourceManager->Schedular:resourcemanager接收作业,在指定NM(nodemanager)节点上启动AM,在scheduler中执行调度算法为AM(applicationmanager)分配资源,管理各个AM
    • 二级调度NodeManager->ApplicationMaster:applicationmaster运行在NM上,向RM请求资源,接收RM的资源分配,在NM上启动container,在container中执行application,并监控application的执行状态
    • ApplicationMaster和Container的功能
      • container:yarn的资源表示模型,CPU、内存、网络等资源分配给container,由container提供给其中的任务
      • applicationmaster:运行在resourcemanager中,管理yarn中所有的application
  • Map和Reduce任务运行在哪里?Container

  • ApplicationMaster运行在哪里?Container

5、MapReduce

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • WordCount代码(实验3)
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

import java.io.IOException;
import java.util.Iterator
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值