數據庫與hadoop與分佈式文件系統的區別和聯繫

轉載一篇關係數據庫與Hadoop的關係的文章mysql

1. 用向外擴展代替向上擴展 
擴展商用關係型數據庫的代價是很是昂貴的。它們的設計更容易向上擴展。要運行一個更大
的數據庫,就須要買一個更大的機器。事實上,每每會看到服務器廠商在市場上將其昂貴的高端機
標稱爲「數據庫級的服務器」。不過有時可能須要處理更大的數據集,卻找不到一個足夠大的機器。
更重要的是,高端的機器對於許多應用並不經濟。例如,性能4倍於標準PC的機器,其成本將大大
超過將一樣的4臺PC放在一個集羣中。Hadoop的設計就是爲了可以在商用PC集羣上實現向外擴展
的架構。添加更多的資源,對於Hadoop集羣就是增長更多的機器。一個Hadoop集羣的標配是十至
數百臺計算機。事實上,若是不是爲了開發目的,沒有理由在單個服務器上運行Hadoop。 
2. 用鍵/值對代替關係表 算法

關係數據庫的一個基本原則是讓數據按某種模式存放在具備關係型數據結構的表中。雖然關sql

系模型具備大量形式化的屬性,可是許多當前的應用所處理的數據類型並不能很好地適合這個模數據庫

型。文本、圖片和XML文件是最典型的例子。此外,大型數據集每每是非結構化或半結構化的。
Hadoop使用鍵/值對做爲基本數據單元,可足夠靈活地處理較少結構化的數據類型。在hadoop中,
數據的來源能夠有任何形式,但最終會轉化爲鍵/值對以供處理。 
3. 用函數式編程(MapReduce)代替聲明式查詢(SQL ) 
SQL 從根本上說是一個高級聲明式語言。查詢數據的手段是,聲明想要的查詢結果並讓數據庫引擎編程

斷定如何獲取數據。在MapReduce中,實際的數據處理步驟是由你指定的,它很相似於SQL
引擎的一個執行計劃。SQL 使用查詢語句,而MapReduce則使用腳本和代碼。利用MapReduce可
以用比SQL 查詢更爲通常化的數據處理方式。例如,你能夠創建複雜的數據統計模型,或者改變
圖像數據的格式。而SQL 就不能很好地適應這些任務。 

服務器

4.數據結構

分佈式文件系統(dfs)和分佈式數據庫都支持存入,取出和刪除。可是分佈式文件系統比較暴力,
能夠當作key/value的存取。分佈式數據庫涉及精煉的數據,傳統的分佈式關係型數據庫會定義數據元
組的schema,存入取出刪除的粒度較小。
分佈式文件系統如今比較出名的有GFS(未開源),HDFS(Hadoop distributed file system)。
分佈式數據庫如今出名的有Hbase,oceanbase。其中Hbase是基於HDFS,而oceanbase是本身內部
實現的分佈式文件系統,在此也能夠說分佈式數據庫以分佈式文件系統作基礎存儲。


 

轉自csdn  yuanxiaopang ,應該也是轉載的,來自圖書的前言什麼的,文件系統轉載自知乎 ,做者egral架構

相關文章
相關標籤/搜索