Hadoop一般用在哪些業務場景?


首先解釋一下hadoop是什麼?

Hadoop是一個用於在由廉價硬體構建的大型集群上運行應用程序的框架。Hadoop框架提供給應用程序可靠性和數據移動。Hadoop實現了一個名為Map / Reduce的計算範例,其中應用程序被分成許多小的工作片段,每個工作片段都可以在群集中的任何節點上執行或重新執行。此外,它還提供了一個分散式文件系統(HDFS),用於在計算節點上存儲數據,從而在整個集群中提供非常高的聚合帶寬。Map / Reduce和分散式文件系統的設計都是為了使框架自動處理節點故障。Map / Reduce是一種編程模式,谷歌在任務分成小部分並分發到大量節點進行處理(map)時將其廣泛使用,然後將結果匯總到最終答案中(reduce)。谷歌和雅虎將其用於搜索引擎技術等等。

Hadoop是實現這種處理方案的通用框架。至於為什麼它這麼普適,主要是因為它提供了諸如容錯等整齊的功能,並且可以讓您將幾乎任何類型的硬體結合在一起進行處理。如果你的問題符合範例,它也可以很好地擴展。你可以在(http://hadoop.apache.org)上閱讀關於它的所有信息。

至於一些例子,Paul提供了一些例子,但是你可以做的還有一些不是那麼以網路為中心的:

1 渲染3D影片。「map」步驟將每個幀的幾何分布到不同的節點,節點渲染它,並且渲染幀在「reduce」步驟中重新組合。

2 用分子模型計算系統中的能量。系統軌跡的每一幀都在「map」步驟中分配給一個節點。 節點計算每個幀的能量,然後在「reduce」步驟中匯總結果。

本質上,該模型對於可以分解為完全獨立的類似離散計算的問題非常有效,並且可以重新組合以產生最終結果。


  • Hadoop可以做大數據量存儲,它是分散式,可以存儲離線的數據,不需要實時性的數據,就像雲盤,網盤那樣,你用的時候,可以直接讀取就行。
  • 你也可以將歷史數據存儲在Hadoop上,通過整體來分析數據,比抽樣的數據要全,更可靠。
  • 還可以處理大型文件,比如PB級別的,因為它的HDFS是分散式存儲數據的,它會將數據按塊來進行存儲,一般是128M,現在3.0是256M。
  • Hadoop可以做日誌處理: 通過MapReduce編程可以抽取想要的內容,也可以結合Flume來收集想要的數據,並通過Hive將數據保存到表,實際上數據底層還是存儲在Hadoop上,進行日誌分析。
  • Hadoop支持並行計算,因為它是分散式的,數據是存儲在不同的機器上,如果你的需求滿足分散式計算,那你就可以用MR來就行海量計算。我曾經用MR做過演算法,那是2年前啦。
  • Hadoop還可以將數據從oracle、mysql、DB2、mongdb等的數據進行ETL處理後,存儲在HDFS上進行保存。它有三個副本,非常可靠。
  • Hadoop還可以通過使用HBase做數據分析,因為HBase是基於Hadoop的資料庫, 可以實現實時性,高效和隨機讀寫。


Hadoop包含三個組件,yarn,MapReduce,HDFS 。其中 yarn是一個資源管理器用來管理集群的資源(CPU,內存)。MapReduce 是一個計算框架,適合做大數據離線計算。HDFS 是分散式存儲,用來做海量數據存儲。

Hadoop 發展這麼多年已經衍生了一個非常龐大的生態,單單使用Hadoop (yarn , mapreduce , hdfs)這個大數據組件能做的事情有限,但是結合衍生出來的生態產品(hive,flume,sqoop, hbase , spark)就可以做很多事。比如

  • 結合 hive 用來做數據倉庫,整合管理整個公司的數據。

  • 結合 sqoop 把關係型資料庫里的數據抽取到數據倉庫,用作後續分析
  • 結合 Flume 可以把 kafka , 日誌文件 等數據抽取到數據倉庫
  • 結合 hbase 寬表特性,存儲用戶畫像等信息,同時 hbase 還可用作高並發讀數據場景
  • 由於MapReduce 計算過程中需要頻繁寫磁碟,導致運行速度不夠快,結合 spark 可以做數據倉庫近實時查詢,spark 本身提供了機器學習,圖計算等演算法的實現,可以很方便的做類似的數據挖掘和數據分析


hadoop 兩部分,hdfs 和mr ,簡單的說吧,hdfs 分散式文件系統,你可以理解為把多個伺服器合成一個大硬碟,裡面的東西分塊存儲。mr 是基礎的分散式計算框架,基本上現在用得少了。何為分散式計算呢?之前知乎上有個回答挺不錯的:圖書館統計書,一個人統計非常慢,假設很多人數,A數第一列,B數第二列,最後大家把結果統計,數得人越多統計效率越快。

應用場景吧,hdfs 大數據都存在裡面,數據存儲的。感覺hadoop 是大數據的根基,大數據場景都能用。

小弟才疏學淺,不對輕噴


推薦閱讀:

你要的Hadoop,也不是很難吧--大數據入門到提高<一>
大數據學習路線!
一起學Hadoop——實現MapReduce全局排序
大規模數據處理的演化歷程
0459-如何使用SQuirreL通過JDBC連接CDH的Hive(方式一)

TAG:分散式計算 | Hadoop | 科技 |