150 likes | 434 Views
雲端運算檔案系統 HDFS. 大綱. 什麼是 HDFS ? HDFS 的架構 HDFS 的布建 HDFS 的觀察 HDFS 的瓶頸. 什麼是 HDFS ?. HDFS 全名是 Hadoop Distributed File System Hadoop 是 Apache 的一個子計畫 HDFS 是 Hadoop 的一個子計畫 其本身用 Java 語言撰寫 其程序在 Java Virtual Machine(JVM) 上運行. HDFS 的架構. HDFS Process. 軟體架構. HDFS Program. Namenode
E N D
大綱 • 什麼是HDFS? • HDFS的架構 • HDFS的布建 • HDFS的觀察 • HDFS的瓶頸
什麼是HDFS? • HDFS全名是Hadoop Distributed File System • Hadoop是Apache的一個子計畫 • HDFS是Hadoop的一個子計畫 • 其本身用Java語言撰寫 • 其程序在JavaVirtual Machine(JVM) 上運行
HDFS的架構 HDFS Process • 軟體架構 HDFS Program
Namenode • 負責處理來自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/core/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
在namenode產生ssh的rsa公鑰,然後利用scp將這把公鑰分享給系統中其他結點,使彼此皆能在不用使用者手動輸入密碼的情況下相互登入做存取操作在namenode產生ssh的rsa公鑰,然後利用scp將這把公鑰分享給系統中其他結點,使彼此皆能在不用使用者手動輸入密碼的情況下相互登入做存取操作 • 在namenode利用scp將做完設定的軟體資料夾發布給系統中每個結點 • 在namenode下達hadoop namenode –format指令將整個HDFS格式化(僅用在啟用一個全新的HDFS)
執行start-all.sh DataNode TaskTracker NameNode JobTracker Secondary NameNode Namenode RPC Datanodes Secondary Namenode
HDFS的觀察 • 整個hdfs是否有成功運行起來? • 可用jps指令觀察在JVM上有哪些程序運行
HDFS的瓶頸 • Namenode fail over沒有自動化 • Solution Hint: daemon • 當Namenode要服務大量client時,可能會令服務品質降低 • Solution Hint: multipule namenode? There’s no solution so far…