雲端運算檔案系統HDFS
大綱 什麼是HDFS? HDFS的架構 HDFS的布建 HDFS的觀察 HDFS的瓶頸
什麼是HDFS? HDFS全名是Hadoop Distributed File System Hadoop是Apache的一個子計畫 其本身用Java語言撰寫 其程序在Java Virtual Machine(JVM) 上運行
HDFS的架構 HDFS Process 軟體架構 HDFS Program
Namenode Secondary Namenode Datanode 負責處理來自client端的檔案存取要求 負責儲存整個HDFS中各檔案之metadata Secondary Namenode 協助Namenode整併並跟新當中的metadata 當Namenode掛點時,可手動令其做Namenode用 Datanode 為data本身存放之處 聽取Namenode的安排,然後讓client存取檔案
硬體架構
HDFS的布建 安裝Java JDK 下載hdfs軟體包並解壓縮 wget http://ftp.twaren.net/Unix/Web/apache/hadoop/co re/hadoop-0.20.1/hadoop-0.20.1.tar.gz tar –xvzf hadoop-0.20.1.tar.gz 編輯namenode、各secondary namenode及各 datanode的/etc/hosts檔,已令彼此皆有系統中 其他主機的IP、domain name及hostname對照 設定conf資料夾底下core-site.xml、hdfs- site.xml、mapred-site.xml、masters、slaves 及hadoop-env.sh六個檔案
masters: 依據/etc/hosts填寫各個secondary namenode 的hostname或IP或domain name slaves: 依據/etc/hosts填寫各個datanode 的 hostname或IP或domain name hadoop-env.sh: 啟動整個hdfs系統所需要讀入或 輸出的參數設定 core-site.xml
hdfs-site.xml
mapred-site.xml
在namenode產生ssh的rsa公鑰,然後利用scp將 這把公鑰分享給系統中其他結點,使彼此皆能在不 用使用者手動輸入密碼的情況下相互登入做存取操 作 在namenode利用scp將做完設定的軟體資料夾發 布給系統中每個結點 在namenode下達hadoop namenode –format指 令將整個HDFS格式化(僅用在啟用一個全新的 HDFS)
執行start-all.sh DataNode TaskTracker NameNode JobTracker Secondary RPC Datanodes Secondary Namenode
HDFS的觀察 整個hdfs是否有成功運行起來? 可用jps指令觀察在JVM上有哪些程序運行
在瀏覽器上輸入http://namenode IP:50070
HDFS的瓶頸 Namenode fail over沒有自動化 當Namenode要服務大量client時,可能會令服務 品質降低 Solution Hint: daemon 當Namenode要服務大量client時,可能會令服務 品質降低 Solution Hint: multipule namenode? There’s no solution so far…