天天看點

Hadoop 大資料系統在檔案存儲 HDFS 版上的最佳實踐

在目前的數字經濟時代,資料被列為跟土地,資本等并列的新生産要素,資料的存儲和處理被衆多行業所深度依賴。Hadoop經過多年的發展,已經成為了事實上的開源大資料标準解決方案,被衆多公司采納和使用;而且随着技術的不斷疊代更新,Hadoop生态也已經從最初狹義的HDFS,MapReduce和YARN三大服務元件,逐漸發展出了Spark,Flink等新的處理架構,成長為功能更加完善和豐富的廣義Hadoop生态。同時以阿裡雲和AWS為代表的的雲服務平台,也提供了支援廣義Hadoop生态系統的編排産品EMR,進一步推動了大資料生态的發展。

雖然Hadoop生态中的計算架構不斷演進,但都繼續選擇HDFS作為底層的分布式存儲系統,HDFS也是以成長為開源大資料場景的統一分布式存儲系統,是自建大資料存儲的首選系統:

Hadoop 大資料系統在檔案存儲 HDFS 版上的最佳實踐

随着大資料領域的深入發展,在HDFS之上直接生長着豐富的基礎計算引擎,KV存儲引擎,多種OLAP引擎,以及不同領域的機器學習引擎;另外還有多種資料導入系統,友善不同來源的資料進入HDFS:負責結構化資料導入的Sqoop,負責日志資料導入的Flume,負責消息資料導入的Kafka。這些引擎和系統在資料處理的不同階段發揮各自的特有的作用,HDFS作為統一的中轉站來存儲和交換資料,共同來完成資料全生命周期的處理。

HDFS經過多年的發展已經相對成熟,但由于分布式存儲系統自身的複雜性,在應對日漸重要且複雜的大資料處理需求的時候,自建HDFS叢集面臨諸多痛點:

  1. 成本高
    1. 硬體成本高
      1. 叢集起建成本高:為了保證資料安全性,即使初始需要較少的存儲空間,HDFS叢集也需要保證3台機器以上的規模。
      2. 單次擴容步長大:每次都需要以整實體機的粒度進行擴容,新增存儲需求很小的情況下也不例外。
      3. 容量下降後無法自動縮容:為了應對容量峰值擴容的機器,在容量下降後也無法自動縮容。
    1. 存算分離難,存儲和計算資源必須同步擴容
      1. 連結和線程是Stream獨占,難以支撐存算分離後的高并發
      2. Shuffle資料依賴本地存儲,存儲和計算無法完全分離
  1. 運維難
    1. 運維複雜
      1. 硬體運維:需要解決硬體機型設計,預算采購,叢集擴縮容,硬體故障,機器過保等諸多問題。
      2. 軟體運維:需要面對通路失敗/通路慢,社群版本引入與測試,軟體版本線上更新等軟體難題。
    1. 運維人才要求高:系統複雜度高,需要專業的運維人才。
    2. 穩定性難以保證:沒有SLA保障,複雜的開源存儲系統對監控報警和故障響應要求高,容易導緻故障。
  1. 性能差
    1. 隔離性差:多業務公用叢集的情況下無法做到性能隔離,互相幹擾影響性能。
    2. 延遲高:軟體棧複雜,難以發揮高速媒體 US級别的延遲優勢,延遲敏感性業務難以落地。
    3. 無異步接口:沒有異步接口,存儲通路并發度受限于線程資源,難以提升。

考慮到HDFS在大資料領域的發展現狀,阿裡雲的檔案存儲HDFS版提供了一個雲上統一的大資料存儲方案:既能夠相容HDFS,保證原有的大資料處理系統可以無縫遷移,繼續正常運轉;同時又能夠解決掉自建HDFS的痛點,上層業務更專注于大資料處理系統本身的演進,更好的解決業務問題。

為了友善Hadoop生态系統平滑的遷移到檔案存儲HDFS版,會陸續推出常用的大資料系統在檔案存儲HDFS版的最佳實踐。

  • 在檔案存儲HDFS版上使用 Apache Spark
  • 檔案存儲HDFS版和對象存儲OSS雙向資料遷移
  • 在檔案存儲HDFS版上使用 Apache Flink
  • 在檔案存儲HDFS版上使用 Apache HBase
  • 在檔案存儲HDFS版上使用 Presto
  • 在檔案存儲HDFS版上使用 Apache Tez
  • 使用 Fuse-DFS 挂載檔案存儲HDFS版
  • 檔案存儲HDFS版和資料庫MySQL雙向資料遷移
  • 遷移開源HDFS資料到檔案存儲HDFS版
  • 在檔案存儲HDFS版上使用 CDH6
  • 在檔案存儲HDFS版上使用 TensorFlow
  • 了解更多關于檔案存儲HDFS版的産品資訊,歡迎通路

    https://www.aliyun.com/product/alidfs

    如果您對檔案存儲HDFS版有任何問題,歡迎釘釘掃描以下二維碼加入檔案存儲HDFS版技術交流群。

    Hadoop 大資料系統在檔案存儲 HDFS 版上的最佳實踐