hadoop緩存
❶ Hadoop到底是什麼玩意
Hadoop到底是個啥?
答:Hadoop是基於廉價設備利用集群的威力對海量數據進行安全存儲和高效計算的分布式存儲和分析框架,Hadoop本身是一個龐大的項目家族,其核心 家族或者底層是HDFS和MapRece,HDFS和MapRece分別用來實現對海量數據的存儲和分析,其它的項目,例如Hive、HBase 等都是基於HDFS和MapRece,是為了解決特定類型的大數據處理問題而提出的子項目,使用Hive、HBase等子項目可以在更高的抽象的基礎上更簡單的編寫分布式大數據處理程序。Hadoop的其它子項目還包括Common, Avro, Pig, ZooKeeper, Sqoop, Oozie 等,隨著時間的推移一些新的子項目會被加入進來,一些關注度不高的項目會被移除Hadoop家族,所以Hadoop是一個充滿活力的系統。
Apache Hadoop: 是Apache開源組織的一個分布式計算開源框架,提供了一個分布式文件系統子項目(HDFS)和支持MapRece分布式計算的軟體架構。
Apache Hive: 是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,通過類sql語句快速實現簡單的MapRece統計,不必開發專門的MapRece應用,十分適合數據倉庫的統計分析。
ApachePig: 是一個基於Hadoop的大規模數據分析工具,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的數據分析請求轉換為一系列經過優化處理的MapRece運算。
ApacheHBase: 是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
Apache Sqoop: 是一個用來將Hadoop和關系型資料庫中的數據相互轉移的工具,可以將一個關系型資料庫(MySQL ,Oracle ,Postgres等)中的數據導進到Hadoop的HDFS中,也可以將HDFS的數據導進到關系型資料庫中。
Apache Zookeeper: 是一個為分布式應用所設計的分布的、開源的協調服務,它主要是用來解決分布式應用中經常遇到的一些數據管理問題,簡化分布式應用協調及其管理的難度,提供高性能的分布式服務 ApacheMahout:是基於Hadoop的機器學習和數據挖掘的一個分布式框架。Mahout用MapRece實現了部分數據挖掘演算法,解決了並行挖掘的問題。
ApacheCassandra:是一套開源分布式NoSQL資料庫系統。它最初由Facebook開發,用於儲存簡單格式數據,集Google BigTable的數據模型與AmazonDynamo的完全分布式的架構於一身 Apache Avro: 是一個數據序列化系統,設計用於支持數據密集型,大批量數據交換的應用。Avro是新的數據序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制 ApacheAmbari: 是一種基於Web的工具,支持Hadoop集群的供應、管理和監控。
ApacheChukwa: 是一個開源的用於監控大型分布式系統的數據收集系統,它可以將各種各樣類型的數據收集成適合 Hadoop 處理的文件保存在 HDFS 中供Hadoop 進行各種 MapRece 操作。
ApacheHama: 是一個基於HDFS的BSP(Bulk Synchronous Parallel)並行計算框架, Hama可用於包括圖、矩陣和網路演算法在內的大規模、大數據計算。
ApacheFlume: 是一個分布的、可靠的、高可用的海量日誌聚合的系統,可用於日誌數據收集,日誌數據處理,日誌數據傳輸。
ApacheGiraph: 是一個可伸縮的分布式迭代圖處理系統, 基於Hadoop平台,靈感來自 BSP (bulk synchronous parallel) 和Google 的 Pregel。
ApacheOozie: 是一個工作流引擎伺服器, 用於管理和協調運行在Hadoop平台上(HDFS、Pig和MapRece)的任務。
ApacheCrunch: 是基於Google的FlumeJava庫編寫的Java庫,用於創建MapRece程序。與Hive,Pig類似,Crunch提供了用於實現如連接數據、執行聚合和排序記錄等常見任務的模式庫 ApacheWhirr: 是一套運行於雲服務的類庫(包括Hadoop),可提供高度的互補性。Whirr學支持Amazon EC2和Rackspace的服務。
ApacheBigtop: 是一個對Hadoop及其周邊生態進行打包,分發和測試的工具。
ApacheHCatalog: 是基於Hadoop的數據表和存儲管理,實現中央的元數據和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關系視圖。
ClouderaHue: 是一個基於WEB的監控和管理系統,實現對HDFS,MapRece/YARN, HBase, Hive, Pig的web化操作和管理。
❷ hadoop適合解決web 的高並發嗎
hadoop適合處理分布式集群系統,本身是支持高速並發海量數據的寫入和讀取的。解決大量用戶並發訪問的方案有很多,給你個千萬pv的參考方案:
1)架構中直接引入軟體名稱的模塊,是個人推薦使用的,如Haproxy、Hadoop等;
2)關於全局負載均衡,看成本投入情況,可以使用商業的產品,如F5-GTM,開源方案便是自搭智能DNS;
3)本地負載均衡方案,可以考慮F5-LTM或成熟的開源解決方案LVS;
4)代理層為什麼推薦大家使用Haproxy?Haproxy是一個非常優秀的反向代理軟體,十分高效、穩定。國內top 10的互聯網公司都有在使用;
5)緩存層可以使用Squid或Varnish,個人更傾向Varnish。配置靈活、運行穩定,提供非常便利的管理介面。為啥在緩存層前面加一層代理?優點非常多,列舉如下:
根據應用配置URI路由規則,集中熱點來提高後端緩存的命中率;
輕松劃分網站頻道、版塊,更好對應用進步組織、規劃;
對URI進行一般性安全過濾,抵禦注入攻擊;
彈性調配硬體資源,應對突發事件產生大流量;
可回收寶貴的公網IP資源;
6)應用層開源技術方案非常多且成熟,在此不詳細描述;
7)資料庫層主流開源解決方案Mysql是首選,主從復制(一主對多從)是目前比較靠譜的模式;
8)關於Nosql,應用場景不多說,可參考「給部門做的Mongodb技術交流PPT」文章,redis、memcached等作為熱點數據存儲、資料庫緩存都非常理想;
9)內網DNS扮演的角色非常重要,一定要消滅code中出現的內網IP地址,很大程度減少因IP變更、伺服器故障而修改源碼的情況,同時也便於維護;
10)內網LB適用在內部WEB介面、多台資料庫Slave、多台Nosql Slave、公共服務等應用的負載均衡,可以使用LVS、Haproxy來實現,可用性要求不高的應用可行直接使用Localhost DNS輪詢;
11)hadoop適合海量數據的存儲與處理,如做網站日誌分析、用戶數據挖掘等;
12)管理集群,平台的核心,運維的陣地;