1.hadoop配置檔案:使用org.apache.hadoop.conf.configuration處理配置資訊,並採用xml格式,資源合併(比如core-default.xml和core-site.xml而言,若前乙個檔案沒有設定final,則後乙個檔案的內容將會覆蓋前者中的同名配置;否則當載入後者時會出現警告資訊);屬性擴充套件,比如$/dfs/name中假設$=data,則前述路徑擴充套件為data/dfs/name;
使用configuration類的過程是:1)構造configuration類2)呼叫addresource()載入配置檔案3)呼叫set()或者get()訪問資源
configuration類的7個非靜態成員變數
l quietmode:設定載入配置的模式,預設值為true即在載入配置資源的過程中不輸出日誌,可以設定為false列印日子方便除錯。
l resources:儲存所有載入的資源(addresource())
l loaddefault:是否自動載入預設資源,預設資源通過呼叫adddefaultresource()儲存在defaultresources中
l properties:儲存解析配置檔案得到的鍵值對
l finalparameters:儲存所有配置檔案中宣告為final的鍵值對
l overlay:記錄通過set()方式改變的配置項(應用設定)
l classloader:載入指定類
2.資源載入
成員變數properties中的資料直到需要的時候才載入配置檔案資源(延遲載入的設計模式),configuration使用dom處理xml
private void loadresource(properties properties,object name, booleanquiet)//loadresource中便用到了dom解析器(建立dom解析器工廠->設定相關屬性->建立dom解析器builder->builder.parse(name)->樹狀結構的物件document->document物件呼叫getdocumentelement()得到根結點root()->root.getchildnodes()得到全部的子節點property(得到所有的)->property.getchildnodes()得到新的子節點field(field可能為,,->新增到properties,若final為false則將新增到finalparameters))
xinclude機制:類似於c語言中的#include用於在乙個xml檔案中引入另外乙個xml檔案。
3.set*和get*
publicstring get(string name, string defaultvalue)//conf根據name(key)返回相應的value,若name(key不存在)則返回defaultvalue
publicstring set(string name, string value)//conf只是簡單的呼叫properties和overlay的setproperty
4.configuration介面
如果乙個類實現了configuration介面則意味著此類可配置,即可以為該類的物件傳入configuration例項,提供物件工作所需的配置資訊,從而進一步完成初始化工作
《hadoop技術內幕 深入解析YARN架構設計》
hadoop技術內幕 深入解析yarn架構設計 本書是 hadoop技術內幕 系列的第3本書,前面兩本分別對common hdfs和mapreduce進行了深入分析和講解,贏得了極好的口碑,hadoop領域幾乎人手一冊,本書則對yarn展開了深入的 是首部關於yarn的專著。仍然由資深hadoop技...
Hadoop到底能做什麼?怎麼用hadoop?
調研hadoop頗久,就是想知道hadoop是什麼?hadoop能做什麼?怎麼用hadoop?最主要是這三塊,至於投入和風險也會隨之出來 濃縮了我幾十頁的調研方案啊!hadoop是什麼?hadoop是乙個開源的框架,可編寫和執行分布式應用,處理大規模資料,是專為離線和大規模資料分析而設計的,並不適合...
MySQL技術內幕
innodb儲存引擎是事物安全的儲存引擎。innodb儲存引擎有多個記憶體塊,這些記憶體塊組成乙個很大的記憶體池,負責如下的工作 後台執行緒 innodb儲存引擎是多執行緒模型,因此他有多個不同的後台執行緒,負責處理不同的任務。記憶體日誌檔案 記錄mysql對某種條件做出響應時的檔案,如錯誤日誌檔案...