Hadoop生態系統之Hive和HBase and Zookeeper
阿新 • • 發佈:2019-02-06
今天來說一下Hadoop生態系統中的Zookeeper,HBase,Hive,說到Zookeeper簡單來說其實就是Hadoop分散式框架的一個協調服務,也就是分散式應用都需要一個主控協調器或者控制器來管理物理分佈的子程序.那再說的明白點就是:Zookeeper在hadoop生態系統中的叢集擔任著非常重要的責任.叢集中的資源調配或者是服務的切換,都得需要他去管理.所以說在Hadoop生態系統中Hadoop是一頭大象,而Zookeeper卻是一個動物園的管理員.至於圖這裡就不展示了.百度一搜就有的.對了.告訴大家一個祕訣,學習Hadoop生態系統的前期,自己從網上下載一張這樣的圖解.特別有用.####特別推薦啊####
我們剛才說過Zookeeper是一個搭建叢集的服務,因為他是一個協調框架.所以在搭建叢集的時候需要給他配置兩個配置檔案(具體是什麼,自己去上百度搜索,那速度嗖嗖的)
繼續來說一下HBase首先他是一個分散式,版本化,面向列的資料庫.構建在Hadoop上和Zookeeper上.可以用HBase技術在廉價的PC Server上搭建起大規模的結構化儲存叢集.HBase利用Hadoop中的HDFS作為其檔案系統用Zookeeper作為協調工具.用Hadoop中的MapReduce作為其的計算系統來為他處理海量資料.HBase中的主鍵是用來檢索記錄的主鍵,訪問HBase table中的行,而HBase中的列族,一個列族可以包含多個列,列中的資料都是以二進位制的形式存在的,沒有資料型別.列也稱為:列名和列的識別符號,行有一個叫行標的識別符號.這樣就可以把一條資料根據列來顯示出來.'+'像十字架一樣相交的才是資料.啟動HBase:HBase如果啟動一個單節點的是不需要任何配置檔案的這裡我們只說單節點的配置檔案,後序會引出來叢集.先要進入/bin檔案,然後先啟動服務, ./start-hbase.sh 之後在啟動客戶端, ./hbase shell這樣一執行這樣一個面向列的資料庫就啟動了.對了,忘了宣告一點,HBase是按住ctrl加backspace才是從後往前刪除,如果單單是按住backspace的話是從前往後刪除的.歸根到底其實HBase就是一個存放資料的載體,就比如Windows用的NTFS檔案系統,怎麼才能讀到其中所有的資料那,那麼我就會用一個數據庫去訪問本地的資源或者連線網路通過網路讓外部的計算機可以通過伺服器中的資料庫來訪問我的本地資源,那麼同樣別的計算機也可以通過網路流來向我傳輸一些檔案.這樣整體的一個數據訪問系統的目的就達到了.那麼同樣的道理,我在Hadoop生態系統上,用HBase資料庫的目的也是在於我Hadoop可以獲取資料,然後再交給MapReduce去計算得到使用者想要的資料.以上均為個人理解,如果有什麼差別之處,望指明.
最後來說一下Hive:Hive是建立在Hadoop上的資料倉庫基礎架構,它提供了一系列的工具,可以用來進行提取轉化載入這是一種可以儲存 查詢和分析儲存在Hadoop中的大規模資料的機制.Hive定義了簡單的類SQL語言,稱為QL,同時這個語言也允許熟悉MapReduce處理過程中無法mapper和reducer無法完成的複雜的分析工作.Hive的系統架構是:使用者介面:包括Java中連線資料庫的JDBC/ODBC,WebUI,CLI.元資料的儲存一般放在MySql或者derby資料庫中(derby很迷你,但是漏洞很多比如他是一個單例的他是用Java編寫的一個數據庫儲存系統),直譯器,編譯器,優化器,執行器,Hadoop:利用HDFS來進行儲存,利用MapReduce來計算海量資料.總結一下,Hive主要是在MapReduce處理不了的時候派上用場.因為什麼東西不是萬能的,總會有弊端的,所以說,在MapReduce無法完成的任務的之後,還有Hive去為你排憂艱難.這是最基本的用處.還有一個用處就是我們在文上也說過了,它是一個數據倉庫,也就是說用來儲存資料的,說到儲存資料了,我們就會想到資料庫,但是他和資料庫最根本的區別就是一點:他是把資料存放在HDFS上的,但是資料庫是一個自我的資料儲存系統,所以說兩者不可混淆,當然了,你只需要記住Hive是把資料存放在HDFS上的但是他還能夠幫助MapReduce來計算資料,所以他要 依託著Hadoop的.而HBase卻是一個存放資料的載體,而他的功能是寫入是資料和讀出來資料,這是他倆的根本的區別.OK The End Today.我剛學習的時候也總是理解不清楚,但是有貴人指路,終於可以在這裡給你們寫文件了.這是多麼艱難的一件事情啊.所以說遇到問題要積極的面對而且自己心裡要知道,這是在學習的時候最應該遇到的,該踩的坑都踩了,那麼你就牛逼了.Be strong , Believe in who you are;