Hadoop- 用於大數據的分布式存儲及處理計算平台
- 開源
- java語言
- 低成本
Hadoop架構
- Hadoop Common Package
- 提供系統交互及支撐
- Hadoop是一個軟件
- Hadoop Distributed File System(HDFS)
- 提供分布式文件管理能力
- 實現文件分塊存儲
- 在Hadoop中 文件是拆分成一小塊一小塊分布在計算機集群上面,每一個文件塊都有三個備份,就算一台計算機宕機了,也不會造成數據的丟失
- 可以加快文件的存儲
- Hadoop YARN
- 提供任務調度和集群資源管理
- 提供cpu和內存資源管理
- MapReduce Engine
- 提供計算機的分布式並行執行功能
- 實現計算機任務的分開運行
- Map,計算機集群上面每一台計算機都有一個類似Map的程序,將自己計算機上面的數據進行分組緩存,然后根據一定的規則,發送到其他的機器上面,這樣每一台計算機得到的數據就是分組過后很容易處理的數據
- Reduce就是將分組過后的數據進行並行處理
- 我理解的是,Map是處理數據,Reduce是統計數據,例如將一個90MB的文本文件分開儲存到3台計算機上面,這樣每一台計算機存儲30MB的文本文件,文本文件中有各種單詞數字符號信息,現在每台機子上面的Map程序處理自己的30MB數據,將數據分為,單詞,符號,數字。之后將處理過后的數據,單詞就集中發到第一台計算機上面由第一台計算機的Reduce程序處理,符號就發到第二台計算機由第二台計算機的Reduce程序進行加工處理,以此類推,最后將統計信息集中起來。
- Hive
- 數據倉庫工具
- 可以將SQL語句轉換為MapReduce任務運行,十分適合數據倉庫
- 以行為基本單位,效率不是很高
- Hbase
- 分布式數據庫
- 列數據庫
- Mahout
- 並行機器學習
- 分類,聚類,協同過濾等等
- 操作簡單
- Spark
- 內存版的MapReduce
- 更靈活高效的編程模型
Hadoop是一個大數據處理的生態環境,包含眾多子項目