1. 程式人生 > >大數據(hdfs集群及其集群的高級管理)

大數據(hdfs集群及其集群的高級管理)

persist day logging 高級 目錄 error bin ogg ror

####

大數據課程第二天


偽分布式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

大數據(hdfs集群及其集群的高級管理)