當前位置:編程學習大全網 - 編程語言 - 數據庫與hadoop與分布式文件系統的區別和聯系

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

1. 用向外擴展代替向上擴展

擴展商用關系型數據庫的代價是非常昂貴的。它們的設計更容易向上擴展。要運行壹個更大

的數據庫,就需要買壹個更大的機器。事實上,往往會看到服務器廠商在市場上將其昂貴的高端機

標稱為“數據庫級的服務器”。不過有時可能需要處理更大的數據集,卻找不到壹個足夠大的機器。

更重要的是,高端的機器對於許多應用並不經濟。例如,性能4倍於標準PC的機器,其成本將大大

超過將同樣的4臺PC放在壹個集群中。Hadoop的設計就是為了能夠在商用PC集群上實現向外擴展

的架構。添加更多的資源,對於Hadoop集群就是增加更多的機器。壹個Hadoop集群的標配是十至

數百臺計算機。事實上,如果不是為了開發目的,沒有理由在單個服務器上運行Hadoop。

2. 用鍵/值對代替關系表

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

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

型。文本、圖片和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是自己內部

實現的分布式文件系統,在此也可以說分布式數據庫以分布式文件系統做基礎存儲。

  • 上一篇:初中生成績不理想,學什麽專業比較好?
  • 下一篇:c++ windows.h中有什麽函數?
  • copyright 2024編程學習大全網