zoukankan      html  css  js  c++  java
  • 大数据(hdfs集群及其集群的高级管理)

     


    伪分布式hadoop的启动停止脚本[使用]
    sbin/hadoop-daemon.sh start namenode
    sbin/hadoop-daemon.sh start datanode
    sbin/yarn-daemon.sh start resourcemanager
    sbin/yarn-daemon.sh start nodemanager
    ​
    shell脚本
    xxx.sh
       ls
       mkdir 
       
    hadoop-start.sh
        sbin/hadoop-daemon.sh start namenode
        sbin/hadoop-daemon.sh start datanode
        sbin/yarn-daemon.sh start resourcemanager
        sbin/yarn-daemon.sh start nodemanager
    ​
    chmod 744 hadoop-start.sh


    1. 相对路径  
      ./hadoop-start.sh
    2. 绝对路径
      /opt/install/hadoop-2.5.2/hadoop-stop.sh
    HDFS的集群
    1. HDFS配置集群的原理分析

       

    2. ssh免密登陆

      1. 通过工具生成公私钥对

        ssh-keygen -t rsa

         

      2. 公钥发送远程主机

        ssh-copy-id 用户@ip

         

    3. 修改slave文件

      vi /opt/install/hadoop2.5.2/etc/hadoop/slaves

      slavesip
    4. HDFS的集群搭建

      1. ssh免密登陆

        ssh-keygen -t rsa
        ssh-copy-id 用户@ip
      2. 清除mac地址的影响

        rm -rf /etc/udev/rule.d/70-persistence.net.rules
      3. 设置网络

        1. ip地址设置 主机名 映射 关闭防火墙 关闭selinux
      4. 安装hadoop,jdk

        1. 安装jdk
        2. hadoop解压缩
        3. 配置文件
           hadoop-env.sh
           core-site.xml
           hdfs-site.xml
           yarn-site.xml
           mapred-site.xml
           slaves 一致
        4. 格式化 NameNode所在的节点 格式化 [清空原有 data/tmp 内容]
           bin/hdfs namenode -format
        5. 启动相关服务
           sbin/start-dfs.sh
           出现如下则成功:(从节点连接不成功可以先手动ssh连一下,确保可以无密码无验证才可进行以下)
           [root@hadoop hadoop-2.5.2]# sbin/start-dfs.sh
        19/01/23 04:09:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
        Starting namenodes on [hadoop]
        hadoop: starting namenode, logging to /opt/install/hadoop-2.5.2/logs/hadoop-root-namenode-hadoop.out
        hadoop2: starting datanode, logging to /opt/install/hadoop-2.5.2/logs/hadoop-root-datanode-hadoop2.out
        hadoop: starting datanode, logging to /opt/install/hadoop-2.5.2/logs/hadoop-root-datanode-hadoop.out
        hadoop1: starting datanode, logging to /opt/install/hadoop-2.5.2/logs/hadoop-root-datanode-hadoop1.out
        Starting secondary namenodes [0.0.0.0]
        0.0.0.0: starting secondarynamenode, logging to /opt/install/hadoop-2.5.2/logs/hadoop-root-secondarynamenode-hadoop.out
        19/01/23 04:10:29 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
        6.运行jps
        [root@hadoop hadoop-2.5.2]# jps
        3034 DataNode
        3178 SecondaryNameNode
        3311 Jps
        2946 NameNode
        2824 GetConf
        7.在从节点运行jps,出现如下则正常
        [root@hadoop1 etc]# jps
        1782 Jps
        1715 DataNode
        访问hadoop:50070查看datanode:

    HDFS高级管理内容
    • NameNode持久化[了解]

      1. 什么是NameNode的持久化

         

      2. FSImage和EditsLog文件默认存储的位置

        #默认存储位置: /opt/install/hadoop-2.5.2/data/tmp/dfs/name
        hadoop.tmp.dir=/opt/install/hadoop-2.5.2/data/tmp
        dfs.namenode.name.dir=file://${hadoop.tmp.dir}/dfs/name
        dfs.namenode.edits.dir = ${dfs.namenode.name.dir}
      3. 自定义FSImage和EditsLog的存储位置?

        hdfs-site.xml
        <property>
           <name>dfs.namenode.name.dir</name>
           <value>/xxx/xxx</value>
        </property>

        <property>
           <name>dfs.namenode.edits.dir</name>
           <value>/xxx/xxx<</value>
        </property>
      4. 安全模式 safemode

        每一次从新启动NameNode时,都会进行EditsLog与FSImage的汇总,为了避免这个过程中,用户写操作会对系统造成影响,HDFS设置了安全模式(safemode),在安全模式中,不允许用户做写操作.完成合并后,安全模式会自动退出
        手工干预安全模式
        bin/hdfs dfsadmin -safemode enter|leave|get

         

    • SecondaryNameNode

      1. 定期合并FSImage和EditsLog

         

      2. 可以在NameNode进程宕机,FSImage和EditsLog硬盘损坏的情况下,部分还原NameNode数据

     

    SecondaryNameNode获取的FSImage和EditsLog 存储位置  /opt/install/hadoop2.5.2/data/tmp/dfs/namesecondary
    
    #secondarynamenode还原namenode数据的方式
    #rm -rf /opt/install/hadoop2.5.2/data/tmp/dfs/namesecondary/in_use.lock
    1. 指定namenode持久化中FSImage 和 EditsLog的新位置
    hdfs-site.xml
    <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:///opt/install/nn/fs</value>
    </property>
    <property>
       <name>dfs.namenode.edits.dir</name>
       <value>file:///opt/install/nn/edits</value>
    </property>
    2.  kill namenode 
    目的为了演示 namenode 当机
    日志查看/logs/hadoop-root-namenode-hadoop.log tail -100 查看最新的100行
    3. 通过SecondaryNameNode恢复NameNode
    sbin/hadoop-daemon.sh start namenode -importCheckpoint
    如果namenode没启动,查看查看hadoop2.5/data/tmp/dfs/namesecondary目录是否被锁,如果锁掉则删掉该目录下的in_use.lock

     

  • 相关阅读:
    一张图理解prototype、proto和constructor的三角关系
    深入理解javascript函数系列第三篇——属性和方法
    深入理解javascript函数系列第二篇——函数参数
    深入理解javascript函数系列第一篇——函数概述
    深入理解javascript作用域系列第四篇——块作用域
    深入理解javascript作用域系列第三篇——声明提升(hoisting)
    深入理解javascript作用域系列第二篇——词法作用域和动态作用域
    深入理解javascript作用域系列第一篇——内部原理
    javascript中数组和字符串的方法比较
    在ASP.NET MVC环境中使用加密与解密
  • 原文地址:https://www.cnblogs.com/lhc-hhh/p/10324262.html
Copyright © 2011-2022 走看看