本博主已經安裝與配置好的 Haddoop+spark+Zookeeper-HBase+Hive-Mysql-Cluster 虛擬機環境,鏈接:https://pan.baidu.com/s/1xkRLmriVbC75Al14j4_WVw
提取碼:if38 下載後,用Vmare workstation 打開,即可以直接使用
Hadoop是一個能夠對大量數據進行分佈式處理的軟件框架。 Hadoop 以一種可靠、高效、可伸縮的方式進行數據處理。
Hadoop 是可靠的,因為它假設計算元素和存儲會失敗,因此它維護多個工作數據副本,確保能夠針對失敗的節點重新分佈處理。
Hadoop 是高效的,因為它以並行的方式工作,通過並行處理加快處理速度。
Hadoop 還是可伸縮的,能夠處理 PB 級數據。
此外,Hadoop 依賴於社區服務,因此它的成本比較低,任何人都可以使用。
Hadoop是一個能夠讓用戶輕鬆架構和使用的分佈式計算平台。用戶可以輕鬆地在Hadoop上開發和運行處理海量數據的應用程序。它主要有以下幾個優點:
高可靠性。Hadoop按位存儲和處理數據的能力值得人們信賴。
高擴展性。Hadoop是在可用的計算機集簇間分配數據並完成計算任務的,這些集簇可以方便地擴展到數以千計的節點中。
高效性。Hadoop能夠在節點之間動態地移動數據,並保證各個節點的動態平衡,因此處理速度非常快。
高容錯性。Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
低成本。與一體機、商用數據倉庫以及QlikView、Yonghong Z-Suite等數據集市相比,hadoop是開源的,項目的軟件成本因此會大大降低。
Hadoop帶有用Java語言編寫的框架,因此運行在 Linux 生產平台上是非常理想的。Hadoop 上的應用程序也可以使用其他語言編寫,比如 C++。
hadoop大數據處理的意義
Hadoop得以在大數據處理應用中廣泛應用得益於其自身在數據提取、變形和加載(ETL)方面上的天然優勢。Hadoop的分佈式架構,將大數據處理引擎儘可能的靠近存儲,對例如像ETL這樣的批處理操作相對合適,因為類似這樣操作的批處理結果可以直接走向存儲。Hadoop的MapReduce功能實現了將單個任務打碎,並將碎片任務(Map)發送到多個節點上,之後再以單個數據集的形式加載(Reduce)到數據倉庫里。
Apache Spark是專為大規模數據處理而設計的快速通用的計算引擎 [1] 。現在形成一個高速發展應用廣泛的生態系統。
特點編輯
Spark 主要有三個特點 [2] :
首先,高級 API 剝離了對集群本身的關注,Spark 應用開發者可以專註於應用所要做的計算本身。
其次,Spark 很快,支持交互式計算和複雜算法。
最後,Spark 是一個通用引擎,可用它來完成各種各樣的運算,包括 SQL 查詢、文本處理、機器學習等,而在 Spark 出現之前,我們一般需要學習各種各樣的引擎來分別處理這些需求。
性能特點編輯
更快的速度
內存計算下,Spark 比 Hadoop 快100倍。
計算時間比較
計算時間比較
易用性
Spark 提供了80多個高級運算符。
通用性
Spark 提供了大量的庫,包括Spark Core、Spark SQL、Spark Streaming、MLlib、GraphX。 開發者可以在同一個應用程序中無縫組合使用這些庫。
支持多種資源管理器
Spark 支持 Hadoop YARN,Apache Mesos,及其自帶的獨立集群管理器
Spark生態系統
Shark:Shark基本上就是在Spark的框架基礎上提供和Hive一樣的HiveQL命令接口,為了最大程度的保持和Hive的兼容性,Spark使用了Hive的API來實現query Parsing和 Logic Plan generation,最後的PhysicalPlan execution階段用Spark代替HadoopMapReduce。通過配置Shark參數,Shark可以自動在內存中緩存特定的RDD,實現數據重用,進而加快特定數據集的檢索。同時,Shark通過UDF用戶自定義函數實現特定的數據分析學習算法,使得SQL數據查詢和運算分析能結合在一起,最大化RDD的重複使用。
SparkR:SparkR是一個為R提供了輕量級的Spark前端的R包。 SparkR提供了一個分佈式的data frame數據結構,解決了 R中的data frame只能在單機中使用的瓶頸,它和R中的data frame 一樣支持許多操作,比如select,filter,aggregate等等。(類似dplyr包中的功能)這很好的解決了R的大數據級瓶頸問題。 SparkR也支持分佈式的機器學習算法,比如使用MLib機器學習庫。 [3] SparkR為Spark引入了R語言社區的活力,吸引了大量的數據科學家開始在Spark平台上直接開始數據分析之旅。
ZooKeeper是以Fast Paxos算法為基礎的,Paxos 算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥導致沒有一個proposer能提交成功,而Fast Paxos作了一些優化,通過選舉產生一個leader (領導者),只有leader才能提交proposer,具體算法可見Fast Paxos。因此,要想弄懂ZooKeeper首先得對Fast Paxos有所了解。 [3]
ZooKeeper的基本運轉流程:
1、選舉Leader。
2、同步數據。
3、選舉Leader過程中算法有很多,但要達到的選舉標準是一致的。
4、Leader要具有最高的執行ID,類似root權限。
5、集群中大多數的機器得到響應並接受選出的Leader。 [3]
特點
在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或獲取數據。如果在創建znode時Flag設置為EPHEMERAL,那麼當創建這個znode的節點和Zookeeper失去連接後,這個znode將不再存在在Zookeeper里,Zookeeper使用Watcher察覺事件信息。當客戶端接收到事件信息,比如連接超時、節點數據改變、子節點改變,可以調用相應的行為來處理數據。Zookeeper的Wiki頁面展示了如何使用Zookeeper來處理事件通知,隊列,優先隊列,鎖,共享鎖,可撤銷的共享鎖,兩階段提交。
那麼Zookeeper能做什麼事情呢,簡單的例子:假設我們有20個搜索引擎的服務器(每個負責總索引中的一部分的搜索任務)和一個總服務器(負責向這20個搜索引擎的服務器發出搜索請求併合並結果集),一個備用的總服務器(負責當總服務器宕機時替換總服務器),一個web的cgi(向總服務器發出搜索請求)。搜索引擎的服務器中的15個服務器提供搜索服務,5個服務器正在生成索引。這20個搜索引擎的服務器經常要讓正在提供搜索服務的服務器停止提供服務開始生成索引,或生成索引的服務器已經把索引生成完成可以提供搜索服務了。使用Zookeeper可以保證總服務器自動感知有多少提供搜索引擎的服務器並向這些服務器發出搜索請求,當總服務器宕機時自動啟用備用的總服務器。
hive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張數據庫表,並提供簡單的sql查詢功能,可以將sql語句轉換為MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。
Hive是建立在 Hadoop 上的數據倉庫基礎構架。它提供了一系列的工具,可以用來進行數據提取轉化加載(ETL),這是一種可以存儲、查詢和分析存儲在 Hadoop 中的大規模數據的機制。Hive 定義了簡單的類 SQL 查詢語言,稱為 HQL,它允許熟悉 SQL 的用戶查詢數據。同時,這個語言也允許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 無法完成的複雜的分析工作。
Hive 沒有專門的數據格式。 Hive 可以很好的工作在 Thrift 之上,控制分隔符,也允許用戶指定數據格式。
本博主已經安裝與配置好的 Haddoop+spark+Zookeeper-HBase+Hive-Mysql-Cluster 虛擬機環境,鏈接:https://pan.baidu.com/s/1xkRLmriVbC75Al14j4_WVw
提取碼:if38 下載後,用Vmare workstation 打開,即可以直接使用
Hive 構建在基於靜態批處理的Hadoop 之上,Hadoop 通常都有較高的延遲並且在作業提交和調度的時候需要大量的開銷。因此,Hive 並不能夠在大規模數據集上實現低延遲快速的查詢,例如,Hive 在幾百MB 的數據集上執行查詢一般有分鐘級的時間延遲。 [1]
因此,Hive 並不適合那些需要低延遲的應用,例如,聯機事務處理(OLTP)。Hive 查詢操作過程嚴格遵守Hadoop MapReduce 的作業執行模型,Hive 將用戶的HiveQL 語句通過解釋器轉換為MapReduce 作業提交到Hadoop 集群上,Hadoop 監控作業執行過程,然後返回作業執行結果給用戶。Hive 並非為聯機事務處理而設計,Hive 並不提供實時的查詢和基於行級的數據更新操作。Hive 的最佳使用場合是大數據集的批處理作業,例如,網絡日誌分析。 [2]
設計特徵編輯
Hive 是一種底層封裝了Hadoop 的數據倉庫處理工具,使用類SQL 的HiveQL 語言實現數據查詢,所有Hive 的數據都存儲在Hadoop 兼容的文件系統(例如,Amazon S3、HDFS)中。Hive 在加載數據過程中不會對數據進行任何的修改,只是將數據移動到HDFS 中Hive 設定的目錄下,因此,Hive 不支持對數據的改寫和添加,所有的數據都是在加載的時候確定的。Hive 的設計特點如下。
● 支持創建索引,優化數據查詢。
● 不同的存儲類型,例如,純文本文件、HBase 中的文件。
● 將元數據保存在關係數據庫中,大大減少了在查詢過程中執行語義檢查的時間。
● 可以直接使用存儲在Hadoop 文件系統中的數據。
● 內置大量用戶函數UDF 來操作時間、字符串和其他的數據挖掘工具,支持用戶擴展UDF 函數來完成內置函數無法實現的操作。
● 類SQL 的查詢方式,將SQL 查詢轉換為MapReduce 的job 在Hadoop集群上執行。
HBase是一個分佈式的、面向列的開源數據庫,該技術來源於 Fay Chang 所撰寫的Google論文「Bigtable:一個結構化數據的分佈式存儲系統」。就像Bigtable利用了Google文件系統(File System)所提供的分佈式數據存儲一樣,HBase在Hadoop之上提供了類似於Bigtable的能力。HBase是Apache的Hadoop項目的子項目。HBase不同於一般的關係數據庫,它是一個適合於非結構化數據存儲的數據庫。另一個不同的是HBase基於列的而不是基於行的模式。
HBase – Hadoop Database,是一個高可靠性、高性能、面向列、可伸縮的分佈式存儲系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲集群。
與FUJITSU Cliq等商用大數據產品不同,HBase是Google Bigtable的開源實現,類似Google Bigtable利用GFS作為其文件存儲系統,HBase利用Hadoop HDFS作為其文件存儲系統;Google運行MapReduce來處理Bigtable中的海量數據,HBase同樣利用Hadoop MapReduce來處理HBase中的海量數據;Google Bigtable利用 Chubby作為協同服務,HBase利用Zookeeper作為對應。 [1]
上圖描述Hadoop EcoSystem中的各層系統。其中,HBase位於結構化存儲層,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持,Hadoop MapReduce為HBase提供了高性能的計算能力,Zookeeper為HBase提供了穩定服務和failover機制。
本博主已經安裝與配置好的 Haddoop+spark+Zookeeper-HBase+Hive-Mysql-Cluster 虛擬機環境,鏈接:https://pan.baidu.com/s/1xkRLmriVbC75Al14j4_WVw
提取碼:if38 下載後,用Vmare workstation 打開,即可以直接使用此外,Pig和Hive還為HBase提供了高層語言支持,使得在HBase上進行數據統計處理變的非常簡單。 Sqoop則為HBase提供了方便的RDBMS數據導入功能,使得傳統數據庫數據向HBase中遷移變的非常方便。
ZooKeeper是以Fast Paxos算法為基礎的,Paxos 算法存在活鎖的問題,即當有多個proposer交錯提交時,有可能互相排斥導致沒有一個proposer能提交成功,而Fast Paxos作了一些優化,通過選舉產生一個leader (領導者),只有leader才能提交proposer,具體算法可見Fast Paxos。因此,要想弄懂ZooKeeper首先得對Fast Paxos有所了解。 [3]
ZooKeeper的基本運轉流程:
1、選舉Leader。
2、同步數據。
3、選舉Leader過程中算法有很多,但要達到的選舉標準是一致的。
4、Leader要具有最高的執行ID,類似root權限。
5、集群中大多數的機器得到響應並接受選出的Leader。 [3]
特點編輯
在Zookeeper中,znode是一個跟Unix文件系統路徑相似的節點,可以往這個節點存儲或獲取數據。如果在創建znode時Flag設置為EPHEMERAL,那麼當創建這個znode的節點和Zookeeper失去連接後,這個znode將不再存在在Zookeeper里,Zookeeper使用Watcher察覺事件信息。當客戶端接收到事件信息,比如連接超時、節點數據改變、子節點改變,可以調用相應的行為來處理數據。Zookeeper的Wiki頁面展示了如何使用Zookeeper來處理事件通知,隊列,優先隊列,鎖,共享鎖,可撤銷的共享鎖,兩階段提交。
那麼Zookeeper能做什麼事情呢,簡單的例子:假設我們有20個搜索引擎的服務器(每個負責總索引中的一部分的搜索任務)和一個總服務器(負責向這20個搜索引擎的服務器發出搜索請求併合並結果集),一個備用的總服務器(負責當總服務器宕機時替換總服務器),一個web的cgi(向總服務器發出搜索請求)。搜索引擎的服務器中的15個服務器提供搜索服務,5個服務器正在生成索引。這20個搜索引擎的服務器經常要讓正在提供搜索服務的服務器停止提供服務開始生成索引,或生成索引的服務器已經把索引生成完成可以提供搜索服務了。使用Zookeeper可以保證總服務器自動感知有多少提供搜索引擎的服務器並向這些服務器發出搜索請求,當總服務器宕機時自動啟用備用的總服務器。
本博主已經安裝與配置好的 Haddoop+spark+Zookeeper-HBase+Hive-Mysql-Cluster 虛擬機環境,鏈接:https://pan.baidu.com/s/1xkRLmriVbC75Al14j4_WVw
提取碼:if38 下載後,用Vmare workstation 打開,即可以直接使用
以下文章點擊率最高
Loading…