zoukankan      html  css  js  c++  java
  • Hadoop入门知识总结

    一、大数据
    1.含义
    大数据指在一定时间范围内使用常规的软件无法处理的数据集合!

    2.特点
    ①海量
    ②高增长率
    ③多样性
    ④低价值密度

    二、Hadoop
    1.含义
    狭义: Hadoop只代表hadoop框架本身!
    广义: hadoop代表整个hadoop体系,由hadoop框架和其他依赖于hadoop的其他框架共同组成!

    2.hadoop的组成
    2.x版本

    HDFS: 负责大数据存储的一个分布式文件系统!
    YARN: 负责为大数据计算程序提供资源申请,管理和调度的框架!

    MapReduce: 编程框架
    Common: 常用的工具包

    2.x版本和1.x版本的区别:
    在1.x版本,MR既负责运行MR程序还负责为MR程序申请资源!Hadoop集群只能为自身的MR程序提供服务!
    在2.x版本,MR只负责MR程序的计算,资源的调度和管理由YARN负责!Hadoop集群,不仅能为自身的MR程序提供服务!
    还可以为第三方计算引擎,例如TeZ,Spark,Flink等提供计算资源的调度服务!

    三、HDFS中的核心进程

    1.核心进程
    Namenode(1个): 负责HDFS上所有文件元数据的管理!
    元数据: 文件的属性(文件名,大小,创建时间,所属主,由哪些块组成)

    职责: ①负责接受客户端的所有请求
    ②负责接受DN上报的块信息
    ③负责向DN分配任务,例如维护文件的副本数等

    Datanode(N个): 负责HDFS上所有文件数据的存储!

    SecondaryNamenode(N个): 负责协助Namenode工作!

    四、YARN中的核心进程

    1.核心进程
    ResourceManager(1个): 负责整个集群所有资源的管理和调度!
    职责: ①负责接受客户端的所有请求
    ②负责接受NM上报的块信息
    ③负责向NM分配任务,例如检查NM是否健康,是否在线等

    NodeManager(N个): 负责当前机器所有资源的管理和调度!

    五、MapReduce中的核心进程

    1.MapReduce是一个编程模型!这个模型由两个阶段组成,一个称为Map阶段,另一个称为Reduce阶段!
    在Map阶段和Reduce阶段分别启动若干进程负责运算!这些进程称为Task!

    在Map阶段启动的Task称为MapTask!
    在Reduce阶段启动的Task称为ReduceTask!

    将一个MapReduce程序称为一个Job!

    一个Job中会启动若干个Task!

    在Job启动时,Job会先创建一个MRAppMaster进程,由这个进程和RM进行通信,为Job中的每个Task申请
    计算所需要的资源!

    Task的请求,会被RM缓存到一个调度队列中,由NM领取Task,领取后NM会根据Task要求,提供计算资源!
    提供后,为了避免计算资源在当前Task使用时被其他的task抢占,NM会将资源封装到一个Container中!

    Container可以对计算资源进行隔离!

    六、安装
    1.环境要求
    必须保证已经安装了JDK,有JAVA_HOME环境变量!

    2.安装
    解压在linux下编译的Hadoop!

    3. 建议将HADOOP_HOME提升为全局变量!
    后续的HADOOP体系中的所有的框架,都通过HADOOP_HOME找到hadoop的安装目录!
    将bin,sbin目录配置到PATH中!

    4.目录结构
    bin: 常用的工具hadoop所在的目录
    sbin: 提供对集群的管理功能,例如启动和停止进程!
    etc: 默认的配置文件目录

    七、使用
    1. 配置文件
    hadoop有4个默认我配置文件,这4个文件会随着Hadoop启动时,自动加载!

    如果希望对这4个文件加载的默认属性进行覆盖!用户需要自定义配置文件!

    文件格式:
    core-site.xml----->core-default.xml
    hdfs-site.xml----->hdfs-default.xml
    yarn-site.xml----->yarn-default.xml
    mapred-site.xml----->mapred-default.xml

    配置文件的位置:
    自定义位置: hadoop --confdir 配置文件的目录
    默认配置文件目录: $HADOOP_HOME/etc/hadoop

    2.HDFS的运行模式

    ①本地模式: 使用当前计算机的文件系统作为HDFS的文件系统!
    fs.defaultFS=file:///(默认)

    ②分布式文件系统: 通过运行NN,DN等进程,由这些进程组成一个分布式的系统,进行文件的读写!
    fs.defaultFS=hdfs://NN所在的主机名:9000


    3.启动一个分布式文件系统
    ①在$HADOOP_HOME/etc/hadoop,配置core-site.xml
    fs.defaultFS=hdfs://NN所在的主机名:9000
    ②配置Hadoop默认的工作目录,在$HADOOP_HOME/etc/hadoop,配置core-site.xml
    hadoop.tmp.dir=配置一个当前用户有写权限的非tmp目录
    ③格式化NN
    hadoop namenode -format
    目的: ①生成NN的工作目录
    ②在工作目录下生成NN所要使用的特殊的文件,例如VERSION,fsiamge000000
    注意: 一个集群搭建完成后,只需要格式化一次!

    ④启动
    hadoop-daemon.sh start namenode|datanode

    ⑤查看
    jps
    http://NN所运行的主机名:50070

    4.MR的运行模式
    本地模式: 在本机使用多线程的方式模拟多个Task的运行!
    mapreduce.framework.name=local(默认)
    分布式模式: 在YARN上运行!
    mapreduce.framework.name=yarn(默认)

    5.配置MR在yarn上运行
    ①在$HADOOP_HOME/etc/hadoop,配置mapred-site.xml
    mapreduce.framework.name=yarn
    ②配置YARN
    在$HADOOP_HOME/etc/hadoop,配置yarn-site.xml
    配置yarn.resourcemanager.hostname=RM运行的主机名
    yarn.xxxx-auxservice=mapreduce_shuffle
    ③启动YARN
    yarn-daemon.sh start resourcemanager | nodemanager

    ④查看
    jps
    http://rm所运行的主机名:8088

    ⑤提交作业
    hadoop jar xxx.jar 主类名 输入目录.. 输出目录

    要去: 输出目录必须不存在
    输入目录中必须全部是文件





     

     

     

     

  • 相关阅读:
    IO
    mouseover,mouseout和mouseenter,mouseleave
    【译】addEventListener 第二个参数
    Git 常用命令
    我对Backbone中url属性的理解
    小失误引起大失败
    收集各大网站的登录页面
    随笔2
    随笔1
    创建数据库
  • 原文地址:https://www.cnblogs.com/20183544-wangzhengshuai/p/13730867.html
Copyright © 2011-2022 走看看