hadoop++是對hadoop map reduce的非入侵式優化,通過自定義hadoop框架中的split等函式來提公升,提公升查詢和聯接效能。 專案由德國saarland大學jens dittrich教授主持。專案主頁是
hadoop++對hadoop的優化主要是trojan index、trojan join和trojan layout三方面。
1、trojan index
trojan index的核心是將資料組織成依次由資料、索引、header和footer這四部分構成的split,其中footer是split的分界符,最後一 個footer一定位於檔案末尾。索引構建時由mapreduce完成排序。查詢時split函式從檔案末尾開始根據footer資訊解析出各個 split,itemize函式根據搜尋範圍條件快速定位滿足條件的內容。
以資料庫技術模擬,trojan index類似於索引組織表。
2、trojan join
trojan join根據聯接屬性將來自多表的相關記錄分到乙個split,組織成類似於trojan index的結構,itemize出來的記錄同時包含了參與聯接的雙方的屬性,這樣不再需要在查詢時再根據聯接屬性用map/shuffle /reduce來計算聯接。
以資料庫技術模擬,trojan join類似於多表聚簇。
3、trojan layout
類似於pax,為block內部的資料組織方法,將查詢中經常一起訪問的屬性組合在一起。不同複本用不同的layout。根據負載計算最優的layout,類似於揹包演算法。
以資料庫技術類似,trojan layout類似於垂直分割槽,亮點是不同複本用不同的垂直分割槽。
hadoop hadoop的各種版本
選型由於apache hadoop是開源的,任何人可以對其修改並作為開源或者商業的產品,所以出現很多發行版本,例如華為發行版 cloudera發行版 cdh 等。hadoop三大發行版本 apache cloudera hortonworks。apache版本最原始 最基礎 的版本,對於入門學習最好...
Hadoop Hadoop 傳遞引數
寫mapreduce程式通常要傳遞各種各樣的引數,選擇合適的方式來傳遞引數既能提高工作效率,也可以避免bug的產生。根據引數的大小,可以粗略的分為以下幾種。最直接的方式就是使用configuration的各種set方法,對於基本資料型別都有很好的支援,比如傳遞kmeans聚類演算法的中心點個數。正確...
hadoop hadoop的一次讀取
一次hadoop的read getfilesystem public static filesystem getfilesystem throws exception configuration configuration基本就是乙個空物件。新增了2個配置檔案到資源列表。adddefaultreso...