zoukankan      html  css  js  c++  java
  • hadoop块理论配置Secondarynamenod

    hdfs数据块切割理论

    hdfs中所有的文件都是以块为单位进行存储,一个块最大128M


    块大小:数据寻道时间占用传输时间的1%


    廉价硬件:普通的硬盘,普通的cpu等等
    使用软件级别高可用替代硬件级别的高可用

    去IOE活动:I:IBM小型机 33万人民币
    O:Oracle 1核10W美元
    E:EMC共享存储 昂贵

    RAID:磁盘冗余阵列
    RAID1:硬件级别同步


    大数据的4个V:
      variety:多样化
      velocity:快速化
      volumn: 体量大
      value: 价值密度低

    hdfs数据存放位置:

      namenode数据:数据索引 包括权限、目录、类型等等信息

      datanode数据:真实数据

      hadoop将大于块大小的文件进行物理切割然后存放到各个datanode


    namenode数据:

      edits文件 编辑日志,存放的是hdfs所进行的所有操作
      edits_inprogress文件
      fsimage文件 镜像文件,存放的是hdfs中的文件索引,权限,大小,名称,目录,文件类型等等

    查看编辑日志:
      hdfs oev -i edits_0000000000000000012-0000000000000000028 -p xml -o ~/edit.xml

    查看镜像文件:
      hdfs oiv -i fsimage_0000000000000000028 -p XML -o ~/fsimage.xml


    在当前会话下(hadoop运行时),所做的一切修改,会被edits_inprogress文件所捕捉
    在hadoop关闭之后,两个文件均不进行操作
    在hadoop启动的时候: 1、edits_inprogress文件实例化为编辑日志(edits)
    2、镜像文件(fsimage)会和它数字之后的编辑日志(edits)进行融合,成为一个新的镜像文件


    hadoop的2nn:

    secondarynamenode //辅助名称节点(检查点)

    作为namenode的检查点,定期备份数据 //创建检查点周期3600s

    属于namenode的冷备份,需要人为操作


    配置2nn到另外一个节点:

    0、修改hdfs-site.xml,添加(s101) //soft/hadoop/etc/hadoop

    <property>

    <name>dfs.namenode.secondary.http-address</name>

    <value>s105:50090</value>

    </property>

    1、修改hosts:(s101) // /etc/hosts
    添加192.168.23.105 s105

    2、修改xcall.sh和xsync.sh(s101) // /usr/local/bin
    将脚本文件中104改为105

    3、配置s105的ssh(s101) //root和centos
    centos:ssh-copy-id centos@s105
    root: ssh-copy-id root@s105

    4、安装rsync(s105)
    sudo yum install -y rsync

    5、将配置文件和hosts文件同步(s101)
    xsync.sh /soft/hadoop/etc
    su root
    xsync.sh /etc/hosts


    对编辑日志和镜像文件进行操作:
      hdfs dfsadmin -rollEdits //手动滚动编辑日志
      hdfs dfsadmin -saveNamespace //手动保存镜像文件


    安全模式:
      在该模式下,hadoop文件系统只可读,不可写
      在启动的时候,namenode会处于30秒的安全模式下,以便进行fsimage文件的融合

      hdfs dfsadmin -safemode <enter | leave | get | wait>


    使用HDFS的api对文件进行增删改查
    winutils.exe不存在问题

      将hadoop2.7.3.zip文件解压到一个没有中文没有空格的路径下
      然后在windows上配置此hadoop环境变量

      变量名:HADOOP_HOME
      变量值:路径

      修改PATH,添加条目,将%HADOOP_HOME%in和%HADOOP_HOME%sbin添加进去即可

      完成之后重启idea


    装饰流,在构造函数中传的参数是他的父类,所以可以看成是父类功能的添加,仍然保留父类特性

      所以FSDataInputStream是InputStream的装饰流,所以可以以操作InputStream的方式操纵FSDataInputStream


    使用HDFS的API递归列出所有文件以及文件夹:
      FileStatus[] fileStatuses = fs.listStatus(new Path("/"));


    hdfs的家目录: /user/centos

    <property>
    <name>dfs.user.home.dir.prefix</name>
    <value>/user</value>
    </property>

    /user:通过hdfs-site.xml文件制定前缀
    /centos: 通过Linux格式化文件系统的时候所用的用户名决定

    需要创建hdfs家目录:
    hdfs dfs -mkdir -p /user/centos

  • 相关阅读:
    SpringMVC
    MyBatis 与 Spring 的完美整合方法
    持久层之 MyBatis: 第三篇 :缓存 And 高级查询
    持久层之 MyBatis: 第二篇 :动态SQL And多表查询
    C语言实现简单epoll服务器(二)
    C语言简单实现epoll服务器(一)
    shell编程题(十九)
    shell编程题(十七)
    shell编程题(十六)
    shell编程题(十三)
  • 原文地址:https://www.cnblogs.com/zyde/p/8899469.html
Copyright © 2011-2022 走看看