首頁>Club>
4
回覆列表
  • 1 # 鄒昕

    現有有一個很大的倉庫,裡面有一萬個箱子,現在要把這些箱子搬到對門的倉庫。

    我們可以先讓一個工人來搬,如果一分鐘搬一個的話,那麼要搬一萬分鍾。

    現在我們找來一個動作快一點的工人,半分鐘就能搬一個,結果呢,那自然是五千分鐘就搬完了。

    當然還能再給力一點,比如讓工人動作再快一點,比如說 20 秒就搬一個?

    但是這總是有個極限的,畢竟搬箱子是個力氣活兒,不是那麼容易的。

    那要不再多找幾個工人?比如咱們找 100 個工人,這樣是不是就更快了?

    不過這又涉及到一個問題,雖然幹活的人是多了,但是現在只有一個門,100 個工人擠作一團,雖然人是多了,但是效率並沒有提高太多,很多人都在門口等著。

    玩過魔獸的就知道,如果採礦的農民太多的話,會有人在礦外面等著,所以每一個礦通常超過 5 個農民的話採礦的速度就不會再增加了。

    那怎麼辦呢?在遊戲裡,我們可以再開一個新礦,這樣就能每個礦分 5 個農民來採了。

    對應的倉庫,我們可以多開幾個門,比如說開 100 個門,每個門分配幾個工人,這樣是不是就能同步進行,搬箱子的速度更快了?

    這就是 Hive 裡 Map and Reduce 的原理。

    當然這只是一個很粗糙的說法,裡面還涉及到很多的細節,比如各個工人之間怎麼分配活兒?資料是一整塊的,怎麼切割成“箱子”,搬完之後在新的倉庫裡又如何堆放,門怎麼開,搬的順序是怎麼樣的?

  • 2 # 照境空

    盡問些我不知道的,答案也只能是我不知道。還有,我英語20分的成績,對HIV免疫。你們要給每個英文名詞定義箇中文概念,便於普及新文化,方便我們這些見識短的人看得懂。

  • 中秋節和大豐收的關聯?
  • 膽囊切除以後還可以喝酒嗎?