NEIL's_學而時習之x不學無術~私藏IT技術經驗分享部落
關於部落格
NEIL. Cheng....寫作只是為了日後工作之備忘操作參考

本部落格文章撰寫前進邁向第五年(since 2009 ~至今)仍繼續推進分享IT學習!!About Windows/Linux Server,Virtualization


分享網誌: 由於,本人預先完成LAB後,才補上撰寫文章與截圖,若發現文圖對照說明有誤..本人將盡快校正,也請不吝指教! Thanks!

  • 154596

    累積人氣

  • 74

    今日人氣

    0

    訂閱人氣

雲端運算: Hadoop 平台建置/組態 HDFS 與慣用指令 (一) : 平台基礎架構 by Navier

"Hadoop基礎架構"佈署 :

[NameNode] navierx(.10)為例,其他節點配置請參考下述完成


編輯"core-site-xml"系統核心設定檔

<configuration>  #定義NameNode 執行主機"navierx:8020"
<property>
<name>fs.default.name</name>
<value>hdfs://navierx:8020</value>
</property>
</configuration>

配置"hdfs-site-xml"系統核心設定檔   #關於HDFS分散式檔案系統設定檔案

<configuration>
<property>
<name>dfs.replication</name>   #配置dfs複本數目前有僅兩個Node配置2
<value>2</value>
</property>
 
<property>
<name>dfs.namenode.name.dir</name>  #存放HDFS系統metadata儲存目錄
<value>file:/hadoop/nn</value>
</property>
 
 
<property>
<name>dfs.datanode.data.dir</name>   #存放HDFS系統資料區塊目錄
<value>file:/hadoop/dn</value>
</property>
 
<property>
<name>dfs.namenode.checkpoint.dir</name>   #配置Secondary NameNode配置目錄
<value>file:/hadoop/2ndname</value>
</property>
 
<property>
<name>dfs.namenode.http-address</name> 
<value>navierx:50070</value>
</property>                                 #NameNode透過"navierx:50070"與2dn NameNode交換資料
編輯DataNode 運算主機:   /hadoop/hadoop-2.7.0/etc/hadoop/slaves

新增Datanode 結點 dn01,dn02
編輯"hadoop-env.sh" 配置正確JAVA環境變數

修改以下

export JAVA_HOME=/hadoop/java8u45   #指定JAVA_HOME 目錄

# The maximum amount of heap to use, in MB. Default is 1000.
 
export HADOOP_HEAPSIZE="256       #JVM內存256MB
 
export HADOOP_LOG_DIR=/var/log/hadoop   #儲存Hadoop Log Message 放置

編輯
2nd NamNode (navierx2(.20) 配置(除了上一步NameNode配置另加入以下

<property>
<name>dfs.namenode.secondary.http-address</name>  配置Secondary
<value>navierx2:50090</value>    #配置2nd NameNode與NameNode通訊port: 50090
</property>
 
 
<property>
<name>dfs.namenode.checkpoint.period</name>  
<value>1800</value>                    #配置2nd 彙整與NameNode間隔時間預設3600秒
</property>

Navier: 配置2nd NameName 除了考量災後復原考量外,2nd NameNode 可定期彙整

               由NameNode 龐大產生edit (即是交易紀錄檔)彙整縮小edit大小傳回NameNode
 
               避免edit數量膨脹塞爆硬碟空間 
[一切就緒,初始化Hadoop] 

  在NameNode 節點執行 "hdfs namenode -format "

啟動HDFS 執行"start-dfs.sh" 啟動正常
檢查各結點 ClusterID 是否一致(若不一致,資料將不同步)

[navierx] 10.10.10.10

cat /hadoop/nn/current/VERSION

clusterID=CID-a4aef384-b05b-4dfd-b4b7-153b02adf424
 查看2nd NameNode(Navierx2 10.10.10.20)

cat /hadoop/nn/current/VERSION

clusterID=CID-a4aef384-b05b-4dfd-b4b7-153b02adf424
 查看DataNode (dn01: 10.10.10.30) ClusterID 同步狀況(健康狀況OK)

cat /hadoop/nn/current/VERSION

clusterID=CID-a4aef384-b05b-4dfd-b4b7-153b02adf424
使用 "hdfs dfsadmin -report" 查看目前HDFS 空間使用率

DFS Use: 8kb ,Present Capacity : 彙整可使用容量118.36MB 實為2顆60GB HDD加總

Missing blocks: 遺失資料區塊比率, Block with corrupt  replicas : 不良的複寫資料區塊


Live datanodes(2) : dn01,dn02  更可以詳盡查看各個DataNode使用率資訊

            dn01 資料區塊資訊(dn01: 10.10.10.30

            停止Hadoop 使用: "stop-dfs.sh"
          dn02 資料區塊資訊(dn02: 10.10.10.31)

於本篇最後小節將紀錄HDFS 操作使用

(a.)專案目錄建立(參數: -mkdir),

(b.)將檔案上傳到HDFS(參數:-copyFromLocal)

(c.)直接刪除HDFS系統上的指定檔案

(d.) 從HDFS檔案系統取回指定檔案到Local端

 下圖操作案例:

hdfs dfs -mkdir /chunju   #在HDFS"/"目錄下建立一個專案資料夾名為"chunju"

hdfs dfs -copyFromLoca  /usr/share/doc/*.*  /chunhu   #將特定Local端資料或資料夾上傳到HDFS

hdfs dfs -ls  /chunju   #查看指定資料夾底下檔案顯示

從HDFS 檔案系統取回(-get)指定檔案資料 

hdfs dfs -get  /chunju/mysql-server-5.5/*.* ~/chunju  

#以取回/chunju/mysql-server-5.5/*.*為例

 刪除HDFS系統上檔案與恢復數據(Trash)

再進行檔案系統刪除前我要在NameNode "core-site.xml" 加入Trash

(資源回收桶配置不然刪除時會出錯砍不了: 超拗的2.7.0 Hadoop)

先停止Hadoop HDFS :  "stop-dfs.sh "   配置完成再重啟 "start-dfs.sh"


vi  core-site.xml

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://navierx:8020</value>
</property>
 
<property>
  <name>fs.trash.interval</name>   #配置資源回收桶當檔案刪除後保留時間配置一天
  <value>1440</value>
</property>
 
</configuration>
示範HDFS檔案系統: 刪除檔案(目錄)操作(使用我們方才copy好的目錄"/chunju/mysql-server-5.5"

先來瀏覽一下 /chunju/mysql-server-5.5/examples 底下資料有四筆資料



現計畫刪除 "examples' 整個目錄

 hdfs dfs -rm -r /chunju/mysql-server-5.5/examples   #example資料夾已經被順利移除

 # 提示移除檔案將移動當前目錄底下.Trash 資料夾存放
 
現本機檢視.Trash 資料夾資料內容(確認資料已被刪除移至.Trash)

 hdfs dfs -ls .Trash/Current/chunju/mysql-server-5.5/examples  
 

現還原(Recovery) examples資料夾 到hdfs線上/chunju/mysql-server-5.5目錄下

hdfs dfs -mv .Trash/Current/chunju/mysql-server-5.5/examples /chunju/mysql-server-5.5/

#下圖確認方才被刪除資料夾,已從.Trash成功還原回到原始資料夾位置


Navier本篇小結:

本Lab 實現Hadoop基礎架構組態與HDFS檔案系統上常用指令操作

下一篇章將探討更進一步"節點管理及 HDFS Loadblancer(資源分配調整)..等等
     

相簿設定
標籤設定
相簿狀態