美文网首页
第二次课:hadoop集群概述以及搭建

第二次课:hadoop集群概述以及搭建

作者: 快乐大数据 | 来源:发表于2017-12-24 16:16 被阅读0次


    (1)znode操作总结

    首先 先在node01 node02 node03上分别重新启动 切换到hadoop用户

    第二步;在hadoop用户下 ,启动zookeeper的服务器端 三台电脑都需要这么做

    第三步,在node01上,/usr/local/zookeeper/bin/zkCli.sh start

    再./zkCli.sh start

    在node02和node03上均需要这么做

    ls / 查看目录结构

    演示 Zookeeper的一些命令

    #创建 永久节点zktest,并给一个值123

    create /zktest 123

    #查看永久节点的值

    get /zktest

    #修改永久节点的值

    set /zktest 345

    #演示监听

    在第二台机器上

    在/usr/bin/zookeeper/bin/zkCli.sh

    ls /

    此时切换到第一台机器,给第一台机器一个监听事件

    get /zktest watch

    再切换到第二台电脑,改一下第二台电脑上的zktest的值

    set /zktest 678

    查看第一台电脑,上面回应有提示:watchedEvent state:SyncConnected type:NodeDataChanged path:/zktest

    注意:这是一个临时监听,如果此时在第二台电脑上再改变zktest的值,第一台电脑上不会再显示节点的数据改变。

    #创建持久节点的子节点

    在第一台电脑上

    create /zktest/s1 111

    ls /zktest

    get /zktest/s1

    #创建持久节点的顺序节点

    create -s /zktest/ss1 111 #创建第一个持久顺序节点

    create -s /zktest/ss2 222 #创建第二个持久顺序节点(注意创建的持久顺序节点,每次创建会在数据节点后给一个随机数字,再创建就依次递增1)

    ls /zktest

    #创建临时节点

    create -e /zktest/e1 e1111

    quit(在会话结束后,会自动删除临时节点)

    在第二台机器的客户端

    #自动监听临时节点

    ls /zktest

    create -e /zktest/eee1 eee1

    在第二台机器上监听

    ls /zktest watch

    接着在第一台电脑退出

    quit

    在第二台电脑上查看,会提示目录结构的变化:WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/zktest

    #测试delete命令

    在第一台电脑上先连上

    delete命令不能删除数据节点的子节点,如果想删除子节点,用rmr

    ls /zktest

    delete /zktest 提示不能删除

    rmr /zktest

    ls /

    #更新数据的版本号

    create /zktest2 test2

    get /zktest2

    set /zktest2 test33

    会显示数据的版本号从0增加到了1

    dataVersion = 1

    set /zktest2 4444 0  #0是版本号

    会提示版本号错误,因此需要更新的值的数据版本号要和当前的版本号匹配,变成

    set /zktest2 4444 1

    get /zktest2

    quit

    telnet node01 2181

    conf #查看数据节点的配置信息

    cons #输出服务器上所有客户端所有的连接信息

    #测试cons

    在第一台电脑上

    telnet node02 2181

    cons

    #在node03上看node02的连接信息是什么样的

    跳到node03这台电脑上

    /usr/local/zookeeper/bin/zkCli.sh -server node02:2181

    然后返回第一台电脑上看连接信息

    telnet node02 2181

    cons

    此时会发现,有两台电脑连接了node02,分别是第一台和第三台机器:

    /192.168.183.152:36108[0]...

    /192.168.183.154:46281[1]..

    #stat命令的测试 输出zookeeper的运行状态 版本,运行角色

    telnet node02 2181

    stat

    在另外两台电脑上退出

    (2)hadoop集群总结(上课随堂总结)

    第二部分 Hadoop概述

    1.优点:自动复制副本的内容

    不拷贝数据 而是直接在数据节点上直接计算;

    存储数据量巨大

    流式文件访问:一次写入,多次读取,保证数据一致性。

    不适合多线程写入同一个文件,只支持在文件的末尾追加,

    2.HDFS架构

    超大文件(PB级),流式数据写入;能够在低廉的商用机器上使用;在多线程上不能造成数据的混乱;并行处理数据,易扩展,高容错。

    切分文件,存储在不同机器上

    读取时,先读取文件快,文件块与节点的映射关系,通过节点读取文件

    用master来管理这些存储的信息

    存储的这些信息的节点是slave

    活动的NameNode  备用的NameNode 管理数据的元信息 元数据同步

    slave角色 datanode 一台机器启动一个datanode进程

    客户端先和namenode发生交互,从amenode获得数据的元信息,datanode从返回的元信息读取或写入文件。datanode通过心跳象namenode汇报情况

    3 核心概念

    3.1namenode管理HDFS文件系统的命名空间

    3.2standby

    namenode 元数据文件:编辑日志,负责记录客户端对目录和文件的写操作;文件系统元数据检查点镜像文件:保存了文件系统中所有的目录和文件信息(目录下有哪些子目录,子文件,文件名,文件信息,

    ,文件副本数,文件由哪些块组成)。

    3.3datanode:Slave工作节点,对数据块进行校验;周期性向namenode报告块的列表信息,namenode通过心跳感知datanode的运行状态。如果发现datanode发生故障了,就不会将客户端的I/O转发给datanode。

    3.4数据块 HDFS最小存储单元

    3.5Client

    3.6QJM共享存储系统(元数据共享和元数据同步) 实现HDFS高可用

    JournalNode集群存储edit.log在每个机器上的JournalNode存储一份。

    3.6主备切换控制器,DFSZKFailoverController(ZKFC)

    同时构建 HealthMonitor(监控namenode的健康状况),和ActiveStandbyElector

    防止假死的脑裂情况。当NN2想切换为Active,通过隔离fencing NN2会通过远程调用SSH 自身将standby转成Active的方法

    如果不成功,就使用Q-9 强行把另一个Active namenode进程杀掉

    第三种情况,通过namenode上的一个脚本,强制关机。

    第三部分:Yarn产生背景

    降低运行和维护成本,实现数据共享和计算资源共享

    Yet another resource negotiator

    也实现master/slave manager

    Resource manger/NodeManager

    Resource manger根据客户请求在nodemanager分配container,封装了CPU,MEM这些资源。Resource manger启动NodeManager 里面的Application Master。启动后的它与Resource manger通信,申请资源。 Resource manger申请了资源后,与nodemanger通信,让nodemanger启动任务(例如Mapreduce),同时container

    也执行起来。任务启动后,会通过心跳告诉Application Master,任务的运行状态。Application master监控任务的执行,如果任务执行失败,就会让其他的nodemanger执行该任务。

    此外,还有一个备份的Resource manger(standby Resource manager)

    在Zookeeper创建临时节点,也通过选举机制变换状态。

    Nodemanger

    Applicationmaster

    Container

    (131:25注意听)

    Zookeeper主要用于name node和resource manager选主过程。

    name node1和namenode2都会向Zookeeper申请创建临时节点。如果namenode1创建成功,nn2就会创建失败。

    另外,Yarn中的resource manager也会向Zookeeper申请创建临时节点。如果rm1创建成功,那么rm1就是active

    rm2就是standby。如果rm1挂掉了,就会被删除。rm2重新创建临时节点,创建成功了,就会从standby切换为active;

    Zookeeper充当了高可选举的功能。

    相关文章

      网友评论

          本文标题:第二次课:hadoop集群概述以及搭建

          本文链接:https://www.haomeiwen.com/subject/lxshgxtx.html