版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
大數(shù)據(jù)實踐第一章大數(shù)據(jù)概述1.1從數(shù)據(jù)庫到大數(shù)據(jù)庫1.2大數(shù)據(jù)庫的類型1.3大數(shù)據(jù)庫的應(yīng)用習(xí)題1.1從數(shù)據(jù)庫到大數(shù)據(jù)庫第一章大數(shù)據(jù)概述傳統(tǒng)關(guān)系數(shù)據(jù)庫Oracle、SQLServer、Mysql、DB2、SyBase、SqlLite。容易理解、使用方便、易于維護(hù)。難以滿足高并發(fā)讀寫需求;難以滿足海量數(shù)據(jù)的高效率讀寫;擴(kuò)展性差。1.1從數(shù)據(jù)庫到大數(shù)據(jù)庫第一章大數(shù)據(jù)概述大數(shù)據(jù)庫以NoSQL(NotOnlySQL)為代表的用于存儲、管理、分析海量數(shù)據(jù)的系統(tǒng)稱為大數(shù)據(jù)庫數(shù)據(jù)體量巨大;數(shù)據(jù)類型多樣;處理速度快;價值密度低。NoSQL典型地遵循CAP理論和BASE原則。CAP理論可簡單描述為:一個分布式系統(tǒng)不能同時滿足一致性(consistency)、可用性(availability)和分區(qū)容錯性(partitiontolerance)這三個需求,最多只能同時滿足兩個。BASE原則是指BasicallyAvailable(基本可用)、SoftState(軟狀態(tài))和EventuallyConsistent(最終一致性)。第一章大數(shù)據(jù)概述1.2大數(shù)據(jù)庫的類型1.1
從數(shù)據(jù)庫到大數(shù)據(jù)庫1.3大數(shù)據(jù)庫的應(yīng)用習(xí)題第一章大數(shù)據(jù)概述1.2大數(shù)據(jù)庫的類型大類型小類型代表產(chǎn)品廠家key-value存儲數(shù)據(jù)庫key-columnHbaseApacheSoftwareFoundationCassandraApacheSoftwareFoundationVoldemortAmazonkey-valueRedisRedisLabskey-valuecacheGemFirePivotalInckey-documentMongoDBMongoDBIncCouchDBApacheSoftwareFoundation文檔數(shù)據(jù)庫
MongoDBMongoDBInc.CouchDBApacheSoftwareFoundation圖數(shù)據(jù)庫
Neo4jNeoTechnologyIncAllegroGraphFranzInc.按數(shù)據(jù)存儲方式和處理數(shù)據(jù)的類型分類第一章大數(shù)據(jù)概述1.2大數(shù)據(jù)庫的類型習(xí)題1.3大數(shù)據(jù)庫的應(yīng)用1.1從數(shù)據(jù)庫到大數(shù)據(jù)庫第一章大數(shù)據(jù)概述1.3大數(shù)據(jù)庫的應(yīng)用1.離線分析方面的應(yīng)用,百度作業(yè)幫(1)線上業(yè)務(wù)系統(tǒng)用云主機(jī)解決負(fù)載均衡及海量存儲問題。(2)將線上業(yè)務(wù)系統(tǒng)與離線數(shù)據(jù)平臺分離。線上業(yè)務(wù)系統(tǒng)實時為用戶提供服務(wù),離線數(shù)據(jù)平臺提供報表分析等功能。(3)日志服務(wù)BLS收集運行數(shù)據(jù),存儲到BOS中,然后使用百度MapReduce對數(shù)據(jù)篩選、清理、存儲,最后接入報表系統(tǒng)。百度MapReduce是Hadoop/Spark集群。第一章大數(shù)據(jù)概述1.3大數(shù)據(jù)庫的應(yīng)用2.實時事務(wù)處理的應(yīng)用,騰訊點廣通廣點通利用HBase+Storm構(gòu)建了廣告日志實時處理平臺,解決了實時數(shù)據(jù)回流和統(tǒng)計的問題。第一章大數(shù)據(jù)概述1.3大數(shù)據(jù)庫的應(yīng)用3.高并發(fā),低延遲,實時事務(wù)應(yīng)用,12116互聯(lián)網(wǎng)售票系統(tǒng)年份尖峰日PV值放票次數(shù)網(wǎng)絡(luò)帶寬訂單處理(張/秒)201210億4次1.5G200201315億10次3G4502014144億16次5G10002015297億21次12G1032Gemfire可以將數(shù)十臺或者數(shù)百臺廉價PC服務(wù)器組建成一個集群。內(nèi)存中進(jìn)行計算。定期將數(shù)據(jù)以同步或異步方式寫到磁盤。有磁盤數(shù)據(jù)作為備份。第一章大數(shù)據(jù)概述1.2大數(shù)據(jù)庫的類型習(xí)題1.3大數(shù)據(jù)庫的應(yīng)用1.1從數(shù)據(jù)庫到大數(shù)據(jù)庫1.傳統(tǒng)關(guān)系型數(shù)據(jù)庫通常支持事務(wù)處理,數(shù)據(jù)庫事務(wù)擁有四個特性,習(xí)慣上被稱之為ACID特性。查閱資料簡述什么是ACID特性。2.你認(rèn)為大數(shù)據(jù)庫能否取代傳統(tǒng)關(guān)系數(shù)據(jù)庫嗎?簡述理由。習(xí)題:第二章Hadoop基礎(chǔ)2.1
Hadoop簡介2.2
Hadoop部署2.3
Hadoop常用命令習(xí)題2.4
HDFS常用命2.1Hadoop簡介第二章Hadoop基礎(chǔ)8Aug2018:Release3.1.1available31May2018:Release2.7.7available解決海量數(shù)據(jù)存儲(HDFS)海量數(shù)據(jù)分析(MapReduce)資源管理調(diào)度問題(YARN)本教材:2.7.32.1Hadoop簡介第二章Hadoop基礎(chǔ)2.1Hadoop簡介第二章Hadoop基礎(chǔ)2.1Hadoop簡介第二章Hadoop基礎(chǔ)MapReduce1.0原理圖分布式計算框架,基于它寫出來的應(yīng)用程序能夠運行在Hadoop集群上。MapReduce采用“分而治之”的思想,把對大規(guī)模數(shù)據(jù)集的操作,分發(fā)給一個主節(jié)點管理下的各個從節(jié)點共同完成,然后通過整合各個節(jié)點的中間結(jié)果,得到最終結(jié)果。簡單地說,MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。2.1Hadoop簡介第二章Hadoop基礎(chǔ)HDFS結(jié)構(gòu)圖HDFS是主從結(jié)構(gòu)的,有主節(jié)點(NameNode)和從節(jié)點(DataNode)。一個主節(jié)點可關(guān)聯(lián)多個從節(jié)點,一個從節(jié)點也可關(guān)聯(lián)多個主節(jié)點。從節(jié)點又稱數(shù)據(jù)節(jié)點。每一個block會在多個DataNode上存儲多份副本2.1Hadoop簡介第二章Hadoop基礎(chǔ)YARN結(jié)構(gòu)
組件功能ResourceManager(RM)
負(fù)責(zé)對各NM上的資源進(jìn)行統(tǒng)一管理和調(diào)度。將AM分配空閑的Container運行并監(jiān)控其運行狀態(tài)。對AM申請的資源請求分配相應(yīng)的空閑Container。NodeManager(NM)
NM是每個節(jié)點上的資源和任務(wù)管理器。它會定時地向RM匯報本節(jié)點上的資源使用情況和各個Container的運行狀態(tài);同時會接收并處理來自AM的Container啟動/停止等請求。ApplicationMaster(AM)應(yīng)用框架,它負(fù)責(zé)向ResourceManager協(xié)調(diào)資源,并且與NodeManager協(xié)同工作完成Task的執(zhí)行和監(jiān)控ContainerContainer是YARN中的資源抽象,它封裝了某個節(jié)點上的多維度資源,如內(nèi)存、CPU、磁盤、網(wǎng)絡(luò)等,當(dāng)AM向RM申請資源時,RM為AM返回的資源便是用Container表示的。2.1Hadoop簡介第二章Hadoop基礎(chǔ)其它Hadoop生態(tài)圈組件功能HBase一個建立在HDFS之上,面向列的針對結(jié)構(gòu)化數(shù)據(jù)的可伸縮、高可靠、高性能、分布式和面向列的動態(tài)模式數(shù)據(jù)庫。HiveHive定義了一種類似SQL的查詢語言(HQL),將SQL轉(zhuǎn)化為MapReduce任務(wù)在Hadoop上執(zhí)行,通常用于離線分析。Spark一種與Hadoop相似的開源集群計算環(huán)境,它基于內(nèi)存計算,數(shù)據(jù)分析速度更快。Mahout創(chuàng)建一些可擴(kuò)展的機(jī)器學(xué)習(xí)領(lǐng)域經(jīng)典算法的實現(xiàn),旨在幫助開發(fā)人員更加方便快捷地創(chuàng)建智能應(yīng)用程序。Pig提供一種基于MapReduce的數(shù)據(jù)分析工具。Zookeeper解決分布式環(huán)境下的數(shù)據(jù)管理問題Sqoop主要用于傳統(tǒng)數(shù)據(jù)庫和Hadoop之間傳輸數(shù)據(jù)。第二章Hadoop基礎(chǔ)2.1
Hadoop簡介2.2
Hadoop部署2.3
Hadoop常用命令習(xí)題2.4
HDFS常用命2.2Hadoop部署第二章Hadoop基礎(chǔ)單節(jié)點部署基礎(chǔ)知識:熟悉虛擬機(jī)(virtualbox/vmware)熟悉Linux基本命令(下載文件,使用vi/vim編輯文件,創(chuàng)建文件和創(chuàng)建目錄)準(zhǔn)備工作:在虛擬機(jī)中安裝好Linux(centos7)使用橋接模式配好網(wǎng)絡(luò)2.2Hadoop部署第二章Hadoop基礎(chǔ)1.單節(jié)點部署安裝步驟:在虛擬機(jī)中安裝Centos7安裝ssh安裝rsync。安裝openJDK確認(rèn)jdk版本下載Hadoop的安裝包解壓Hadoop在Hadoop的配置文件(etc/hadoop/hadoop-env.sh)中增加環(huán)境變量JAVA_HOME驗證配置運行MapReduce任務(wù)2.2Hadoop部署第二章Hadoop基礎(chǔ)2.偽分布式部署安裝步驟:SSH免密碼登錄安裝ssh產(chǎn)生公鑰和私鑰將公鑰放到目標(biāo)機(jī)器的~/.ssh/authorized_keys中驗證修改配置文件core-site.xml、hdfs-site.xml格式化NameNode啟動NameNode和DataNode的守護(hù)進(jìn)程通過web檢查dfs狀態(tài)驗證dfs是否正常工作配置YARN2.2Hadoop部署第二章Hadoop基礎(chǔ)3.集群部署集群部署架構(gòu)編號常見集群部署架構(gòu)特點Hadoop版本1傳統(tǒng)方式NameNode加SecondaryNameNod1.x和2.x2HAActiveNamenode加StandbyNamenode2.x3HA+Federation兩組ActiveNamenode和StandbyNamenode2.x2.2Hadoop部署第二章Hadoop基礎(chǔ)3.集群部署集群規(guī)劃編號機(jī)器名IP進(jìn)程1m101NameNode2m202SecondaryNamenode3m303ResourceManager,JobHistory4m404DataNode,DataNodeManager5m505DataNode,DataNodeManager6m606DataNode,DataNodeManager2.2Hadoop部署第二章Hadoop基礎(chǔ)3.集群部署準(zhǔn)備工作準(zhǔn)備6臺Linux服務(wù)器分別配置6臺機(jī)器的名字為m1~m6,并指定靜態(tài)IP地址所有機(jī)器配置本地機(jī)器名解析所有機(jī)器之間配置ssh免密碼登錄關(guān)閉防火墻下載Hadoop安裝包,并解壓到適當(dāng)?shù)奈恢盟袡C(jī)器上使用相同版本的jdk和Hadoop版本,并且保證Hadoop的目錄在相同的位置2.2Hadoop部署第二章Hadoop基礎(chǔ)3.集群部署準(zhǔn)備工作的驗證驗證本地機(jī)器名解析正常驗證ssh免密碼配置成功在每臺機(jī)器上運行java-version檢查jdk版本在每臺機(jī)器上檢查防火墻狀態(tài)2.2Hadoop部署第二章Hadoop基礎(chǔ)3.集群部署配置Hadoop參數(shù)配置etc/hadoop/hadoop-env.sh配置core-site.xml配置etc/hadoop/hdfs-site.xml配置etc/hadoop/mapred-site.xml配置etc/hadoop/yarn-site.xml配置etc/hadoop/slaves分發(fā)配置文件。2.2Hadoop部署第二章Hadoop基礎(chǔ)3.集群部署啟動集群格式化NameNode啟動NameNode啟動DataNode啟動全部dfs進(jìn)程啟動ResourceManager啟動NodeManager啟動JobHistoryServer用瀏覽器檢查web接口工作是否正常關(guān)閉集群第二章Hadoop基礎(chǔ)2.1
Hadoop簡介2.2
Hadoop部署2.3
Hadoop常用命令習(xí)題2.4
HDFS常用命2.3Hadoop常用命令第二章Hadoop基礎(chǔ)1.用戶命令命令功能$bin/hadoop顯示幫助$bin/hadoopfs文件操作$bin/hadoopjar運行MapReduce程序$bin/hadoopversion查看Hadoop版本$bin/hadoopchecknative檢查Hadoop的本地庫2.3Hadoop常用命令第二章Hadoop基礎(chǔ)1.用戶命令bin/hadoopfs可用的常用參數(shù)列表編號命令功能1-catpath/file輸出文本文件的內(nèi)容2-appendToFile本地文件集群文件將本地文件的內(nèi)容追加到集群文件結(jié)尾3-copyFromLocal本地文件集群文件將本地文件復(fù)制到集群4-copyToLocal集群文件本地文件將集群文件復(fù)制到本地5-cp集群原文件集群目標(biāo)文件復(fù)制集群文件6-mv集群原文件集群目標(biāo)文件移動或重命名文個7-ls路徑列出集群文件或者目錄8-mkdir路徑在集群中創(chuàng)建目錄9-setrep[參數(shù)][副本數(shù)][路徑]設(shè)置文件副本數(shù)2.3Hadoop常用命令第二章Hadoop基礎(chǔ)2.管理命令$bin/hadoopdaemonlog-getlevel<host:httpport><classname>$bin/hadoopdaemonlog-setlevel<host:httpport><classname><level>功能:動態(tài)調(diào)整日志級別。DEBUG<INFO<WARN<ERROR<FATALhttp://<hostname>:50070/logLevel2.3Hadoop常用命令第二章Hadoop基礎(chǔ)2.管理命令$bin/hadoopdaemonlog-getlevel<host:httpport><classname>$bin/hadoopdaemonlog-setlevel<host:httpport><classname><level>功能:動態(tài)調(diào)整日志級別。DEBUG<INFO<WARN<ERROR<FATALhttp://<hostname>:50070/logLevel2.3Hadoop常用命令第二章Hadoop基礎(chǔ)3.啟動關(guān)閉命令命令功能$sbin/start-all.sh$sbin/stop-all.sh啟動集群所有服務(wù)/關(guān)閉集群所有服務(wù)$sbin/start-dfs.sh
$sbin/stop-dfs.sh啟動dfs;關(guān)閉dfs$sbin/start-yarn.sh$sbin/stop-yarn.sh啟動YARN;關(guān)閉YARN$sbin/hadoop-daemon.sh[start|stop]服務(wù)名單個Hadoop服務(wù)啟動或者關(guān)閉$sbin/hadoop-daemons.sh[start|stop]服務(wù)名全部slaves上的Hadoop服務(wù)啟動或者關(guān)閉$sbin/yarn-daemon.sh[start|stop]服務(wù)名單個yarn服務(wù)的啟動或者關(guān)閉$sbin/yarn-daemons.sh[start|stop]服務(wù)名全部slaves上的yarn服務(wù)啟動或者關(guān)閉$bin/hdfssecondarynamenode以控制臺的方式啟動SecondaryNameNode$bin/hdfsnamenode以控制臺的方式啟動NameNode$bin/hdfsdatanode以控制臺的方式啟動DataNode第二章Hadoop基礎(chǔ)2.1
Hadoop簡介2.2
Hadoop部署2.3
Hadoop常用命令習(xí)題2.4
HDFS常用命2.4HDFS常用命令第二章Hadoop基礎(chǔ)1.用戶命令命令功能$bin/hdfs顯示幫助$bin/hdfsdfs[參數(shù)]文件操作,與$bin/hadoopfs的參數(shù)完全一樣$bin/hdfsnamenode-format格式化NameNode$bin/hdfsgetconf從配置文件中獲取配置信息$bin/hdfsfsck[路徑][參數(shù)]處理損壞的文件2.4HDFS常用命令第二章Hadoop基礎(chǔ)1.用戶命令fsck參數(shù)編號參數(shù)功能1-list-corruptfileblocks輸出損壞的文件及丟失的塊2-move將文件移動到/lost+found目錄3-delete刪除損壞的文件4-openforwrite輸出以寫方式打開的文件5-files輸出該目錄及子目錄下所有文件的狀態(tài)6-files-blocks輸出該目錄及子目錄下所有文件的塊信息7-files–blocks-locations輸出該目錄及子目錄下所有文件在DataNode的存儲信息8-files-blocks-racks輸出該目錄及子目錄下所有文件機(jī)架感知信息2.4HDFS常用命令第二章Hadoop基礎(chǔ)2.管理命令命令功能$bin/hdfsdfsadmin-report查看HDFS的基本統(tǒng)計信息$bin/hdfsdfsadmin-safemode<enter|leave|get|wait>配置安全模式$bin/hdfsdfsadmin-saveNamespace將內(nèi)存信息保存到磁盤,并重置edits文件$bin/hdfsdfsadmin-refreshNodes刷新節(jié)點和排除文件$bin/hdfsdfsadmin–setBalancerBandwidth[bytepersecond]設(shè)置負(fù)載均衡帶寬$bin/hdfssecondarynamenode[參數(shù)]操作SecondaryNameNode$bin/hdfsbalancer平衡集群中DataNode的數(shù)據(jù)第二章Hadoop基礎(chǔ)2.1
Hadoop簡介2.2
Hadoop部署2.3
Hadoop常用命令習(xí)題2.4
HDFS常用命1.簡述Hadoop的三種部署方式。2.簡述單機(jī)SSH免密碼登錄的配置方式。3.簡述兩臺機(jī)器間SSH免密碼登錄,用兩對公私鑰來管理和配置的步驟。4.簡述Hadoop三大核心組件的功能.5.查閱資源,學(xué)習(xí)Hadoop集群HA和HA加Federaion的配置方法.習(xí)題:第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全3.1HBase簡介第三章Hadoop數(shù)據(jù)庫HBase1.體系架構(gòu)HBase體系架構(gòu)ZooKeeperHRegionServerHMasterClientZooKeepe主要用于解決分布式應(yīng)用中經(jīng)常遇到的統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、配置項管理等問題。HBase在存儲表數(shù)據(jù)時自動按行鍵(rowkey)將表分成很多塊進(jìn)行存儲,每一塊稱為一個HRegion。HRegionServer負(fù)責(zé)管理本服務(wù)器上的HRegions、處理對HRegion的I/O請求。HRegion是HBase表數(shù)據(jù)存儲分配的最小單位,會自動進(jìn)行拆分與合并。集群的管理者HMaster失效短時間內(nèi)HBase集群仍可繼續(xù)工作最多可配置10個HMasterClient端有訪問HBase的接口,并通過緩存來加快對HBase的訪問。元數(shù)據(jù)所有的HRegionID及其映射信息組成了HRegions元數(shù)據(jù)。用戶表的HRegions元數(shù)據(jù)被存儲在.META.表中。第三章Hadoop數(shù)據(jù)庫HBase3.1HBase簡介HRegion定位示意圖第三章Hadoop數(shù)據(jù)庫HBase3.1HBase簡介ZooKeeper-ROOT-HRegion.META.HRegionHRegionHRegion……用戶表HRegionHRegionHRegion……用戶表HRegionHRegionHRegion……3.1HBase簡介第三章Hadoop數(shù)據(jù)庫HBase2.?dāng)?shù)據(jù)模型1)基本術(shù)語表(Table):HBase中的表由若干行組成。行(Row):HBase中表的一行由一個行鍵和若干個列名到值的映射組成。列(Column):HBase中的每一列都屬于某一列族,列名稱由<列族名>:<列修飾符>組成。列族(ColumnFamily):HBase表在存儲上是按列族存儲的,將一張表同一列族下的所有列及其值存儲在一起以便達(dá)到更好的性能。列修飾符(ColumnQualifier):列修飾符加在列族名的后面用于表示某一列。單元(Cell):HBase中通過行鍵、列族、列修飾符的組合定位到一個單元,每個單元保存著多個版本的數(shù)據(jù),即多個帶有時間戳的值,時間戳代表了值的版本。時間戳(Timestamp):HBase中保存的每個值都帶有一個時間戳,以時間戳作為值的版本標(biāo)識。3.1HBase簡介第三章Hadoop數(shù)據(jù)庫HBase2)概念視圖示例行鍵時間戳列族basicinfo列族performance列族packageC000001t9basicinfo:position="Tenicalmanager"performance:y2016="A"package:salary="15000"package:bonus="20000"t6
performance:y2015="B"package:salary="13000"package:bonus="10000"t3basicinfo:name="張三"basicinfo:gender="男"basicinfo:birthyear="1978"basicinfo:position="Seniorengineer"
package:salary="12000"C000002t7
performance:y2016="C"
t4basicinfo:name="李四"basicinfo:gender="男"basicinfo:birthyear="1986"basicinfo:position="Engineer"
package:salary="8000"3.1HBase簡介第三章Hadoop數(shù)據(jù)庫HBase3)物理視圖示例行鍵時間戳列族basicinfoC000001t9basicinfo:position="Tenicalmanager"t3basicinfo:name="張三"basicinfo:gender="男"basicinfo:birthyear="1978"basicinfo:position="Seniorengineer"C000002t4basicinfo:name="李四"basicinfo:gender="男"basicinfo:birthyear="1986"basicinfo:position="Engineer"行鍵時間戳列族performanceC000001t9performance:y2016="A"t6performance:y2015="B"C000002t7performance:y2016="C"行鍵時間戳列族packageC000001t9package:salary="15000"package:bonus="20000"t6package:salary="13000"package:bonus="10000"t3package:salary="12000"C000002t4package:salary="8000"3.1HBase簡介第三章Hadoop數(shù)據(jù)庫HBase3.主要特性可伸縮性強(qiáng)讀寫一致性自動分片HRegionServer自動故障切換Hadoop/HDFS集成MapReduce集成提供Java客戶端API提供Thrift/RESTAPI塊緩存和布隆過濾(BloomFilters)提供內(nèi)置的Web操作管理頁面第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全3.2HBase部署HBase集群對安裝和運行環(huán)境的基本要求如下:安裝JDK建立ssh免費訪問提供DNS服務(wù)器安裝NTP服務(wù)ulimit配置支持GNUBashShell安裝Hadoop安裝ZooKeeper第三章Hadoop數(shù)據(jù)庫HBase1.準(zhǔn)備工作3.2HBase部署單節(jié)點部署步驟如下:選定安裝目錄,解壓HBase安裝包;在HBase配置文件conf/hbase-env.sh中配置JAVA_HOME;在HBase配置文件conf/hbase-site.xml中配置HBase和ZooKeeper用于寫數(shù)據(jù)的目錄;至此HBase單節(jié)點部署完畢,可執(zhí)行腳本bin/start-hbase.sh啟動HBase。第三章Hadoop數(shù)據(jù)庫HBase2.單節(jié)點部署3.2HBase部署可以訪問網(wǎng)址http://<host>:16010來查看HBase狀態(tài):第三章Hadoop數(shù)據(jù)庫HBase3.2HBase部署將HBase單節(jié)點部署改為偽分布式部署并改用HDFS存儲數(shù)據(jù)的步驟如下:停止HBase;配置文件conf/hbase-site.xml中增加hbase.cluster.distributed配置項并修改hbase.rootdir的配置值為HDFS目錄;啟動HBase;檢查HBase目錄;啟動和停止備用HMaster;啟動和停止更多HRegionServers。第三章Hadoop數(shù)據(jù)庫HBase3.偽分布式部署3.2HBase部署HBase集群部署架構(gòu)示例:第三章Hadoop數(shù)據(jù)庫HBase4.集群部署節(jié)點類型機(jī)器名稱HMasterHRegionServerZooKeepermaster主否是slave1備用是否slave2否是是slave3否是是3.2HBase部署HBase集群部署的步驟如下:建立ssh免密碼訪問;部署master;安裝HBase;配置HRegionServer;配置備用HMaster;配置ZooKeeper。部署slave1、slave2、slave3;啟動、測試HBase集群。在每個節(jié)點上執(zhí)行jps命令確保都沒有啟動HBase進(jìn)程;在master上執(zhí)行bin/start-hbase.sh腳本來啟動集群;檢查每個節(jié)點上的進(jìn)程是否啟動;檢查Web界面;模擬故障測試。第三章Hadoop數(shù)據(jù)庫HBase3.2HBase部署版本號的格式為:主版本號.小版本號.補(bǔ)丁版本號,其含義如下:第三章Hadoop數(shù)據(jù)庫HBase5.版本升級主版本號:當(dāng)包含了不兼容的API修改時需增加主版本號。小版本號:當(dāng)添加了向后兼容的功能時增加小版本號。補(bǔ)丁版本號:當(dāng)包含了向后兼容的錯誤修正時增加補(bǔ)丁版本號。為預(yù)發(fā)布或開發(fā)管理等目的,還可以在補(bǔ)丁版本號后面增加更多層級編號。啟動HBase;HBase的版本升級有三種情況:主版本升級、小版本升級、補(bǔ)丁版本升級:補(bǔ)丁版本升級對應(yīng)用程序無影響,可以安全升級。小版本升級不需要應(yīng)用程序和客戶端改動程序代碼,但可能需要對代碼用新的.jar文件進(jìn)行重新編譯。主版本升級不能保證API兼容性,應(yīng)謹(jǐn)慎進(jìn)行。3.2HBase部署從HBase1.1.2升級到HBase1.2.4滾動升級的步驟如下:第三章Hadoop數(shù)據(jù)庫HBase下載解壓HBase1.2.4安裝包,在每臺服務(wù)器上解壓到新的目錄;修改/usr/local/hbase-1.2.4/conf下的配置文件,將1.1.2版本的配置文件中的內(nèi)容復(fù)制到1.2.4版本的配置文件中;在/usr/local/hbase-1.2.4/bin下執(zhí)行滾動重啟腳本rolling-restart.sh,格式如下:[root@masterhbase-1.2.4]#HBASE_HOME=/usr/local/hbase-1.2.4./rolling-restart.sh--config/usr/local/hbase-1.2.4/conf升級完成,可刪除原來1.1.2版本安裝目錄下的文件。第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全3.3HBase配置hbase-site.xml:HBase最主要的配置文件。hbase-env.sh:設(shè)置HBase運行所需的工作環(huán)境。backup-masters:列出哪些服務(wù)器應(yīng)啟動備用HMaster進(jìn)程。regionservers:列出了哪些服務(wù)器啟動HRegionServer進(jìn)程。hbase-policy.xml:PRC服務(wù)器對客戶端請求進(jìn)行權(quán)限驗證時使用的策略配置文件,僅當(dāng)啟用HBase安全管理時才使用。perties:HBase所使用的日志模塊log4j的配置文件。perties:該配置文件將HBase集群與Hadoop的Metrics2框架相關(guān)聯(lián),可用于實時收集HBase集群的各類監(jiān)控信息。第三章Hadoop數(shù)據(jù)庫HBase1.配置文件上述7個HBase配置文件的路徑和內(nèi)容在每個節(jié)點上都必須一致。3.3HBase配置hbase.cluster.distributed:是否為分布式運行模式,默認(rèn)值為false。hbase.tmp.dir:HBase節(jié)點在本地文件系統(tǒng)中的臨時目錄,默認(rèn)值為${java.io.tmpdir}/hbase-${}。hbase.rootdir:HBase所保存文件的根目錄,默認(rèn)值為${hbase.tmp.dir}/hbase。hbase.fs.tmp.dir:HBase集群在HDFS文件系統(tǒng)中保存臨時數(shù)據(jù)的中轉(zhuǎn)目錄,默認(rèn)值為/user/${}/hbase-staging。hbase.local.dir:HBase節(jié)點在本地文件系統(tǒng)中用于本地存儲的目錄,默認(rèn)值為${hbase.tmp.dir}/local。hbase.zookeeper.quorum:哪些服務(wù)器上運行ZooKeeper進(jìn)程,默認(rèn)值為localhost。第三章Hadoop數(shù)據(jù)庫HBase2.主要配置項3.3HBase配置perty.dataDir:ZooKeeper用于保存數(shù)據(jù)的目錄,默認(rèn)值為${hbase.tmp.dir}/zookeeper。perty.maxClientCnxns:每個ZooKeeper服務(wù)器允許接受的客戶端并發(fā)連接數(shù)量,默認(rèn)值為300。zookeeper.session.timeout:ZooKeeper會話的超時時間,單位是毫秒,默認(rèn)值是90000。hbase.master.port:HMaster進(jìn)程綁定的端口號,默認(rèn)值為16000。.port:HBaseMaster的Web頁面的端口號,默認(rèn)值為16010。hbase.master.wait.on.regionservers.mintostart:HBase集群啟動時HMaster在有多少個HRegionServer啟動后開始分配任務(wù),默認(rèn)值為1。hbase.regionserver.port:HRegionServer進(jìn)程綁定的端口號,默認(rèn)值為16020。第三章Hadoop數(shù)據(jù)庫HBase3.3HBase配置.port:HRegionServer的Web頁面的端口號,默認(rèn)值為16030。hbase.regionserver.handler.count:每臺HRegionServer和HMaster上用于偵聽響應(yīng)客戶端請求的線程數(shù)量,默認(rèn)值為30。hbase.ipc.server.callqueue.handler.factor:每臺HRegionServer和HMaster上對應(yīng)于處理線程數(shù)的調(diào)用等待隊列數(shù)量因子,范圍在0到1之間,默認(rèn)值為0.1,表示每10個處理線程共享一個調(diào)用等待隊列。hbase.hregion.max.filesize:一個HRegion中所有Hfile文件合計大小上限,默認(rèn)值為10737418240,即10G。hbase.hregion.majorcompaction:HRegion數(shù)據(jù)自動進(jìn)行周期性主壓縮的間隔時間,單位是毫秒,默認(rèn)值為604800000,即7天。hbase.hregion.majorcompaction.jitter:隨機(jī)執(zhí)行周期性主壓縮操作的前后時間范圍,默認(rèn)值為0.5。第三章Hadoop數(shù)據(jù)庫HBase3.3HBase配置hbase.hregion.memstore.flush.size:Store中的MemStore達(dá)到多大時會存入磁盤生成StoreFile,默認(rèn)值為134217728,即128M。hbase.regionserver.global.memstore.size:HRegionServer中所有MemStore合計大小的上限,按照堆內(nèi)存的百分比計算,默認(rèn)值為0.4,即上限為堆內(nèi)存的40%。hfile.block.cache.size:最多使用堆內(nèi)存的百分之多少作為StoreFile的塊緩存,默認(rèn)值為0.4,即上限為堆內(nèi)存的40%。hbase.balancer.period:HMaster運行HRegion均衡器的周期,單位是毫秒,默認(rèn)值為300000。hbase.client.write.buffer:HBase服務(wù)器端和客戶端寫入數(shù)據(jù)庫緩沖區(qū)的大小,默認(rèn)值為2097152,即2M。hbase.security.authentication:是否啟用HBase客戶端安全認(rèn)證,默認(rèn)值為simple,表示不進(jìn)行安全認(rèn)證。第三章Hadoop數(shù)據(jù)庫HBase3.3HBase配置hbase.cluster.distributedhbase.tmp.dirhbase.rootdirhbase.zookeeper.quorum第三章Hadoop數(shù)據(jù)庫HBase3.配置建議必須配置以下參數(shù):1)hbase-site.xmlperty.dataDirhbase.master.wait.on.regionservers.mintostarthbase.regionserver.handler.counthbase.hregion.majorcompactionhbase.hregion.majorcompaction.jitterhbase.regionserver.global.memstore.sizehfile.block.cache.sizehbase.client.write.buffer建議配置以下參數(shù):3.3HBase配置第三章Hadoop數(shù)據(jù)庫HBase示例如下:2)hbase-env.sh#Thejavaimplementationtouse.Java1.7+required.exportJAVA_HOME=/etc/alternatives/jre_1.7.0_openjdk
#Themaximumamountofheaptouse.DefaultislefttoJVMdefault.exportHBASE_HEAPSIZE=8G
#TellHBasewhetheritshouldmanageit'sowninstanceofZookeeperornot.exportHBASE_MANAGES_ZK=false3.3HBase配置第三章Hadoop數(shù)據(jù)庫HBase4.客戶端配置hbase.zookeeper.quorum配置值中不能包含空格。<?xmlversion="1.0"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration><property><name>hbase.zookeeper.quorum</name><value>master,slave2,slave3</value></property></configuration>在客戶端解壓HBase安裝包并將解壓后的lib/子目錄和conf/子目錄加入到客戶端的CLASSPATH環(huán)境變量中;客戶端的配置比較簡單,只需要在conf/hbase-site.xml配置文件中設(shè)置好參數(shù)hbase.zookeeper.quorum即可,示例如下:第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全3.4HBase
Shell在HBase安裝目錄的bin子目錄下執(zhí)行hbaseshell命令即可進(jìn)入HBaseShell交互模式進(jìn)行數(shù)據(jù)庫操作。在HBaseShell提示符下執(zhí)行help命令可列出所有命令列表。執(zhí)行help'<command>'可顯示針對某條命令的幫助信息,注意<command>前后要加單引號或雙引號。第三章Hadoop數(shù)據(jù)庫HBase1.交互模式3.4HBase
Shellcreate:創(chuàng)建一張新表。list:列出名稱匹配的表。exists:查看某張表是否存在。describe:顯示某張表的定義,也可以使用簡寫命令desc。disable:停用某張表。表被停用后則無法再對其進(jìn)行增刪改和查詢等操作,在對表執(zhí)行alter命令或drop命令之前必須先執(zhí)行disable命令停用。enable:啟用某張被disable命令停用的表。表被啟用后即可恢復(fù)正常操作。alter:可在某張表中增加、修改、刪除列族或者更改表的屬性定義.drop:刪除某張表。在刪除前必須先執(zhí)行disable命令停用該表。第三章Hadoop數(shù)據(jù)庫HBase1)DDL命令3.4HBase
Shellput:向某張表里的指定單元插入數(shù)據(jù)。通過行鍵和列名來指定一個單元。scan:查詢某張表中滿足條件的數(shù)據(jù)??梢栽谛小⒘?、時間戳等多個維度上設(shè)定查詢條件。get:獲取表中給定行符合條件的數(shù)據(jù)。count:查詢某張表中的行數(shù),默認(rèn)時每1000行計一次數(shù)。delete:刪除某張表中指定單元的數(shù)據(jù),通過表名、行鍵和列名指定一個單元,還可以加上時間戳。第三章Hadoop數(shù)據(jù)庫HBase2)DML命令
命名空間是對表的邏輯分組,HBase可以針對命名空間分配資源限額、指定HRegionServer子集、進(jìn)行安全管理等。HBase有以下兩個默認(rèn)的命名空間:hbase:系統(tǒng)命名空間,用于保存HBase的內(nèi)部表。default:HBase的默認(rèn)命名空間,如果一張表沒有指定命名空間時,則自動屬于default命名空間。3.4HBase
Shell第三章Hadoop數(shù)據(jù)庫HBase3)命名空間類命令create_namespace:創(chuàng)建一個命名空間。alter_namespace:修改某個命名空間的定義。describe_namespace:顯示命名空間的定義。list_namespace:不加選項時列出所有的命名空間,也可以加上帶有通配符的正則表達(dá)式選項。list_namespace_tables:列出某個命名空間中的所有表。drop_namespace:刪除某個命名空間。3.4HBase
Shell第三章Hadoop數(shù)據(jù)庫HBase4)其他命令配置類命令:對HBase集群參數(shù)配置值進(jìn)行動態(tài)更新。大多數(shù)配置更改后必須重新啟動HBase集群才能生效,與HRegion壓縮、拆分相關(guān)的參數(shù)可以動態(tài)更改,更改后在HBaseShell中執(zhí)行update_all_config命令即可生效。安全類命令:將在3.6中介紹。通過help命令可以查看每個命令的作用和使用方法。3.4HBase
ShellHBaseShell還可以以非交互方式運行,加上-n或者--noninteractive選項即可進(jìn)入非交互模式,所執(zhí)行命令可以通過輸入重定向獲取,例如:[root@clientbin]#echo"list_namespace_tables'default'"|./hbaseshell-nHBase命令也可以直接以腳本文件作為其命令行參數(shù)來執(zhí)行,例如:[root@clientbin]#./hbaseshellsample_cmd.txt第三章Hadoop數(shù)據(jù)庫HBase2.非交互模式第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全3.5HBase模式設(shè)計讀訪問模式:通過行鍵索引提升查詢效率。HBase中唯一可用的索引只有行鍵索引,需要對行鍵精心設(shè)計來盡可能地優(yōu)化數(shù)據(jù)查詢。某項數(shù)據(jù)放在行鍵中會得到更好的查詢性能,但是行鍵的長度變長,行鍵索引會占用更多的內(nèi)存資源,由于行鍵在每個列族中保存,也會需要更多的磁盤空間。第三章Hadoop數(shù)據(jù)庫HBase1.設(shè)計準(zhǔn)則1)行鍵設(shè)計3.5HBase模式設(shè)計寫訪問模式:避免同一時間段里寫入的數(shù)據(jù)形成熱點。隨機(jī)前綴:在原先彼此相鄰的行鍵前面加上一個隨機(jī)生成的前綴。哈希前綴:針對隨機(jī)前綴生成的行鍵具有不確定性的缺陷,哈希前綴做了改進(jìn),通過對原行鍵調(diào)用選定的哈希函數(shù)生成前綴。反轉(zhuǎn)鍵:將原先彼此相鄰的行鍵按字節(jié)序反轉(zhuǎn)生成新的行鍵。以上幾種策略都會失去數(shù)據(jù)按特定行鍵順序存放的特性,在進(jìn)行范圍查詢時需要訪問全部索引數(shù)據(jù)且需要有更多的磁盤IO操作,對性能影響很大。最理想的行鍵設(shè)計方法是既能讓有關(guān)聯(lián)的數(shù)據(jù)集中在一起存放,又能達(dá)到寫負(fù)載均衡的目的。第三章Hadoop數(shù)據(jù)庫HBase3.5HBase模式設(shè)計行鍵長度:平衡查詢性能和內(nèi)存占用,常用的行鍵設(shè)計策略有:優(yōu)先考慮節(jié)省系統(tǒng)資源:設(shè)計有意義但盡可能短的行鍵。優(yōu)先考慮查詢性能:在資源允許的情況下盡可能實現(xiàn)查詢優(yōu)化。兼顧資源使用和查詢性能:行鍵的設(shè)計僅考慮經(jīng)常執(zhí)行的關(guān)鍵查詢優(yōu)化。如果將行鍵設(shè)計為二進(jìn)制字節(jié)型數(shù)據(jù)類型可以在不犧牲行鍵內(nèi)容的情況下明顯縮短行鍵長度,但缺點是行鍵的可讀性變得很差。第三章Hadoop數(shù)據(jù)庫HBase3.5HBase模式設(shè)計每張表的列族數(shù)能少則少,盡量不超過三個。將有相同訪問模式的所有數(shù)據(jù)存儲在同一列族,不同訪問模式的數(shù)據(jù)存儲在不同列族,并在列族屬性中定義好訪問模式。如果某些列數(shù)據(jù)經(jīng)常被一起訪問而不需要訪問其他列的數(shù)據(jù),可考慮將這些列劃分為一個列族。列族和列的名字應(yīng)盡量短,建議列族名用一個字母表示,列修飾符用少數(shù)幾個字母表示。為了提高讀性能,可進(jìn)行反規(guī)范化設(shè)計,即在多張表中儲存冗余數(shù)據(jù)。冗余設(shè)計會對寫性能有影響,也會加大應(yīng)用程序的復(fù)雜度。HBase不支持跨行事務(wù),所以在列族設(shè)計時要避免一個事務(wù)涉及多行數(shù)據(jù)。第三章Hadoop數(shù)據(jù)庫HBase2)列族劃分3.5HBase模式設(shè)計每個單元的大小最好不超過100K,如果超過100K應(yīng)考慮使用MOB(Medium-sizedObjects)文件存儲,如果超過50M則應(yīng)考慮將數(shù)據(jù)保存在HDFS文件中,在HBase中僅保存文件的訪問路徑。每個HRegion的大小最好在10G到50G之間。每張表的HRegion數(shù)量不超過100個為宜。在創(chuàng)建表的時候預(yù)估數(shù)據(jù)量,據(jù)此預(yù)分配足夠數(shù)量的HRegion,從而避免或減少日后對HRegion的拆分。對于不需要長期保存的數(shù)據(jù),設(shè)置合理的數(shù)據(jù)過期時間。版本數(shù)量盡可能設(shè)置得小一些或使用默認(rèn)值1。如果表中儲存的是基于時間的設(shè)備數(shù)據(jù)或日志信息,可將行鍵設(shè)計為設(shè)備ID/服務(wù)ID加上時間。第三章Hadoop數(shù)據(jù)庫HBase3)數(shù)據(jù)量估算和控制3.5HBase模式設(shè)計內(nèi)存需求。集群中所有MemStore合計所需的最大內(nèi)存通過下列公式估算:MemStore大小*HRegion數(shù)量*每個HRegion中平均列族數(shù)內(nèi)存供給。集群參數(shù)hbase.regionserver.global.memstore.size配置了每個HRegionServer允許的所有MemStore合計大小上限,該配置值乘以HRegionServer數(shù)量即為整個集群的內(nèi)存供給。如果因為HRegion數(shù)量過大造成MemStore內(nèi)存需求遠(yuǎn)大于實際內(nèi)存供給,則會導(dǎo)致系統(tǒng)頻繁地進(jìn)行MemStore存盤操作而影響性能。第三章Hadoop數(shù)據(jù)庫HBase4)內(nèi)存需求估算和配置3.5HBase模式設(shè)計BLOOMFILTER:定義布隆過濾器類型,默認(rèn)為ROW。NONE:表示不使用布隆過濾。ROW:表示使用基于行的布隆過濾。ROWCOL:表示使用基于行和列的布隆過濾。COMPRESSION:是否以壓縮方式在磁盤上存儲列族數(shù)據(jù)及壓縮編碼格式,默認(rèn)值為NONE。NONE:表示不壓縮。GZ:表示采用GZ壓縮算法。LZ4:表示采用LZ4壓縮算法,該算法在Hadoop庫中提供。LZO:表示采用LZO壓縮算法,該算法庫需由用戶自行安裝。SNAPPY:表示采用SNAPPY壓縮算法,該算法庫需由用戶自行安裝。第三章Hadoop數(shù)據(jù)庫HBase2.列族屬性3.5HBase模式設(shè)計DATA_BLOCK_ENCODING:定義數(shù)據(jù)塊編碼格式,默認(rèn)值為NONE。NONE:表示不使用壓縮編碼格式。PREFIX:表示使用前綴編碼格式。DIFF:表示使用差異編碼格式。FAST_DIFF:表示使用快速差異編碼格式。PREFIX_TREE:表示采用前綴樹編碼格式。VERSIONS:定義列族單元保存的數(shù)據(jù)版本數(shù)量,默認(rèn)值為1。MIN_VERSIONS:定義列族存儲的最少版本數(shù),默認(rèn)值為0。TTL:定義數(shù)據(jù)的生存時間,以秒為單位,默認(rèn)值為FOREVER,表示永遠(yuǎn)不過期。第三章Hadoop數(shù)據(jù)庫HBase3.5HBase模式設(shè)計KEEP_DELETED_CELLS:定義在主壓縮時是否清除帶有刪除標(biāo)志的數(shù)據(jù)以及在查詢時是否返回帶有刪除標(biāo)志的數(shù)據(jù),默認(rèn)值為false。BLOCKSIZE:定義HFile數(shù)據(jù)塊的大小,默認(rèn)值為64K。BLOCKCACHE:定義是否在內(nèi)存中緩存數(shù)據(jù)塊,默認(rèn)值為true。IN_MEMORY:定義列族是否優(yōu)先放入塊緩存中,默認(rèn)值為false。REPLICATION_SCOPE:定義列族是否在其他HBase集群中復(fù)制以及復(fù)制份數(shù),默認(rèn)值為0,表示不在其他集群中復(fù)制。第三章Hadoop數(shù)據(jù)庫HBase3.5HBase模式設(shè)計SPLITS、SPLITS_FILE、NUMREGIONS、SPLITALGO:對表進(jìn)行預(yù)拆分,有如下預(yù)拆分方法:提供拆分點數(shù)組,對應(yīng)的表屬性為SPLITS。將拆分點保存在文本文件中,對應(yīng)的表屬性為SPLITS_FILE。通過給出HRegion數(shù)量和拆分算法來自動計算出拆分點,對應(yīng)的表屬性分別是NUMREGIONS和SPLITALGO。READONLY:定義只讀表。第三章Hadoop數(shù)據(jù)庫HBase3.表屬性3.5HBase模式設(shè)計DURABILITY:定義WAL日志的持久化策略,默認(rèn)值為USE_DEFAULT。SYNC_WAL:表示采用同步方式寫WAL日志。ASYNC_WAL:表示采用異步方式寫WAL日志。FSYNC_WAL:表示采用同步方式寫WAL日志,并且強(qiáng)制將WAL刷新到磁盤上。SKIP_WAL:表示不寫入WAL日志。USE_DEFAULT:表示使用HBase的全局默認(rèn)值SYNC_WAL。MAX_FILESIZE:定義該表的每個HRegion中所有HFile合計大小上限,默認(rèn)值為集群配置項hbase.hregion.max.filesize的配置值。MEMSTORE_FLUSHSIZE:定義表的MemStore大小上限,默認(rèn)值為集群配置項hbase.hregion.memstore.flush.size的配置值。第三章Hadoop數(shù)據(jù)庫HBase3.5HBase模式設(shè)計統(tǒng)計每類商品或每款商品的銷售情況。查詢每類商品或每款商品的購買客戶列表,以便對購買人群進(jìn)行特征分析。查詢某個客戶購買的商品列表,以便分析其個人喜好。第三章Hadoop數(shù)據(jù)庫HBase4.設(shè)計實例電商平臺應(yīng)用需要解決的問題有以下幾類:3.5HBase模式設(shè)計customer:客戶表,只有一個列族c,GZ方式壓縮存儲,PREFIX編碼格式。goods:商品表,只有一個列族g,GZ方式壓縮存儲,PREFIX編碼格式,IN_MEMROY屬性為true,VERSIONS屬性為10。預(yù)拆分成10個HRegion。order:訂單表,有兩個列族o和c,其中列族o保存訂單信息,列族c保存對購買人群進(jìn)行特征分析所需的客戶信息。訂單表采取了和商品表同樣的拆分方法預(yù)拆分為10個HRegion。customer_order:客戶購買記錄表,以客戶ID+商品ID+訂單時間戳為行鍵,專門供分析個體客戶的個人喜好使用,只有一個列族g保存分析客戶喜好所需的那部分信息。第三章Hadoop數(shù)據(jù)庫HBase根據(jù)應(yīng)用需求設(shè)計出以下四張表:第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全3.6HBase安全在每臺服務(wù)器的hbase-site.xml配置文件中設(shè)置hbase.security.authentication、hbase.security.authorization、hbase.coprocessor.region.classes等屬性來要求客戶端必須通過Kerberos認(rèn)證才能訪問HBase。配置修改之后必須關(guān)閉整個HBase集群再重新啟動才能生效。客戶端也需要在hbase-site.xml中將hbase.security.authentication設(shè)置為kerberos才能訪問集群,如果客戶端和服務(wù)器端該參數(shù)配置不一致,它們之間將無法進(jìn)行通信。第三章Hadoop數(shù)據(jù)庫HBase1.安全訪問配置1)客戶端安全訪問3.6HBase安全客戶端簡單訪問控制并不能阻止黑客攻擊,只是一種很方便的通過設(shè)置用戶權(quán)限來進(jìn)行訪問控制的方法,可防止誤操作。在每臺服務(wù)器的hbase-site.xml配置文件中設(shè)置hbase.security.authentication為simple,以及hbase.security.authorization、hbase.coprocessor.master.classes、hbase.coprocessor.region.classes、hbase.coprocessor.regionserver.classes等參數(shù)。配置修改之后關(guān)閉整個HBase集群再重新啟動讓其生效??蛻舳薶base-site.xml中也將hbase.security.authentication設(shè)置為simple。第三章Hadoop數(shù)據(jù)庫HBase2)客戶端簡單訪問控制3.6HBase安全客戶端簡單訪問控制并不能阻止黑客攻擊,只是一種很方便的通過設(shè)置用戶權(quán)限來進(jìn)行訪問控制的方法,可防止誤操作。在每臺服務(wù)器的hbase-site.xml配置文件中設(shè)置hbase.security.authentication為simple,以及hbase.security.authorization、hbase.coprocessor.master.classes、hbase.coprocessor.region.classes、hbase.coprocessor.regionserver.classes等參數(shù)。配置修改之后關(guān)閉整個HBase集群再重新啟動讓其生效??蛻舳薶base-site.xml中也將hbase.security.authentication設(shè)置為simple。第三章Hadoop數(shù)據(jù)庫HBase2)客戶端簡單訪問控制3.6HBase安全第三章Hadoop數(shù)據(jù)庫HBase2.?dāng)?shù)據(jù)訪問權(quán)限控制Read(R):讀權(quán)限,可以讀取指定范圍內(nèi)的數(shù)據(jù)。Write(W):寫權(quán)限,可以在指定范圍內(nèi)寫數(shù)據(jù)。Execute(X):執(zhí)行權(quán)限,可以在指定范圍內(nèi)執(zhí)行HBase協(xié)處理器終端程序。Create(C):創(chuàng)建權(quán)限,可以在指定范圍內(nèi)創(chuàng)建、刪除表。Admin(A):管理權(quán)限,可以在指定范圍內(nèi)執(zhí)行分配HRegion、平衡負(fù)載等集群操作。HBase中的數(shù)據(jù)訪問權(quán)限分為以下5種彼此獨立的級別:3.6HBase安全第三章Hadoop數(shù)據(jù)庫HBase2.?dāng)?shù)據(jù)訪問權(quán)限控制Read(R):讀權(quán)限,可以讀取指定范圍內(nèi)的數(shù)據(jù)。Write(W):寫權(quán)限,可以在指定范圍內(nèi)寫數(shù)據(jù)。Execute(X):執(zhí)行權(quán)限,可以在指定范圍內(nèi)執(zhí)行HBase協(xié)處理器終端程序。Create(C):創(chuàng)建權(quán)限,可以在指定范圍內(nèi)創(chuàng)建、刪除表。Admin(A):管理權(quán)限,可以在指定范圍內(nèi)執(zhí)行分配HRegion、平衡負(fù)載等集群操作。HBase中的數(shù)據(jù)訪問權(quán)限分為以下5種彼此獨立的級別:3.6HBase安全第三章Hadoop數(shù)據(jù)庫HBase超級用戶:可以對任意對象執(zhí)行所有操作。全局:允許在集群的所有表上執(zhí)行操作。
命名空間:允許在指定命名空間的所有表上執(zhí)行操作。表:允許在指定表的數(shù)據(jù)或元數(shù)據(jù)上執(zhí)行操作。
列族:允許在指定列族的單元上執(zhí)行操作。列:允許在指定列的單元上執(zhí)行操作。權(quán)限的作用范圍包含如下幾種:各種權(quán)限級別和作用范圍組合在一起可以實現(xiàn)非常細(xì)粒度的權(quán)限控制。3.6HBase安全第三章Hadoop數(shù)據(jù)庫HBase在HBaseShell中可以通過grant命令來進(jìn)行授權(quán),其語法格式如下:grant<user>,<permissions>[,<@namespace>|<table>[,<columnfamily>[,<columnqualifier>]]]權(quán)限回收命令revoke格式和grant命令類似,只是少了第二個表示權(quán)限級別的參數(shù),含義是回收該用戶在指定范圍內(nèi)的所有權(quán)限。注意revoke命令的作用范圍參數(shù)必須和grant命令一致才能成功回收權(quán)限,否則不論給出的作用范圍是更大還是更小都不會回收權(quán)限。
第三章Hadoop數(shù)據(jù)庫HBase3.1
HBase簡介3.2
HBase部署3.3
HBase配置3.4
HBaseShell習(xí)題3.5
HBase模式設(shè)計3.6
HBase安全HBase集群中HMaster、HRegionServer和ZooKeeper的主要作用分別是什么?HBase有哪幾種部署方式?它們的主要區(qū)別是什么?HBase集群有哪些配置文件?它們的主要作用分別是什么?HBaseShell有哪些DDL命令和DML命令?請分別對它們作簡要描述。你認(rèn)為應(yīng)如何進(jìn)行HBase的行鍵設(shè)計?對HBase表劃分列族時應(yīng)遵循哪些原則?HBase表有哪些列族屬性和表屬性?請分別進(jìn)行簡要描述。HBase中數(shù)據(jù)訪問有哪幾種權(quán)限級別?它們的作用范圍有哪些?習(xí)題:第4章數(shù)據(jù)倉庫工具Hive4.1Hive部署4.2Hive部署4.3Hive配置4.4Hive接口4.5HiveSQL4.6Hive操作實例實驗3Hive實驗習(xí)題4.1Hive簡介Hive本質(zhì)上是一個SQL解析引擎,它將SQL語句轉(zhuǎn)譯成MapReduce作業(yè)并在Hadoop上執(zhí)行。Hive執(zhí)行過程如下,其工作原理如圖。1.工作原理(1)用戶通過用戶接口連接Hive,發(fā)布HiveQL。(2)Hive解析查詢并制定查詢計劃。(3)Hive將查詢轉(zhuǎn)換成MapReduce作業(yè)。(4)Hive在Hadoop上執(zhí)行MapReduce作業(yè)。第四章數(shù)據(jù)倉庫工具HIve4.1Hive簡介Hive的體系架構(gòu)如圖所示,按功能主要分5大模塊:用戶接口、Thrift服務(wù)器、解析器、MetaStore元數(shù)據(jù)和Hadoop集群。2.體現(xiàn)架構(gòu)第四章數(shù)據(jù)倉庫工具HIve4.1Hive簡介Hive包含以下四種數(shù)據(jù)模型:內(nèi)部表(ManagedTable)、外部表(ExternalTable)、分區(qū)(Partition)和桶(Bucket)。Hive中的數(shù)據(jù)存儲如下圖所示。3.?dāng)?shù)據(jù)模型數(shù)據(jù)庫(database)表(table)表(table)常規(guī)數(shù)據(jù)(data)分區(qū)(Partition)分區(qū)(Partition)(Buckets)桶(Buckets)桶(Buckets)桶(Buckets)桶第四章數(shù)據(jù)倉庫工具HIve4.1Hive簡介3.?dāng)?shù)據(jù)模型(1)內(nèi)部表(ManagedTable)。每個Hive內(nèi)部表在HDFS中都有對應(yīng)目錄用來存儲表的數(shù)據(jù)。內(nèi)部表的創(chuàng)建過程和數(shù)據(jù)加載過程可以分別獨立完成,也可以在同一個語句中完成。刪除內(nèi)部表時,表中的數(shù)據(jù)和元數(shù)據(jù)會被同時刪除。(2)Hive外部表(ExternalTable)Hive外部表和內(nèi)部表在元數(shù)據(jù)組織上是一樣的,但在實際數(shù)據(jù)存儲上有較大差異。外部表數(shù)據(jù)不存儲在自己表所屬目錄中,存儲在LOCATION指定的HDFS路徑中。外部表僅有一個過程,創(chuàng)建表和數(shù)據(jù)加載過程同時進(jìn)行和完成。刪除外部表僅僅是刪除外部表對應(yīng)的元數(shù)據(jù),外部表所指向的數(shù)據(jù)不會被刪除。創(chuàng)建外部表使用EXTERNAL關(guān)鍵字。第四章數(shù)據(jù)倉庫工具HIve4.1Hive簡介3.?dāng)?shù)據(jù)模型(3)分區(qū)(Partition)分區(qū)是表的部分列的集合。一般為頻繁使用的數(shù)據(jù)建立分區(qū),在查找分區(qū)中數(shù)據(jù)時不用掃描全表,有利于提高查找效率。Hive每個表有一個相應(yīng)的目錄存儲數(shù)據(jù),表中的的每一個分區(qū)對應(yīng)表目錄下的一個子目錄,每個分區(qū)中的數(shù)據(jù)存儲在對應(yīng)子目錄下的文件中。例如,表member(假定包含分區(qū)字段gender)在HDFS的路徑為/user/hive/warehouse/member,分區(qū)gender=F對應(yīng)的HDFS路徑為/user/hive/warehouse/member/gender=F,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人住宅房產(chǎn)抵押擔(dān)保合同范本4篇
- 二零二五年度模特個人品牌授權(quán)管理合同4篇
- 2025年個人房產(chǎn)買賣售后服務(wù)保障合同3篇
- 2025年度個人藝術(shù)品抵押貸款展期服務(wù)合同3篇
- 2025年教室租賃及管理維護(hù)服務(wù)合同2篇
- 2025年度人工智能語音助手產(chǎn)品定制開發(fā)合同范本2篇
- 拆除瀝青路面施工方案
- 2025年度二手車買賣合同車輛交易市場準(zhǔn)入及退出協(xié)議范本4篇
- 2025年電商項目策劃與銷售代理合同3篇
- 二零二五年度美團(tuán)打車智能停車服務(wù)合作協(xié)議4篇
- 搖臂鉆床日常點檢表
- 經(jīng)濟(jì)開發(fā)區(qū)擴(kuò)區(qū)可行性研究報告
- 會計職業(yè)道德課件(完整版)
- 金屬探測器檢查記錄表
- 2022年五年級數(shù)學(xué)興趣小組活動記錄
- Q∕GDW 12127-2021 低壓開關(guān)柜技術(shù)規(guī)范
- 商品房預(yù)售合同登記備案表
- 版式設(shè)計發(fā)展歷程-ppt課件
- 通信機(jī)房蓄電池放電試驗報告
- 病原細(xì)菌的分離培養(yǎng)
- EDA課程設(shè)計報告書--八音電子琴
評論
0/150
提交評論