實訓6 HBase安裝與配置_第1頁
實訓6 HBase安裝與配置_第2頁
實訓6 HBase安裝與配置_第3頁
實訓6 HBase安裝與配置_第4頁
實訓6 HBase安裝與配置_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

實訓4.1HBase安裝與配置1.實訓目的通過本實訓任務,理解Zookeeper的概念、掌握Zookeeper完全分布式環(huán)境搭建、認識HBase的基本架構、理解HBase的原理、完成HBase的安裝與部署。2.實訓內容安裝和配置Zookeeper,學會分布式Zookeeper的安裝;安裝HBase,配置部署HBase,WebUI查看HBase。3.實訓要求以小組為單元進行實訓,每小組5人,小組自協(xié)商選一位組長,由組長安排和分配實訓任務,具體參考實訓操作環(huán)節(jié)。4.準備知識(1)Zookeeper的使用場景①HA機制(高可用機制)適合于HDFS、HBase等的HA,如在前面HBase的master、backup_master,兩臺節(jié)點都去ZK里面創(chuàng)建持久節(jié)點,當一個節(jié)點創(chuàng)建成功,另外一個就會創(chuàng)建失敗。另外一種是創(chuàng)建臨時順序節(jié)點,比如說第一個連接的叫znode1、第二個連接的就會叫znode2、第三個連接的就會叫znode3,連接的節(jié)點會按照名詞排序,此時我們定義節(jié)點最小的為master,當如果節(jié)點最小的節(jié)點(znode1)宕機,則znode2就是最小,此時,這個znode2所連接的服務器就切換成master角色了。②配置文件同步分布式系統(tǒng)中會有很多臺服務器,服務器的配置文件要一直,如果其中某個配置發(fā)生了變化,那么每一臺也應該改一樣,操作起來十分繁瑣,此時我們可以使用Zookeeper來同步配置。利用Zookeeper監(jiān)控此配置文件,如果發(fā)生了變化,則執(zhí)行另外的同步配置的代碼即可。③分布式鎖使用Zookeeper可以解決分布式環(huán)境下多個程序對一個共享資源的競爭的關系,防止同一資源在同一時刻被多個程序更改,實現(xiàn)過程一樣可以使用與HA相類似的操作。(2)HBase HBase的數(shù)據(jù)模型如表4-4所示。表4-4HBase的數(shù)據(jù)模型RowKeyTimeStampCF1CF2CF3“RK000001”T1CF2:q1=val3CF3:q2=val2T2CF1:q3=val4T3CF2:q4=val5(3)RowKey與其它Nosql數(shù)據(jù)庫一樣,RowKey是用來檢索記錄的主鍵。訪問HBasetable中的行,只有3種方式:①通過單個RowKey訪問②通過RowKey的range③全表掃描RowKey行鍵(RowKey)可以是任意字符串(最大長度是64KB,實際應用中長度一般為10-100bytes),在HBase內部,RowKey保存為字節(jié)數(shù)組。存儲時,數(shù)據(jù)按照RowKey的字典序(byteorder)排序存儲。設計Key時,要充分排序存儲這個特性,將經(jīng)常一起讀取的行存儲放到一起。注意:字典序對int排序的結果是:1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行鍵必須用0作左填充。行的一次讀寫是原子操作(不論一次讀寫多少列)。這個設計決策能夠使用戶很容易的理解程序在對同一個行進行并發(fā)更新操作時的行為。(4)列族HBase表中的每個列,都歸屬與某個列族。列族是表的chema的一部分(而列不是),必須在使用表之前定義。列名都以列族作為前綴。例如”courses:history”,”courses:math”都屬于”courses”這個列族。訪問控制、磁盤和內存的使用統(tǒng)計都是在列族層面進行的。實際應用中,列族上的控制權限能幫助我們管理不同類型的應用:我們允許一些應用可以添加新的基本數(shù)據(jù)、一些應用可以讀取基本數(shù)據(jù)并創(chuàng)建繼承的列族、一些應用則只允許瀏覽數(shù)據(jù)(甚至可能因為隱私的原因不能瀏覽所有數(shù)據(jù))。(5)時間戳HBase中通過row和columns確定的為一個存貯單元稱為cell。每個cell都保存著同一份數(shù)據(jù)的多個版本。版本通過時間戳來索引。時間戳的類型是64位整型。時間戳可以由HBase(在數(shù)據(jù)寫入時自動)賦值,此時時間戳是精確到毫秒的當前系統(tǒng)時間。時間戳也可以由客戶顯式賦值。如果應用程序要避免數(shù)據(jù)版本沖突,就必須自己生成具有唯一性的時間戳。每個cell中,不同版本的數(shù)據(jù)按照時間倒序排序,即最新的數(shù)據(jù)排在最前面。為了避免數(shù)據(jù)存在過多版本造成的的管理(包括存貯和索引)負擔,HBase提供了兩種數(shù)據(jù)版本回收方式。一是保存數(shù)據(jù)的最后n個版本,二是保存最近一段時間內的版本(比如最近七天)。用戶可以針對每個列族進行設置。(6)Cell由{RowKey,column(=<family>+<label>),version}唯一確定的單元。cell中的數(shù)據(jù)是沒有類型的,全部是字節(jié)碼形式存貯。(7)HBase整體架構 HBase的整體架構如圖4-2、圖4-3所示。圖4-2HBase集群架構圖圖4-3HBase系統(tǒng)架構圖(8)Client包含訪問HBase的接口,client維護著一些cache來加快對HBase的訪問,比如region的位置信息。(9)Zookeeper①保證任何時候,集群中只有一個master②存貯所有Region的尋址入口。③實時監(jiān)控RegionServer的狀態(tài),將Regionserver的上線和下線信息實時通知給Master④存儲HBase的schema,包括有哪些table,每個table有哪些columnfamily(10)Master①為Regionserver分配region②負責regionserver的負載均衡③發(fā)現(xiàn)失效的regionserver并重新分配其上的region④GFS上的垃圾文件回收⑤處理schema更新請求(11)RegionServer①Regionserver維護Master分配給它的region,處理對這些region的IO請求②Regionserver負責切分在運行過程中變得過大的region可以看到,Client訪問HBase上數(shù)據(jù)的過程并不需要master參與(尋址訪問zookeeper和regionserver,數(shù)據(jù)讀寫訪問regionserver),master僅僅維護者table和region的元數(shù)據(jù)信息,負載很低。實訓步驟(1)安裝和配置Zookeeper①安裝包準備將apache-zookeeper-3.5.10-bin.tar壓縮包上傳至master節(jié)點的/root/package目錄下。解壓apache-zookeeper-3.5.10-bin.tar,這里解壓在/opt/software目錄下:cd/root/packagetar-zxvfapache-zookeeper-3.5.10-bin.tar.gz-C/opt/software/②配置Zookeeper配置環(huán)境變量:vim/etc/profile添加以下內容:exportZK_HOME=/opt/software/apache-zookeeper-3.5.10-binexportPATH=$PATH:$ZK_HOME/bin使配置生效:source/etc/profile修改Zookeeper的配置文件($ZK_HOME/conf):cd/opt/software/apache-zookeeper-3.5.10-bin/confcpzoo_sample.cfgzoo.cfgvimzoo.cfg修改dataDir,加上dataLogDir:dataDir=/opt/software/apache-zookeeper-3.5.10-bin/datadirdataLogDir=/opt/software/apache-zookeeper-3.5.10-bin/logs添加上節(jié)點的關系(修改成自己對應的節(jié)點名)server.0=master:2888:3888server.1=slave1:2888:3888server.2=slave2:2888:3888 操作結果如圖6-50所示。圖6-50修改Zookeeper的配置文件創(chuàng)建Zookeeper對應的路徑:mkdir/opt/software/apache-zookeeper-3.5.10-bin/datadir創(chuàng)建Zookeeper節(jié)點標識并輸入0:vim/opt/software/apache-zookeeper-3.5.10-bin/datadir/myid0③配置slave1、slave2的Zookeeper復制master的Zookeeper到slave1、slave2:~/shell/scp_call.sh/opt/software/apache-zookeeper-3.5.10-bin配置Zookeeper節(jié)點標識,修改slave1的myid為1(slave2的myid為2):在slave1節(jié)點執(zhí)行:vim/opt/software/apache-zookeeper-3.5.10-bin/datadir/myid1在slave2節(jié)點執(zhí)行:vim/opt/software/apache-zookeeper-3.5.10-bin/datadir/myid2配置slave1、slave2的環(huán)境變量為了方便操作,可以拷貝master上的環(huán)境變量文件到slave1、slave2節(jié)點。在master節(jié)點執(zhí)行:~/shell/scp_call.sh/etc/profile拷貝完成后,需要在slave1、slave2節(jié)點上執(zhí)行source操作:source/etc/profile(2)校驗Zookeeper①啟動master、slave1、slave2上的Zookeeper。分別在三臺節(jié)點上執(zhí)行:zkServer.shstart 在master上啟動Zookeeper如圖6-51所示。圖6-51在master啟動Zookeeper 在slave1上啟動Zookeeper如圖6-52所示。圖6-52在slave1啟動Zookeeper 在slave2上啟動Zookeeper如圖6-53所示。圖6-52在slave2啟動Zookeeper②查看master、slave1、slave2上Zookeeper狀態(tài)zkServer.shstatus 查看master節(jié)點上的Zookeeper狀態(tài)如圖6-57所示。圖6-57master節(jié)點上的Zookeeper狀態(tài) 查看slave1節(jié)點上的Zookeeper狀態(tài)如圖6-58所示。圖6-58slave1節(jié)點上的Zookeeper狀態(tài) 查看slave2節(jié)點上的Zookeeper狀態(tài)如圖6-59所示。圖6-59slave2節(jié)點上的Zookeeper狀態(tài)說明:如果需要在三臺節(jié)點上執(zhí)行相同的操作,可以使用附錄提供的腳本:call_all.sh。使用說明:執(zhí)行call_all.sh腳本,加上需要操作的命令即可。比如,需要在三臺節(jié)點上執(zhí)行“jps”命令,則可以在master機上執(zhí)行:call_all.shjps如需要在三臺節(jié)點執(zhí)行“zkServer.shstatus”,腳本在“~/shell”目錄,則可以在master機上執(zhí)行:~/shell/call_all.sh"zkServer.shstatus"效果如圖4-所示。圖4-查看ZooKeeper節(jié)點的狀態(tài)由于執(zhí)行的命令有空格,所以可以使用雙引號。(3)安裝和配置HBase①將hbase-2.5.0-bin.tar.gz壓縮包上傳至master節(jié)點的/root/package目錄下,解壓在/opt/software/目錄下:cd/root/packagetar-zxvfhbase-2.5.0-bin.tar.gz-C/opt/software(4)配置HBase①配置環(huán)境變量:vim/etc/profile添加以下內容:exportHBASE_HOME=/opt/software/hbase-2.5.0exportPATH=$PATH:$HBASE_HOME/bin使配置生效:source/etc/profile②修改HBase的配置文件hbase-env.sh($HBASE_HOME/conf):配置JAVA_HOMEvim/opt/software/hbase-2.5.0/conf/hbase-env.sh編輯之前輸入/JAVA_HOME再回車進行搜索,按字母n進行搜索下一個。這里只有一處JAVA_HOME,去掉注釋(將行首的“#”刪掉),修改為實際的JAVA_HOME路徑。exportJAVA_HOME=/opt/software/jdk1.8.0_161設置HBase不使用內置Zookeeper管理同樣在非編輯狀態(tài)下輸入/HBASE_MANA進行搜索,將#exportHBASE_MANAGES_ZK=true中去掉注釋,并將true改為false,保存,退出:exportHBASE_MANAGES_ZK=false設置啟動的時候不包含Hadoop的庫同樣在非編輯狀態(tài)下輸入/HBASE_DISA進行搜索,將exportHBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"這一句的注釋去掉(或者新增一行設置為true)。如圖4-所示。圖4-配置效果此項默認是false,則會加載Hadoop的庫,則啟動的時候會有警告。③修改HBase的配置文件hbase-site.xml($HBASE_HOME/conf):vim/opt/software/hbase-2.5.0/conf/hbase-site.xml修改并添加相關配置:<property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>../tmp</value></property><property><name>hbase.rootdir</name><value>hdfs://master:8020/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value></property><property><name>vider</name><value>filesystem</value></property>④將hadoop中hdfs-site.xml拷貝到HBASE_HOME/conf下scp/opt/software/hadoop-3.3.4/etc/hadoop/hdfs-site.xml/opt/software/hbase-2.5.0/conf/⑤配置regionserversvim/opt/software/hbase-2.5.0/conf/regionservers刪除里面的localhost,添加slave1、slave2的主機名,如圖4-6所示。slave1slave2圖4-6添加slave1和slave2主機名(5)同步slave1、slave2①拷貝安裝目錄到slave1與slave2~/shell/scp_call.sh/opt/software/hbase-2.5.0②配置slave1、slave2的環(huán)境變量為了方便操作,可以拷貝master上的環(huán)境變量文件到slave1、slave2節(jié)點。在master節(jié)點執(zhí)行:~/shell/scp_call.sh/etc/profile拷貝完成后,需要在slave1、slave2節(jié)點上執(zhí)行source操作:source/etc/profile(6)檢驗HBase①啟動HBase,啟動頁面如圖4-7所示。在master節(jié)點執(zhí)行:start-hbase.sh圖4-7啟動HBase前提:確保Hadoop、Zookeeper已啟動,如果沒啟動,請使用下面指令啟動。zkServer.shstartstart-dfs.sh②查看master、slave1、slave2的進程~/shell/jps_all.sh圖4-10查看三臺節(jié)點的進程情況③查看WebUI頁面在瀏覽器中打開master的ip地址加端口:31:16010格式:master的ip:16010。如圖2-46所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論