大數據這個詞也許幾年前你聽着還會以爲陌生,但我相信你如今聽到hadoop這個詞的時候你應該都會以爲「熟悉」!愈來愈發現身邊從事hadoop開發或者是正在學習hadoop的人變多了。做爲一個hadoop入門級的新手,你會以爲哪些地方很難呢?運行環境的搭建恐怕就已經足夠讓新手頭疼。若是每個發行版hadoop均可以作到像大快DKHadoop那樣把各類環境搭建集成到一塊兒,一次安裝搞定全部,那對於新手來講將是件多麼美妙的事情!數據庫
閒話扯得稍微多了點,迴歸總體。這篇準備給你們hadoop新入門的朋友分享一些hadoop的基礎知識——hadoop家族產品。經過對hadoop家族產品的認識,進一步幫助你們學習好hadoop!同時,也歡迎你們提出寶貴意見!編程
1、Hadoop定義架構
Hadoop是一個你們族,是一個開源的生態系統,是一個分佈式運行系統,是基於Java編程語言的架構。不過它最高明的技術仍是HDFS和MapReduce,使得它能夠分佈式處理海量數據。機器學習
2、Hadoop產品編程語言
HDFS(分佈式文件系統):分佈式
它與現存的文件系統不一樣的特性有不少,好比高度容錯(即便中途出錯,也能繼續運行),支持多媒體數據和流媒體數據訪問,高效率訪問大型數據集合,數據保持嚴謹一致,部署成本下降,部署效率提升等,如圖是HDFS的基礎架構。工具
MapReduce/Spark/Storm(並行計算架構):oop
一、數據處理方式來講分離線計算和在線計算:性能
角色學習 |
描述 |
MapReduce |
MapReduce經常使用於離線的複雜的大數據計算 |
Storm |
Storm用於在線的實時的大數據計算,Storm的實時主要是一條一條數據處理; |
Spark |
能夠用於離線的也可用於在線的實時的大數據計算,Spark的實時主要是處理一個個時間區域的數據,因此說Spark比較靈活。 |
二、數據存儲位置來講分磁盤計算和內存計算:
角色 |
描述 |
MapReduce |
數據存在磁盤中 |
Spark和Strom |
數據存在內存中 |
Pig/Hive(Hadoop編程):
角色 |
描述 |
Pig |
是一種高級編程語言,在處理半結構化數據上擁有很是高的性能,能夠幫助咱們縮短開發週期。 |
Hive |
是數據分析查詢工具,尤爲在使用類SQL查詢分析時顯示出極高的性能。能夠在分分鐘完成ETL要一夜才能完成的事情,這就是優點,佔了先機! |
HBase/Sqoop/Flume(數據導入與導出):
角色 |
描述 |
HBase |
是運行在HDFS架構上的列存儲數據庫,而且已經與Pig/Hive很好地集成。經過Java API能夠近無縫地使用HBase。 |
Sqoop |
設計的目的是方便從傳統數據庫導入數據到Hadoop數據集合(HDFS/Hive)。 |
Flume |
設計的目的是便捷地從日誌文件系統直接把數據導入到Hadoop數據集合(HDFS)中。 |
以上這些數據轉移工具都極大地方便了使用的人,提升了工做效率,把精力專一在業務分析上。
ZooKeeper/Oozie(系統管理架構):
角色 |
描述 |
ZooKeeper |
是一個系統管理協調架構,用於管理分佈式架構的基本配置。它提供了不少接口,使得配置管理任務簡單化。 |
Oozie |
Oozie服務是用於管理工做流。用於調度不一樣工做流,使得每一個工做都善始善終。這些架構幫助咱們輕量化地管理大數據分佈式計算架構。 |
Ambari/Whirr(系統部署管理):
角色 |
描述 |
Ambari |
幫助相關人員快捷地部署搭建整個大數據分析架構,而且實時監控系統的運行情況。 |
Whirr |
Whirr的主要做用是幫助快速地進行雲計算開發。 |
Mahout(機器學習):
Mahout旨在幫助咱們快速地完成高智商的系統。其中已經實現了部分機器學習的邏輯。這個架構可讓咱們快速地集成更多機器學習的智能。