




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元1數(shù)據(jù)庫概述11.2分布式存儲(chǔ)系統(tǒng)目錄1.1數(shù)據(jù)庫系統(tǒng)21.3分布式數(shù)據(jù)庫
1.4分布式數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫差別341.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)數(shù)據(jù)庫技術(shù)是研究數(shù)據(jù)庫的結(jié)構(gòu)、存儲(chǔ)、設(shè)計(jì)、管理和使用的一門科學(xué)。數(shù)據(jù)庫系統(tǒng)(DatabaseSystem,DBS)是采用數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng),它是由計(jì)算機(jī)硬件、軟件和數(shù)據(jù)資源組成的系統(tǒng),能實(shí)現(xiàn)有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù),并方便多用戶訪問。數(shù)據(jù)庫系統(tǒng)由用戶、數(shù)據(jù)庫應(yīng)用程序、數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,DBMS)和數(shù)據(jù)庫(Database,DB)組成1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)數(shù)據(jù)庫是長期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、統(tǒng)一管理的、可以表現(xiàn)為多種形式的、可共享的數(shù)據(jù)集合。這里“共享”是指數(shù)據(jù)庫中的數(shù)據(jù),可為多個(gè)不同的用戶、使用多種不同的語言、出于不同的目的而同時(shí)存取,甚至同一數(shù)據(jù)也可以同時(shí)存?。弧凹稀笔侵改程囟☉?yīng)用環(huán)境中的各種應(yīng)用的數(shù)據(jù)及其之間的聯(lián)系全部集中按照一定的結(jié)構(gòu)形式進(jìn)行存儲(chǔ)。由此可知,數(shù)據(jù)庫中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度、較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,并可被各種用戶共享。數(shù)據(jù)庫根據(jù)不同的邏輯模型可分成3種:層次型數(shù)據(jù)庫、網(wǎng)狀型數(shù)據(jù)庫和關(guān)系型數(shù)據(jù)庫。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)(1)層次型數(shù)據(jù)庫早期的數(shù)據(jù)庫多采用層次型數(shù)據(jù)模型,稱為層次型數(shù)據(jù)庫,如圖1-2所示,它用樹形(層次)結(jié)構(gòu)表示實(shí)體類型及實(shí)體間的聯(lián)系。在樹形結(jié)構(gòu)中,數(shù)據(jù)按自然的層次關(guān)系組織起來,以反映數(shù)據(jù)之間的隸屬關(guān)系,樹中的節(jié)點(diǎn)是記錄類型,每個(gè)非根節(jié)點(diǎn)都只有一個(gè)父節(jié)點(diǎn),而父節(jié)點(diǎn)可同時(shí)擁有多個(gè)子節(jié)點(diǎn),父節(jié)點(diǎn)和子節(jié)點(diǎn)的聯(lián)系是1∶N的聯(lián)系。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)(2)網(wǎng)狀型數(shù)據(jù)庫。采用網(wǎng)狀型數(shù)據(jù)模型的數(shù)據(jù)庫,稱為網(wǎng)狀型數(shù)據(jù)庫。網(wǎng)狀型數(shù)據(jù)庫通過網(wǎng)絡(luò)結(jié)構(gòu)表示數(shù)據(jù)間聯(lián)系,如圖1-3所示。圖中的節(jié)點(diǎn)代表數(shù)據(jù)記錄,連線描述不同節(jié)點(diǎn)數(shù)據(jù)間的聯(lián)系。這種數(shù)據(jù)模型的基本特征:一是節(jié)點(diǎn)數(shù)據(jù)之間沒有明確的從屬關(guān)系,一個(gè)節(jié)點(diǎn)可與其他多個(gè)節(jié)點(diǎn)建立聯(lián)系,即節(jié)點(diǎn)之間的聯(lián)系是任意的;二是任何兩個(gè)節(jié)點(diǎn)之間都能發(fā)生聯(lián)系,可表示多對(duì)多的關(guān)系。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)(3)關(guān)系型數(shù)據(jù)庫。關(guān)系模型是通過滿足一定條件的二維表格來表示實(shí)體集合以及數(shù)據(jù)間聯(lián)系的一種模型。關(guān)系型數(shù)據(jù)模型具有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)與理論基礎(chǔ),使用靈活方便,適應(yīng)面廣,因此發(fā)展十分迅速。目前流行的一些數(shù)據(jù)庫系統(tǒng),如Oracle、Sybase、Ingress、MySQL等都屬于關(guān)系型數(shù)據(jù)庫。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫,是建立在關(guān)系型數(shù)據(jù)模型基礎(chǔ)上的數(shù)據(jù)庫,借助于集合代數(shù)等數(shù)學(xué)概念和方法來處理數(shù)據(jù)庫中的數(shù)據(jù)?,F(xiàn)實(shí)世界中的各種實(shí)體以及實(shí)體之間的各種聯(lián)系均可用關(guān)系模型來表示,市場(chǎng)上占很大份額的Oracle、MySQL、DB2等都是面向關(guān)系模型的DBMS。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)(3)關(guān)系型數(shù)據(jù)庫。關(guān)系模型是通過滿足一定條件的二維表格來表示實(shí)體集合以及數(shù)據(jù)間聯(lián)系的一種模型。關(guān)系型數(shù)據(jù)模型具有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)與理論基礎(chǔ),使用靈活方便,適應(yīng)面廣,因此發(fā)展十分迅速。目前流行的一些數(shù)據(jù)庫系統(tǒng),如Oracle、Sybase、Ingress、MySQL等都屬于關(guān)系型數(shù)據(jù)庫。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)關(guān)系型數(shù)據(jù)庫基本概念在關(guān)系型數(shù)據(jù)庫中,實(shí)體以及實(shí)體間的聯(lián)系均由單一的結(jié)構(gòu)類型來表示,這種邏輯結(jié)構(gòu)是一張二維表。關(guān)系型數(shù)據(jù)庫以行和列的形式存儲(chǔ)數(shù)據(jù),這一系列的行和列被稱為表,一組表組成了數(shù)據(jù)庫。1.1數(shù)據(jù)庫系統(tǒng)系統(tǒng)常見關(guān)系型數(shù)據(jù)庫MySQL數(shù)據(jù)庫瑞典MySQLAB公司研發(fā),流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,使用SQL語言,開放源碼,適用于中小型企業(yè)網(wǎng)站開發(fā)。SQLServer微軟出品,高性能數(shù)據(jù)庫系統(tǒng),支持分布式計(jì)算,與WindowsNT緊密結(jié)合,提供企業(yè)級(jí)信息管理解決方案。Oracle數(shù)據(jù)庫甲骨文公司產(chǎn)品,高效率、可靠性好,適應(yīng)高吞吐量,處于數(shù)據(jù)庫領(lǐng)域領(lǐng)先地位,最新版本為OracleDatabase20c,引入多承租方架構(gòu),支持?jǐn)?shù)據(jù)庫云。數(shù)據(jù)庫對(duì)比MySQL:開源、成本低;SQLServer:與Windows集成度高;Oracle:高吞吐量、云支持,各有優(yōu)勢(shì),適用于不同場(chǎng)景。1.分布式存儲(chǔ)系統(tǒng)的概念分布式存儲(chǔ)系統(tǒng)是指將數(shù)據(jù)分散存儲(chǔ)在多個(gè)節(jié)點(diǎn)上,通過網(wǎng)絡(luò)連接實(shí)現(xiàn)數(shù)據(jù)的共享和訪問的一種存儲(chǔ)方式。它可以提高數(shù)據(jù)的可靠性和可擴(kuò)展性,同時(shí)也可以提高數(shù)據(jù)的訪問速度和并發(fā)性。分布式存儲(chǔ)系統(tǒng)在應(yīng)對(duì)海量數(shù)據(jù)的儲(chǔ)存和訪問上有著不可替代的作用。與傳統(tǒng)的集中式存儲(chǔ)系統(tǒng)相比,分布式存儲(chǔ)系統(tǒng)具有高可靠性、高可擴(kuò)展性、高吞吐量等優(yōu)勢(shì),可以應(yīng)對(duì)大規(guī)模數(shù)據(jù)的儲(chǔ)存和訪問需求。1.2分布式存儲(chǔ)系統(tǒng)2.分布式存儲(chǔ)系統(tǒng)的組成部分分布式存儲(chǔ)系統(tǒng)由多臺(tái)計(jì)算機(jī)構(gòu)成,其中包括服務(wù)節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)。服務(wù)節(jié)點(diǎn)負(fù)責(zé)管理整個(gè)系統(tǒng)的運(yùn)行,包括文件的儲(chǔ)存、索引和訪問等。存儲(chǔ)節(jié)點(diǎn)則負(fù)責(zé)實(shí)際儲(chǔ)存文件,并根據(jù)服務(wù)節(jié)點(diǎn)的指示,完成文件的傳輸和訪問。為了實(shí)現(xiàn)分布式存儲(chǔ)系統(tǒng)的高可靠性和高可擴(kuò)展性,分布式存儲(chǔ)系統(tǒng)通常具有多份備份機(jī)制,即將同一份文件儲(chǔ)存在多臺(tái)計(jì)算機(jī)上,以增加數(shù)據(jù)的可靠性。1.2分布式存儲(chǔ)系統(tǒng)分布式存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)方式1.2分布式存儲(chǔ)系統(tǒng)
分布式存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)方式通常包括兩種:共享存儲(chǔ)和分布式存儲(chǔ)。共享存儲(chǔ)方式是指將所有的存儲(chǔ)節(jié)點(diǎn)共享同一份數(shù)據(jù),通過硬件和軟件技術(shù)實(shí)現(xiàn)多節(jié)點(diǎn)共享文件的訪問。分布式存儲(chǔ)方式是指將整個(gè)分布式存儲(chǔ)系統(tǒng)分割成多個(gè)部分,并將不同的數(shù)據(jù)儲(chǔ)存在不同的節(jié)點(diǎn)上,通過網(wǎng)絡(luò)連接,將各個(gè)節(jié)點(diǎn)之間的數(shù)據(jù)進(jìn)行交互,實(shí)現(xiàn)文件的儲(chǔ)存和訪問。分布式存儲(chǔ)系統(tǒng)的實(shí)現(xiàn)1.2分布式存儲(chǔ)系統(tǒng)分布式存儲(chǔ)系統(tǒng)包括分布式文件系統(tǒng)、分布式鍵值系統(tǒng)、分布式表格系統(tǒng)、分布式數(shù)據(jù)庫等不同類型。其中,分布式文件系統(tǒng)主要用于大規(guī)模文件的存儲(chǔ)和管理,分布式鍵值系統(tǒng)主要用于鍵值對(duì)的存儲(chǔ)和查詢,分布式表格系統(tǒng)主要用于結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和查詢,分布式數(shù)據(jù)庫則是將傳統(tǒng)的關(guān)系型數(shù)據(jù)庫分布式化實(shí)現(xiàn)的一種存儲(chǔ)方式。在分布式存儲(chǔ)系統(tǒng)中,一致性是一個(gè)非常重要的問題,因?yàn)槎鄠€(gè)副本之間的數(shù)據(jù)一致性是整個(gè)分布式存儲(chǔ)系統(tǒng)的理論核心。1.2分布式存儲(chǔ)系統(tǒng)1.分布式文件系統(tǒng)的實(shí)現(xiàn)
分布式文件系統(tǒng)是分布式存儲(chǔ)系統(tǒng)的核心。通過將文件分割成多份,并將這些文件儲(chǔ)存在不同的節(jié)點(diǎn)上,實(shí)現(xiàn)文件的高可靠性和高可擴(kuò)展性。分布式文件系統(tǒng)的實(shí)現(xiàn)通常采用分塊存儲(chǔ)和儲(chǔ)存元數(shù)據(jù)的方式。分塊存儲(chǔ)是指將文件分成多個(gè)塊,然后存儲(chǔ)到不同的節(jié)點(diǎn)上。這樣做的優(yōu)點(diǎn)是可以并行地傳輸和處理塊,同時(shí)也方便進(jìn)行數(shù)據(jù)的備份。儲(chǔ)存元數(shù)據(jù)是指將文件的元數(shù)據(jù),如文件名、類型、大小、創(chuàng)建時(shí)間、修改時(shí)間等信息儲(chǔ)存在特殊的節(jié)點(diǎn)上,以實(shí)現(xiàn)文件的訪問和索引。目前,應(yīng)用廣泛的分布式文件系統(tǒng)主要包括GFS(Google文件系統(tǒng))和HDFS(Hadoop分布式文件系統(tǒng)),HDFS是GFS的開源實(shí)現(xiàn)。1.2分布式存儲(chǔ)系統(tǒng)2.分布式數(shù)據(jù)庫的實(shí)現(xiàn)
分布式數(shù)據(jù)庫是應(yīng)對(duì)大數(shù)據(jù)儲(chǔ)存和訪問需求的一種有效方式。它可以將數(shù)據(jù)庫分割成不同的子數(shù)據(jù)庫,分別儲(chǔ)存在不同的節(jié)點(diǎn)上,并通過網(wǎng)絡(luò)連接實(shí)現(xiàn)數(shù)據(jù)的查詢和更新。分布式數(shù)據(jù)庫的實(shí)現(xiàn)通常采用水平切分和垂直切分兩種方式。水平切分是指將數(shù)據(jù)庫表中的數(shù)據(jù)按照某種規(guī)則進(jìn)行分割,分割后的每個(gè)子表都儲(chǔ)存在不同節(jié)點(diǎn)上,實(shí)現(xiàn)數(shù)據(jù)的橫向分布,提高數(shù)據(jù)庫的讀寫性能。垂直切分則是按功能將數(shù)據(jù)庫表分成不同的子表,每個(gè)子表包含不同的字段。這樣可以將數(shù)據(jù)分散到不同的節(jié)點(diǎn)上,并提高查詢效率。分布式數(shù)據(jù)庫概述1.3分布式數(shù)據(jù)庫大數(shù)據(jù)需要通過分布式的集群方式來解決存儲(chǔ)和訪問的問題。以下將從分布式的角度來介紹數(shù)據(jù)庫的數(shù)據(jù)管理。分布式系統(tǒng)的核心理念是讓多臺(tái)服務(wù)器協(xié)同工作,完成單臺(tái)服務(wù)器無法處理的任務(wù),尤其是高并發(fā)或者大數(shù)據(jù)量的任務(wù)。分布式數(shù)據(jù)庫是數(shù)據(jù)庫技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,它通過網(wǎng)絡(luò)技術(shù)將物理上分開的數(shù)據(jù)庫連接在一起,進(jìn)行邏輯層面上的集中管理。在分布式數(shù)據(jù)庫系統(tǒng)中,一個(gè)應(yīng)用程序可以對(duì)數(shù)據(jù)庫進(jìn)行透明操作,數(shù)據(jù)庫中的數(shù)據(jù)分別存儲(chǔ)在不同的局部數(shù)據(jù)庫中,由不同機(jī)器上不同的DBMS進(jìn)行管理。分布式數(shù)據(jù)庫數(shù)據(jù)管理1.3分布式數(shù)據(jù)庫1.分布的透明管理2.復(fù)制數(shù)據(jù)的透明管理3.事務(wù)的可靠性分布式數(shù)據(jù)庫分類列族數(shù)據(jù)庫適用于分布式數(shù)據(jù)存儲(chǔ)與管理,以列族式存儲(chǔ),將同一列數(shù)據(jù)存儲(chǔ)在一起,實(shí)現(xiàn)高擴(kuò)展性和快速查找,但功能局限,不支持事務(wù)強(qiáng)一致性。文檔數(shù)據(jù)庫面向Web應(yīng)用,存儲(chǔ)半結(jié)構(gòu)化數(shù)據(jù),如JSON文檔,數(shù)據(jù)結(jié)構(gòu)靈活,可根據(jù)文檔內(nèi)容創(chuàng)建索引,但缺乏統(tǒng)一查詢語法。鍵值數(shù)據(jù)庫用于內(nèi)容緩存和頻繁讀寫場(chǎng)景,采用鍵值對(duì)存儲(chǔ),擴(kuò)展性好,性能高,但數(shù)據(jù)無結(jié)構(gòu)化,查詢受限于鍵。1.3分布式數(shù)據(jù)庫圖形數(shù)據(jù)庫圖形數(shù)據(jù)庫來源于圖論中的拓?fù)鋵W(xué),以節(jié)點(diǎn)、邊及節(jié)點(diǎn)之間的關(guān)系來存儲(chǔ)復(fù)雜網(wǎng)絡(luò)中的數(shù)據(jù)HBase是一種基于Hadoop的分布式NoSQL數(shù)據(jù)庫,它不支持完整的事務(wù)性,僅支持基于RowKey的索引,在性能上不如memcached和Redis,但是在海量數(shù)據(jù)、持久化存儲(chǔ)方面比內(nèi)存類型的NoSQL優(yōu)秀。因HBase基于Hadoop實(shí)現(xiàn),可以和HDFS、MapReduce、Spark等非常好地結(jié)合。HBase不僅可以方便地進(jìn)行存儲(chǔ),還可以更加方便地對(duì)數(shù)據(jù)進(jìn)行處理和運(yùn)算,這些都是關(guān)系型數(shù)據(jù)庫所無法比擬的。1.3分布式數(shù)據(jù)庫存儲(chǔ)方式分布式數(shù)據(jù)庫將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的計(jì)算機(jī)上,而關(guān)系型數(shù)據(jù)庫將數(shù)據(jù)集中存儲(chǔ)在一臺(tái)計(jì)算機(jī)上。擴(kuò)展方式基于NoSQL的分布式數(shù)據(jù)庫通常比較容易實(shí)現(xiàn)擴(kuò)展,因?yàn)樗鼈儾捎昧怂椒制姆绞絹泶鎯?chǔ)數(shù)據(jù)。當(dāng)系統(tǒng)需要處理更多的數(shù)據(jù)時(shí),關(guān)系型數(shù)據(jù)庫可能需要重新設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu),這會(huì)帶來一定的復(fù)雜性
數(shù)據(jù)操作方式關(guān)系型數(shù)據(jù)庫采用結(jié)構(gòu)化查詢語言(即SQL)對(duì)數(shù)據(jù)庫進(jìn)行查詢分布式數(shù)據(jù)庫使用的是非結(jié)構(gòu)化查詢語言,1.4分布式數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫的差別規(guī)范化在關(guān)系型數(shù)據(jù)庫中,一個(gè)數(shù)據(jù)實(shí)體一般首先要分割成多個(gè)部分,然后再對(duì)分割的部分進(jìn)行規(guī)范化,規(guī)范化以后再分別存入多張關(guān)系型數(shù)據(jù)表中,分布式數(shù)據(jù)庫則沒有這方面的問題,它不需要規(guī)范化數(shù)據(jù)。事務(wù)性關(guān)系型數(shù)據(jù)庫強(qiáng)調(diào)ACID規(guī)則,可以滿足對(duì)事務(wù)性要求較高或者需要進(jìn)行復(fù)雜數(shù)據(jù)查詢的數(shù)據(jù)操作。分布式數(shù)據(jù)庫雖然對(duì)于事務(wù)操作也可以使用,但由于它是一種基于節(jié)點(diǎn)的分布式數(shù)據(jù)庫,不能很好地支持事務(wù)的操作讀寫性能關(guān)系型數(shù)據(jù)庫十分強(qiáng)調(diào)數(shù)據(jù)的一致性,并為此付出了降低讀寫性能的代價(jià)。分布式數(shù)據(jù)庫相對(duì)關(guān)系型數(shù)據(jù)庫最大的優(yōu)勢(shì)恰恰是應(yīng)對(duì)大數(shù)據(jù)方面,也就是對(duì)于大量的每天都產(chǎn)生非結(jié)構(gòu)化的數(shù)據(jù)能夠高性能地讀寫。1.4分布式數(shù)據(jù)庫與關(guān)系型數(shù)據(jù)庫的差別單元2HBase簡(jiǎn)介與安裝1HBase部署目錄HBase概述2
HBase的概念HBase是一個(gè)基于Google
Bigtable論文的開源分布式列式存儲(chǔ)系統(tǒng),它利用Hadoop的HDFS作為底層存儲(chǔ),并使用HadoopMapReduce進(jìn)行分布式計(jì)算。HBase是一個(gè)高可靠性、高性能、可伸縮的列式NoSQL數(shù)據(jù)庫,適用于存儲(chǔ)海量數(shù)據(jù),并支持快速的數(shù)據(jù)讀寫操作。
HBase的概念HBase最初由Google的Bigtable論文啟發(fā),于2007年由ApacheSoftwareFoundation發(fā)起。它作為Hadoop生態(tài)系統(tǒng)的一部分,為大數(shù)據(jù)應(yīng)用提供了靈活、可擴(kuò)展的存儲(chǔ)解決方案。HBase的發(fā)展受到了廣泛的關(guān)注和貢獻(xiàn),并已成為大數(shù)據(jù)存儲(chǔ)領(lǐng)域的關(guān)鍵技術(shù)之一。HBase的歷史背景
HBase的概念HBase的核心組件包括HMaster、HRegionServer、HDFS、Zookeeper等。HMaster負(fù)責(zé)管理HBase集群的元數(shù)據(jù),處理客戶端請(qǐng)求,并協(xié)調(diào)RegionServer之間的數(shù)據(jù)分布。HRegionServer負(fù)責(zé)存儲(chǔ)和管理HBase數(shù)據(jù)表中的數(shù)據(jù),并處理客戶端的讀寫請(qǐng)求。HDFS作為底層存儲(chǔ)系統(tǒng),提供了高可靠性和可擴(kuò)展性的文件存儲(chǔ)。Zookeeper負(fù)責(zé)協(xié)調(diào)HBase集群中的節(jié)點(diǎn)狀態(tài),并處理分布式鎖和配置管理等功能。HBase的核心組件
HBase的概念對(duì)比內(nèi)容HBaseBigTable文件存儲(chǔ)系統(tǒng)HDFSGFS海量數(shù)據(jù)處理基于Java語言的MapReduce基于C語言的MapReduce協(xié)同服務(wù)管理ZookeeperChubbyHBase是GoogleBigTable的開源實(shí)現(xiàn),與Google的BigTable利用GFS作為其文件存儲(chǔ)系統(tǒng)類似,兩者底層使用的技術(shù)均存在較大差別
HBase的特點(diǎn)HBase具有以下顯著特點(diǎn):可伸縮性HBase支持橫向擴(kuò)展,可以通過增加RegionServer節(jié)點(diǎn)來擴(kuò)展集群的存儲(chǔ)和處理能力。HBase的RegionServer之間可以動(dòng)態(tài)調(diào)整數(shù)據(jù)分布,實(shí)現(xiàn)負(fù)載均衡。高可靠性HBase通過HDFS的多副本機(jī)制實(shí)現(xiàn)了高可靠性。HBase數(shù)據(jù)在HDFS上以多個(gè)副本的形式存儲(chǔ),即使某個(gè)節(jié)點(diǎn)出現(xiàn)故障,數(shù)據(jù)仍然可以從其他副本中恢復(fù)。此外,HBase還提供了預(yù)寫日志(WAL)和副本機(jī)制,確保數(shù)據(jù)的一致性和完整性。高性能HBase采用LSM樹結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),并通過RegionServer對(duì)數(shù)據(jù)進(jìn)行分布式存儲(chǔ)和管理,從而實(shí)現(xiàn)了高性能的數(shù)據(jù)讀寫操作。HBase支持批量數(shù)據(jù)操作和MapReduce計(jì)算,可以高效地處理海量數(shù)據(jù)。
HBase的特點(diǎn)HBase具有以下顯著特點(diǎn):面向列存儲(chǔ)HBase采用面向列的存儲(chǔ)模式,每個(gè)列簇由多個(gè)文件保存,不同列簇的文件是分離的。這種存儲(chǔ)模式可以降低I/O開銷,支持大量并發(fā)用戶查詢。
HBase與傳統(tǒng)關(guān)系型數(shù)據(jù)庫的區(qū)別HBase提供的操作相對(duì)簡(jiǎn)單,主要包括插入、查詢、刪除、清空等。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫提供豐富的操作,如插入、刪除、更新、查詢等,并支持復(fù)雜的多表連接操作。HBase采用列式存儲(chǔ)模型,將數(shù)據(jù)存儲(chǔ)為未經(jīng)解釋的字符串,用戶需要自行解析數(shù)據(jù)類型。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫采用關(guān)系模型,具有豐富的數(shù)據(jù)類型和存儲(chǔ)方式。HBase支持橫向擴(kuò)展,可以通過增加RegionServer節(jié)點(diǎn)來擴(kuò)展集群的存儲(chǔ)和處理能力。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫難以實(shí)現(xiàn)橫向擴(kuò)展,縱向擴(kuò)展的空間也比較有限??缮炜s性HBase只有一個(gè)索引——行鍵。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫通??梢葬槍?duì)不同列構(gòu)建復(fù)雜的多個(gè)索引,以提高數(shù)據(jù)訪問性能。數(shù)據(jù)索引HBase執(zhí)行更新操作時(shí),不會(huì)刪除舊版本的數(shù)據(jù),而是生成一個(gè)新版本的數(shù)據(jù)。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫更新操作會(huì)用最新的當(dāng)前值去替換記錄中原來的值,舊值被覆蓋后就不會(huì)存在。數(shù)據(jù)維護(hù)HBase與傳統(tǒng)關(guān)系型數(shù)據(jù)庫在數(shù)據(jù)模型、數(shù)據(jù)操作、存儲(chǔ)模式、數(shù)據(jù)索引、數(shù)據(jù)維護(hù)和可伸縮性等方面存在較大差異。數(shù)據(jù)操作數(shù)據(jù)模型存儲(chǔ)模式HBase采用面向列的存儲(chǔ)模式,每個(gè)列簇由多個(gè)文件保存,不同列簇的文件是分離的。這種存儲(chǔ)模式可以降低I/O開銷,支持大量并發(fā)用戶查詢。而傳統(tǒng)關(guān)系型數(shù)據(jù)庫采用面向行的存儲(chǔ)模式,每個(gè)元組存儲(chǔ)在一塊內(nèi)存中。
HBase的應(yīng)用場(chǎng)景HBase適用于具有以下特點(diǎn)的場(chǎng)景:HBase可以存儲(chǔ)PB級(jí)別的海量數(shù)據(jù),并支持快速的數(shù)據(jù)讀寫操作,可以作為大數(shù)據(jù)存儲(chǔ)和處理平臺(tái)的重要組成部分,例如企業(yè)級(jí)數(shù)據(jù)倉庫、日志分析、搜索引擎等。大數(shù)據(jù)存儲(chǔ)和處理HBase可以實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)存儲(chǔ)和查詢,可以作為實(shí)時(shí)數(shù)據(jù)處理場(chǎng)景下的數(shù)據(jù)緩存和實(shí)時(shí)計(jì)算的基礎(chǔ)組件,例如實(shí)時(shí)監(jiān)控和分析系統(tǒng)、智能推薦系統(tǒng)等。實(shí)時(shí)數(shù)據(jù)處理HBase支持隨機(jī)訪問和列存儲(chǔ),可以快速查詢和計(jì)算用戶之間的相似度與興趣偏好,可以作為協(xié)同過濾和推薦系統(tǒng)的底層存儲(chǔ)與計(jì)算引擎。協(xié)同過濾和推薦系統(tǒng)HBase支持空間數(shù)據(jù)類型和空間索引,能夠存儲(chǔ)和查詢大規(guī)模的地理空間數(shù)據(jù),可以作為地理信息系統(tǒng)的底層存儲(chǔ)和查詢引擎。地理信息系統(tǒng)HBase支持時(shí)間戳的存儲(chǔ)和查詢,可以存儲(chǔ)和查詢大規(guī)模的時(shí)序數(shù)據(jù),例如物聯(lián)網(wǎng)數(shù)據(jù)、傳感器數(shù)據(jù)、日志數(shù)據(jù)等。時(shí)序數(shù)據(jù)存儲(chǔ)和分析1HBase部署目錄HBase概述2HBase的版本及依賴環(huán)境HBase版本HBase的版本及依賴環(huán)境HBase版本與Hadoop版本對(duì)應(yīng)關(guān)系HBase版本與JDK版本對(duì)應(yīng)關(guān)系
HBase單機(jī)部署HBase的單機(jī)部署步驟如下:①安裝JDK,并配置環(huán)境變量。[root@HBasesoftware]#tar-zxvfjdk-8u162-linux-x64.tar.gz-C/export/servers/用vim/etc/profile編輯profile配置文件并添加以下內(nèi)容:exportJAVA_HOME=/export/servers/jdk1.8.0_162exportPATH=$PATH:$JAVA_HOME/bin source/etc/profile刷新環(huán)境變量。JDk安裝測(cè)試:“java-version”部署步驟
HBase單機(jī)部署HBase的單機(jī)部署步驟如下:②下載并解壓HBase安裝包,并配置環(huán)境變量。[root@HBasesoftware]#tar-zxvfhbase-2.4.6-bin.tar.gz-C/export/servers/[root@HBaseservers]#mvhbase-2.4.6/hbase[root@HBaseservers]#vim/etc/profile編輯/etc/profile,添加以下內(nèi)容:exportHBASE_HOME=/export/servers/hbaseexportPATH=$PATH:$HBASE_HOME/bin[root@HBaseservers]#source/etc/profile部署步驟
HBase單機(jī)部署HBase的單機(jī)部署步驟如下:④修改hbase-site.xml文件,并添加HBase的相關(guān)配置,如RegionServer的共享目錄、HBase的分布式模式等。[root@HBasehbase]#vimhbase-site.xml添加以下內(nèi)容,配置RegionServer的共享目錄。配置單機(jī)版的HBase時(shí)hbase.cluster.distributed的值需要設(shè)為false。<configuration><property><name>hbase.cluster.distributed</name><value>false</value></property><property><name>hbase.tmp.dir</name><value>./tmp</value></property>
部署步驟
HBase單機(jī)部署HBase的單機(jī)部署步驟如下:④修改hbase-site.xml文件,并添加HBase的相關(guān)配置,如RegionServer的共享目錄、HBase的分布式模式等。<property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property><property><name>hbase.rootdir</name><value>/export/servers/hbase/data</value></property></configuration>使用wq命令保存對(duì)配置文件的修改,然后退出編輯。部署步驟
HBase單機(jī)部署03HBase的單機(jī)部署步驟如下:⑤啟動(dòng)HBase進(jìn)程,并使用hbase
shell進(jìn)入HBase客戶端進(jìn)行操作。[root@HBase~]#start-hbase.sh此時(shí),使用jps命令查看所有進(jìn)程,發(fā)現(xiàn)有一個(gè)HMaster進(jìn)程,這個(gè)就是HBase主服務(wù)節(jié)點(diǎn)。⑥使用stop-hbase.sh關(guān)閉HBase進(jìn)程。部署步驟HBase的單機(jī)部署只有一個(gè)主節(jié)點(diǎn)進(jìn)程,對(duì)單點(diǎn)故障沒有很好的解決辦法,因此只在開發(fā)測(cè)試中使用。
HBase偽分布式部署環(huán)境準(zhǔn)備偽分布式部署的優(yōu)勢(shì)HBase的偽分布式部署基于Hadoop集群和ZooKeeper集群,所有進(jìn)程運(yùn)行在同一個(gè)主機(jī)上的同一個(gè)JVM,主要用于測(cè)試。部署步驟01020304HBase的偽分布式部署步驟如下:安裝JDK,并配置環(huán)境變量。安裝ssh并配置免密登錄。安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。HBase的偽分布式部署需要安裝JDK、Hadoop和ZooKeeper。JDK版本需要與HBase版本兼容,Hadoop和ZooKeeper版本也需要與HBase版本兼容。HBase的偽分布式部署可以模擬真實(shí)的生產(chǎn)環(huán)境,用于測(cè)試和開發(fā)HBase應(yīng)用。與單機(jī)部署相比,偽分布式部署可以更好地模擬分布式集群的運(yùn)行狀態(tài),并提供更高的可靠性。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:①安裝JDK,并配置環(huán)境變量。參考單機(jī)部署②安裝ssh并配置免密登錄。(5)執(zhí)行以下命令,進(jìn)行ssh免密認(rèn)證。[root@HBase.ssh]#catid_rsa.pub>>authorized_keys(6)修改文件權(quán)限,命令如下:[root@HBase.ssh]#chmod644authorized_keys(7)檢測(cè)是否可以免密登錄,命令如下:[root@HBase~]#sshroot@localhost若不需要輸入密碼便可登錄localhost主機(jī),則說明免密登錄設(shè)置成功
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:①安裝JDK,并配置環(huán)境變量。參考單機(jī)部署②安裝ssh并配置免密登錄。(1)檢查是否安裝ssh(CentOS7即使是最小化安裝也會(huì)附帶openssh,因此可跳過本步驟)。[root@HBase~]#rpm-qa|grepssh(2)開啟sshd服務(wù)。命令如下:[root@HBase~]#systemctlstartsshd.service(3)使用cd~/.ssh進(jìn)入~/.ssh文件夾。若不存在該文件夾,可以使用以下命令用root賬戶登錄后生成:[root@HBase~]#sshroot@localhost然后輸入yes,再輸入本機(jī)root密碼(4)進(jìn)入.ssh目錄后執(zhí)行以下命令,生成公鑰與私鑰對(duì)。[root@HBase.ssh]#ssh-keygen-trsa按3次“Enter”鍵
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。(1)將下載好的安裝包hadoop-3.1.3.tar.gz,上傳到指定目錄/export/software上傳完成后,將hadoop-3.1.3.tar.gz解壓至/export/servers目錄下,并將hadoop-3.1.3重命名為hadoop,命令如下:[root@HBasesoftware]#tar-zxvfhadoop-3.1.3.tar.gz-C/export/servers[root@HBasesoftware]#cd/export/servers[root@HBaseservers]#mvhadoop-3.1.3hadoop(2)編輯環(huán)境變量vim/etc/profile,添加以下內(nèi)容,并刷新環(huán)境變量source/etc/profile:#hadoopexportHADOOP_HOME=/export/servers/hadoopexportPATH=$PATH:$HADOOP_HOME/binexportPATH=$PATH:$HADOOP_HOME/sbin
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。(3)創(chuàng)建文件夾。1)cd到hadoop目錄下,執(zhí)行以下命令:[root@HBase
hadoop]#mkdirtemp2)創(chuàng)建namenode存放nametable的目錄:cd到temp目錄下創(chuàng)建dfs目錄,再在dfs目錄下創(chuàng)建name目錄。[root@HBase
hadoop]#cdtemp/[root@HBasetemp]#mkdirdfs
[root@HBasetemp]#ls[root@HBasetemp]#cddfs/[root@HBase
dfs]#mkdirname[root@HBase
dfs]#ls
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。3)創(chuàng)建datanode存放數(shù)據(jù)block的目錄,在dfs目錄下創(chuàng)建data目錄[root@HBase
dfs]#mkdirdata[root@HBase
dfs]#ls
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。4)進(jìn)入/export/servers/hadoop/etc/hadoop目錄,編輯core-site.xml,添加以下內(nèi)容:[root@HBase~]#cd/export/servers/hadoop/etc/hadoop[root@HBase
hadoop]#vimcore-site.xml<configuration><property><!--指定hadoop運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)路徑--><name>hadoop.tmp.dir</name><value>/opt/module/temp</value><description>Abaseforothertemporarydirectories.</description></property><property><!--hdfs
namenode的通信地址--><name>fs.defaultFS</name><value>hdfs://:9000</value></property><property><name>hadoop.http.staticuser.user</name><value>root</value></property></configuration>添加完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq保存并退出編輯。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。5)進(jìn)入/export/servers/hadoop/etc/hadoop目錄,編輯hdfs-site.xml,添加以下內(nèi)容:[root@HBase~]#cd/export/servers/hadoop/etc/hadoop[root@HBase
hadoop]#vimhdfs-site.xml<configuration><property><!--指定HDFS儲(chǔ)存數(shù)據(jù)的副本數(shù)目,默認(rèn)情況下為3份--><name>dfs.replication</name><value>1</value></property><property><!--namenode存放nametable的目錄--><name>.dir</name><value>file:/export/servers/hadoop/temp/dfs/name</value></property><property><!--datanode存放數(shù)據(jù)block的目錄--><name>dfs.datanode.data.dir</name><value>file:/export/servers/hadoop/temp/dfs/data</value></property><property><!--設(shè)置監(jiān)控頁面的端口及地址--><name>dfs.http.address</name><value>:50070</value></property></configuration>添加完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq保存并退出編輯。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。(6)進(jìn)入/export/servers/hadoop/etc/hadoop目錄,編輯mapred-site.xml,添加以下內(nèi)容:[root@HBase~]#cd/export/servers/hadoop/etc/hadoop[root@HBase
hadoop]#vimmapred-site.xml<configuration><property><!--指定mapreduce
編程模型運(yùn)行在yarn上--><name></name><value>yarn</value></property></configuration>添加完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq保存并退出編輯。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。(7)進(jìn)入/export/servers/hadoop/etc/hadoop目錄,編輯yarn-site.xml,添加以下內(nèi)容:[root@HBase~]#cd/export/servers/hadoop/etc/hadoop[root@HBase
hadoop]#vimyarn-site.xml<configuration><!--SitespecificYARNconfigurationproperties--><property><!--指定mapreduce
編程模型運(yùn)行在yarn上--><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>添加完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq,保存并退出編輯。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。8)編輯開始和關(guān)閉腳本。1)進(jìn)入/export/servers/hadoop/sbin目錄,編輯start-dfs.sh和stop-dfs.sh,在最上方的#/usr/bin/envbash下的空白處添加以下內(nèi)容[root@HBase~]#cd/export/servers/hadoop/sbin[root@HBase
sbin]#vimstart-dfs.sh[root@HBase
sbin]#vimstop-dfs.shHDFS_DATANODE_USER=rootHADOOP_SECURE_DN_USER=hdfsHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=root
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。2)進(jìn)入/export/servers/hadoop/sbin目錄,編輯start-yarn.sh和stop-yarn.sh,在最上方的#/usr/bin/envbash下的空白處添加以下內(nèi)容。[root@HBase~]#cd/export/servers/hadoop/sbin[root@HBase
sbin]#vimstart-yarn.sh[root@HBase
sbin]#vimstop-yarn.shYARN_RESOURCEMANAGER_USER=rootHADOOP_SECURE_DN_USER=yarnYARN_NODEMANAGER_USER=root
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:③安裝Hadoop并配置偽分布式,包括創(chuàng)建文件夾、配置環(huán)境變量、修改配置文件、格式化NameNode、啟動(dòng)Hadoop集群等。(9)格式化。進(jìn)入/export/servers/hadoop/etc/hadoop目錄,執(zhí)行以下命令(僅可格式化一次):[root@HBase~]#/export/servers/hadoop/etc/hadoop[root@HBasehadoop]#hadoopnamenode–format(10)啟動(dòng)Hadoop。start-all.sh
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:④安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。1.下載并安裝ZooKeeper從官網(wǎng)下載ZooKeeper,這里選擇apache-zookeeper-3.8.3-bin.tar.gz,解壓到/export/servers目錄下并重命名。2.環(huán)境變量配置使用vim/etc/profile編輯profile配置文件并添加以下內(nèi)容:exportZOOKEEPER_HOME=/export/servers/zookeeperexportPATH=.:$ZOOKEEPER_HOME/bin:$PATH
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:④安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。3.配置偽分布式ZooKeeper偽分布式集群部署是指在一臺(tái)機(jī)器上配置多個(gè)配置文件,然后根據(jù)不同的配置文件來啟動(dòng)ZooKeeper服務(wù),具體配置如下:[root@HBaseservers]#cdzookeeper/conf/[root@HBaseconf]#cpzoo_sample.cfgzoo1.cfg[root@HBaseconf]#cpzoo_sample.cfgzoo2.cfg[root@HBaseconf]#cpzoo_sample.cfgzoo3.cfg[root@HBasezookeeper]#mkdirzkData1[root@HBasezookeeper]#mkdirzkData2[root@HBasezookeeper]#mkdirzkData3
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:④安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。3.配置偽分布式ZooKeeper(1)編輯zoo1.cfg。[root@HBaseconf]#vimzoo1.cfg修改以下內(nèi)容:dataDir=/export/servers/zookeeper/zkData1clientPort=2181server.1=hbase:2888:3888server.2=hbase:2889:3889server.3=hbase:2890:3890修改完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq保存并退出編輯。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:④安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。3.配置偽分布式ZooKeeper(2)編輯zoo2.cfg。[root@HBaseconf]#vimzoo2.cfg修改以下內(nèi)容:dataDir=/export/servers/zookeeper/zkData2clientPort=2182server.1=hbase:2888:3888server.2=hbase:2889:3889server.3=hbase:2890:3890修改完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq保存并退出編輯。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:④安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。3.配置偽分布式ZooKeeper(3)編輯zoo3.cfg。[root@HBaseconf]#vimzoo3.cfg修改以下內(nèi)容:dataDir=/export/servers/zookeeper/zkData3clientPort=2183server.1=hbase:2888:3888server.2=hbase:2889:3889server.3=hbase:2890:3890修改完成后,先按“Esc”鍵退出編輯模式,再輸入命令wq保存并退出編輯。在server.A=B:C:D中,A是一個(gè)數(shù)字,表示這是第幾號(hào)服務(wù)器;B是這個(gè)服務(wù)器的IP地址;C表示這個(gè)服務(wù)器與集群中的Leader服務(wù)器交換信息的端口;D表示集群中用來執(zhí)行選舉時(shí)服務(wù)器相互通信的端口,其作用是當(dāng)Leader服務(wù)器出現(xiàn)故障或者停機(jī)時(shí),需要一個(gè)端口來重新進(jìn)行選舉,選出一個(gè)新的Leader。對(duì)于偽分布式集群的配置方式,由于B都一樣,因此需要為不同的Zookeeper服務(wù)通信端口分配不同的端口號(hào)。
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:④安裝ZooKeeper并配置偽分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。3.配置偽分布式ZooKeeper在各個(gè)dataDir目錄下創(chuàng)建myid文件,并分別存入當(dāng)前服務(wù)器的編號(hào)1、2、3,代碼如下:[root@HBasezkData1]#vimmyid[root@HBasezkData1]#cd..[root@HBasezookeeper]#cdzkData2[root@HBasezkData2]#vimmyid[root@HBasezkData2]#cd..[root@HBasezookeeper]#cdzkData3[root@HBasezkData3]#vimmyid4.啟動(dòng)并測(cè)試ZooKeeper偽分布式集群[root@HBasebin]#zkServer.shstart/export/servers/zookeeper/conf/zoo1.cfg[root@HBasebin]#zkServer.shstart/export/servers/zookeeper/conf/zoo2.cfg[root@HBasebin]#zkServer.shstart/export/servers/zookeeper/conf/zoo3.cfg[root@HBasebin]#zkServer.shstatus/export/servers/zookeeper/conf/zoo1.cfg[root@HBasebin]#zkServer.shstatus/export/servers/zookeeper/conf/zoo2.cfg[root@HBasebin]#zkServer.shstatus/export/servers/zookeeper/conf/zoo3.cfg
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:⑤安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。1.HBase的安裝參考單機(jī)安裝2.配置HBase偽分布式修改hbase-env.sh,添加以下內(nèi)容:[root@HBaseservers]#cdhbase/conf/[root@HBaseconf]#vimhbase-env.sh配置以下內(nèi)容:exportJAVA_HOME=/export/servers/jdk1.8.0_162exportHBASE_MANAGES_ZK=false#zookeeper與HBase獨(dú)立
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:⑤安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。[root@HBaseconf]#vimhbase-site.xml<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://:9000/hbase</value> <description>hbase.rootdir是RegionServer的共享目錄,用于持久化存儲(chǔ)HBase的數(shù)據(jù),默認(rèn)存儲(chǔ)在/tmp,重啟HBase時(shí)數(shù)據(jù)會(huì)丟失 一般配置HDFS目錄,與core-site.xml中配置的地址一致 如HDFS主機(jī)namenode.exampleorg:9000 </description> </property>
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:⑤安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。[root@HBaseconf]#vimhbase-site.xml <property> <name>hbase.cluster.distributed</name> <value>true</value> <description> HBase的運(yùn)行模式
false為單機(jī)模式
true為分布式模式,又分為偽分布式、完全分布式
</description> </property>
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:⑤安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。[root@HBaseconf]#vimhbase-site.xml <property> <name>hbase.zookeeper.quorum</name> <value>hbase</value> <description> Zookeeper集群的服務(wù)節(jié)點(diǎn)地址,如localhost、36 </description> </property> <property> <name>perty.dataDir</name> <value>/var/zookeeper</value> <description>
存儲(chǔ)Zookeeper的元數(shù)據(jù),默認(rèn)存儲(chǔ)在/tmp,重啟后數(shù)據(jù)會(huì)丟失
</description> </property></configuration>
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:⑤安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。3.啟動(dòng)并測(cè)試HBase先開啟Hadoop和ZooKeeper集群,再使用以下命令開啟HBase:[root@HBasehbase]#start-hbase.sh[root@HBasehbase]#hbaseshell#進(jìn)入HBase執(zhí)行數(shù)據(jù)庫操作[root@HBasehbase]#stop-hbase.sh#關(guān)閉集群?jiǎn)?dòng)HBase偽分布式集群后,使用jps命令查看所有進(jìn)程
HBase偽分布式部署部署步驟020304HBase的偽分布式部署步驟如下:⑤安裝HBase并配置偽分布式,包括修改配置文件、啟動(dòng)HBase集群等。3.啟動(dòng)并測(cè)試HBase進(jìn)入HBase的UI界面,自己的IP地址:16010
HBase完全分布式部署HBase的完全分布式部署將所有進(jìn)程分布在不同主機(jī)的JVM上,適用于生產(chǎn)環(huán)境。HBase的完全分布式部署需要安裝JDK、Hadoop和ZooKeeper。JDK版本需要與HBase版本兼容,Hadoop和ZooKeeper版本也需要與HBase版本兼容。環(huán)境準(zhǔn)備HBase的完全分布式部署可以實(shí)現(xiàn)高可靠性和高性能的數(shù)據(jù)存儲(chǔ)和處理,并支持橫向擴(kuò)展,可以滿足大規(guī)模數(shù)據(jù)應(yīng)用的需求。完全分布式部署的優(yōu)勢(shì)
HBase完全分布式部署(1)完全分布式Hadoop環(huán)境配置克隆節(jié)點(diǎn)配置修改,包括修改IP地址、主機(jī)名、網(wǎng)絡(luò)服務(wù)配置等。配置無密碼登錄,包括配置IP映射、生成公鑰和私鑰、配置免密登錄等。配置時(shí)間同步服務(wù),包括安裝NTP服務(wù)、修改配置文件、關(guān)閉防火墻、啟動(dòng)NTP服務(wù)等。安裝JDK,并配置環(huán)境變量。安裝Hadoop并配置完全分布式,包括上傳安裝包、解壓安裝包、修改配置文件、賦予權(quán)限設(shè)置、復(fù)制安裝文件、啟動(dòng)Hadoop集群等。(2)安裝ZooKeeper并配置完全分布式集群,包括修改配置文件、啟動(dòng)ZooKeeper服務(wù)等。(3)安裝HBase并配置完全分布式,包括修改配置文件、分發(fā)配置文件、啟動(dòng)HBase集群等。具體步驟參考教材。部署步驟謝謝大家單元3HBase的原理與架構(gòu)1HBase的架構(gòu)目錄HBase的模型2HBase的讀寫流程3
HBase的分布式架構(gòu)優(yōu)勢(shì)HBase作為一種分布式數(shù)據(jù)庫,其架構(gòu)設(shè)計(jì)使其在海量數(shù)據(jù)的快速存儲(chǔ)和隨機(jī)訪問方面具有顯著優(yōu)勢(shì)。通過數(shù)據(jù)副本機(jī)制和分區(qū)機(jī)制,HBase能夠輕松實(shí)現(xiàn)在線擴(kuò)容、縮容和數(shù)據(jù)容災(zāi),從而成為大數(shù)據(jù)領(lǐng)域中Key-Value數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)的常用方案之一。此外,HBase還能夠通過分布式集群讀寫海量數(shù)據(jù),這是傳統(tǒng)數(shù)據(jù)庫難以實(shí)現(xiàn)的。
本章學(xué)習(xí)目標(biāo)本章旨在幫助讀者掌握HBase的數(shù)據(jù)模型、架構(gòu)和讀寫流程。具體學(xué)習(xí)目標(biāo)包括:掌握HBase數(shù)據(jù)模型及核心知識(shí)。理解HBase架構(gòu)的原理。010204理解HBase的讀寫流程。03
HBase的邏輯模型HBase的邏輯模型以列為基本單位,多列構(gòu)成一行。每行擁有唯一的行鍵(RowKey),相同行鍵的插入操作被視為對(duì)同一行的操作,多次插入操作實(shí)際上是對(duì)該行數(shù)據(jù)的更新操作。HBase表包含多個(gè)行,每行包含多個(gè)列,列中的值可以有多個(gè)版本,每個(gè)版本的值稱為一個(gè)單元格,每個(gè)單元格存儲(chǔ)的是該列不同時(shí)間的值。
HBase的數(shù)據(jù)模型01”HBase實(shí)際上是一個(gè)稀疏、多維、持久化存儲(chǔ)的映射表,采用行鍵(RowKey)、列簇(ColumnFamily)、列限定符(ColumnQualifier)和時(shí)間戳(Timestamp)進(jìn)行索引。每個(gè)值都由未經(jīng)解釋的字節(jié)組成byte[],沒有數(shù)據(jù)類型。用戶在表中存儲(chǔ)數(shù)據(jù)時(shí),每一行都有一個(gè)可排序的行鍵和任意多的列。列簇支持動(dòng)態(tài)擴(kuò)展,用戶可以輕松地添加一個(gè)列簇或列,無需預(yù)先定義列的數(shù)量和類型。由于同一張表里的每一行數(shù)據(jù)都可以有截然不同的列,對(duì)于整個(gè)映射表的每行數(shù)據(jù)而言,有些列的值可以是空的,因此HBase是稀疏的。HBase的數(shù)據(jù)模型2025/5/190102表HBase是一種列式存儲(chǔ)的分布式數(shù)據(jù)庫,其核心概念是表(Table)。與傳統(tǒng)關(guān)系型數(shù)據(jù)庫一樣,HBase的表也是由行和列組成的,但HBase的同一列可以存儲(chǔ)不同時(shí)刻的值,多個(gè)列可以組成一個(gè)列簇(ColumnFamily),這種組織形式主要是出于對(duì)HBase存取性能的考慮。行鍵每個(gè)HBase表中只能有一個(gè)行鍵,類似于主鍵。由于RowKey是HBase表的唯一標(biāo)識(shí),HBase表中的記錄是按照RowKey的字典序排列的,因此,RowKey的設(shè)計(jì)非常重要。在HBase中,為了高效地檢索數(shù)據(jù),需要設(shè)計(jì)良好的RowKey來提高查詢性能。因?yàn)镽owKey會(huì)被冗余存儲(chǔ),所以長度不宜過長,否則既會(huì)占用大量的存儲(chǔ)空間,又會(huì)降低檢索效率。RowKey應(yīng)該盡量均勻分布,避免產(chǎn)生熱點(diǎn)問題(即大量用戶訪問集中在一個(gè)或極少數(shù)節(jié)點(diǎn),導(dǎo)致單臺(tái)節(jié)點(diǎn)超出自身承受能力)。另外,還需要保證RowKey的唯一性。數(shù)據(jù)的存儲(chǔ)規(guī)則是相近的數(shù)據(jù)存儲(chǔ)在一起。例如,RowKey的格式為、、和的網(wǎng)站名稱時(shí),可以對(duì)網(wǎng)站名稱反轉(zhuǎn)后再進(jìn)行存儲(chǔ),反轉(zhuǎn)后為com.cqyti.www、com.cqyti.sxy、com.cqyti.dsj和com.cqyti.zngc。這樣,所有com.cqyti域名將會(huì)存儲(chǔ)在一起,避免子域名(即www、sxy、dsj、zngc)分散在各處。HBase的數(shù)據(jù)模型2025/5/190304列簇HBase表中的每個(gè)列都?xì)w屬于某個(gè)列簇,一個(gè)列簇中的所有列成員有著相同的前綴。例如,列anchor:和anchor:my.look.ca都是列簇anchor的成員。列簇是表的schema的一部分,必須在使用表之前定義列簇,但列卻不是必需的,寫數(shù)據(jù)的時(shí)候可以動(dòng)態(tài)加入。一般將經(jīng)常一起查詢的列放在一個(gè)列簇中,合理劃分列簇將減少查詢時(shí)加載到緩存的數(shù)據(jù),提高查詢效率。由于跨列簇訪問非常低效,因此不應(yīng)有太多的列簇。單元格HBase中通過RowKey和Column確定的存儲(chǔ)單元稱為單元格(Cell)。每個(gè)單元格都保存著同一份數(shù)據(jù)的多個(gè)版本。HBase的數(shù)據(jù)模型2025/5/190504時(shí)間戳在HBase表中,通過行鍵、列簇和列名確定一個(gè)單元格。單元格中存儲(chǔ)的數(shù)據(jù)沒有數(shù)據(jù)類型,被視為byte[]字節(jié)數(shù)組。單元格中保存的數(shù)據(jù)的每個(gè)版本對(duì)應(yīng)一個(gè)不同的時(shí)間戳,每次對(duì)一個(gè)單元格執(zhí)行操作(新建、修改、刪除)時(shí),HBase都將隱式地自動(dòng)生成并存儲(chǔ)一個(gè)時(shí)間戳。時(shí)間戳一般是64位整型數(shù)據(jù),可以由用戶自己賦值(自己生成唯一時(shí)間戳可以避免應(yīng)用程序中出現(xiàn)數(shù)據(jù)版本沖突),也可以由HBase在數(shù)據(jù)寫入時(shí)自動(dòng)賦值。一個(gè)單元格的不同版本根據(jù)時(shí)間戳進(jìn)行降序存儲(chǔ)。因此,最新版本的數(shù)據(jù)可以被優(yōu)先讀取,通常將記錄每次操作數(shù)據(jù)的時(shí)間戳記作數(shù)據(jù)的版本號(hào)。
HBase的物理模型雖然在邏輯模型中表可以被看作一個(gè)稀疏的行集合,但在物理層面,表是按列簇分開存儲(chǔ)的。HBase的列是按列簇分組的,HFile是面向列的物理文件,可以存放行的不同列。一個(gè)列簇的數(shù)據(jù)存放在多個(gè)HFile中,最重要的是一個(gè)列簇的數(shù)據(jù)會(huì)被同一個(gè)Region管理,物理上存放在一起。
HBase的Region模型HBase表中的所有行都按照RowKey的字典序排列,在行的方向上分割為多個(gè)Region。Region是HBase數(shù)據(jù)管理的基本單位,數(shù)據(jù)移動(dòng)、數(shù)據(jù)的負(fù)載均衡及數(shù)據(jù)的分裂都是以Region為單位來進(jìn)行的。HBase的表默認(rèn)最初只有一個(gè)Region,隨著記錄數(shù)不斷增加而變大后,會(huì)逐漸分裂成多個(gè)Region,每個(gè)Region根據(jù)[startkey,endkey]的范圍來劃分,不同的Region會(huì)被Master分配給相應(yīng)的RegionServer進(jìn)行管理。
HBase的Region模型Region是HBase中分布式存儲(chǔ)和負(fù)載均衡的最小單元。
HBase的Region模型Region雖然是HBase中分布式存儲(chǔ)的最小單元,但并不是存儲(chǔ)的最小單元。Region由一個(gè)或多個(gè)Store組成,每個(gè)Store保存一個(gè)ColumnFamily。每個(gè)Store又由一個(gè)MemStore和零至多個(gè)StoreFile組成。MemStore代表寫緩存,StoreFile存儲(chǔ)在HDFS之上。1HBase的架構(gòu)目錄HBase的模型2HBase的讀寫流程3
HBase的系統(tǒng)架構(gòu)HBase采用Master/Slave架構(gòu)搭建集群,屬于Hadoop生態(tài)系統(tǒng)的組件。HBase的系統(tǒng)架構(gòu)由Client(客戶端)、HMaster(主節(jié)點(diǎn))、HRegionServer(從節(jié)點(diǎn))、ZooKeeper(協(xié)調(diào)服務(wù)模塊)等部分組成,并將數(shù)據(jù)存儲(chǔ)于HDFS中。
HBase的核心組件01ClientClient是整個(gè)HBase系統(tǒng)的入口,可以通過Client直接操作HBase。Client使用HBase的遠(yuǎn)程過程調(diào)用協(xié)議(RemoteProcedureCallProtocol,RPC)機(jī)制與HMaster和HRegionServer進(jìn)行通信。02ZooKeeper分布式HBase依賴于ZooKeeper集群,所有節(jié)點(diǎn)和客戶端必須能夠正常訪問ZooKeeper。HBase默認(rèn)管理一個(gè)單點(diǎn)的ZooKeeper集群,HBase可以將ZooKeeper當(dāng)作自身的一部分來啟動(dòng)和關(guān)閉進(jìn)程。03HMasterHBase中可以啟動(dòng)多個(gè)HMaster,通過ZooKeeper的Master選舉機(jī)制保證總有一個(gè)HMaster在運(yùn)行。HMaster管理HRegionServer的負(fù)載均衡,調(diào)整HRegion的分布。04HRegionServerHRegionServer主要負(fù)責(zé)響應(yīng)用戶的I/O請(qǐng)求,在HDFS文件系統(tǒng)中讀寫數(shù)據(jù),是HBase的核心模塊。HRegionServer內(nèi)部管理了一系列HRegion,HRegion對(duì)應(yīng)Table中的一個(gè)Region,HRegion由多個(gè)HStore組成。
HBase的核心組件05Write-Ahead-Log(WAL,預(yù)寫日志)是HBase的HRegionServer在處理數(shù)據(jù)插入和刪除過程中用于記錄操作內(nèi)容的一種日志形式。大致過程如下:客戶端啟動(dòng)一個(gè)操作來修改數(shù)據(jù),每一處改動(dòng)都被包裝進(jìn)KeyValue對(duì)象實(shí)例中,使用遠(yuǎn)程調(diào)用發(fā)送到ReginoServer對(duì)應(yīng)這次改動(dòng)的Region中。數(shù)據(jù)在HRegionServer中首先被寫入WAL,再被寫入MemStore,最后當(dāng)MemStore達(dá)到一定的大小或到達(dá)指定的時(shí)刻之后,數(shù)據(jù)被異步地持久化到文件系統(tǒng)上。在這之前,數(shù)據(jù)是存儲(chǔ)在內(nèi)存中的,如果HRegionServer崩潰了,那么內(nèi)存的數(shù)據(jù)就沒有了。而如果有WAL,便可恢復(fù)數(shù)據(jù)。每個(gè)HRegionServer中都有一個(gè)HLog對(duì)象。HLog是一個(gè)實(shí)現(xiàn)WAL的類,在每次用戶操作寫入MemStore的同時(shí),也會(huì)寫一份數(shù)據(jù)到HLog文件中,HLog文件會(huì)定期滾動(dòng)出新的文件,并刪除舊的文件(已持久化到StoreFile中的數(shù)據(jù))。當(dāng)HRegionServer意外終止后,HMaster會(huì)通過ZooKeeper感知,HMaster首先會(huì)處理遺留的HLog文件,將其中不同Region的Log數(shù)據(jù)進(jìn)行拆分,分別放到相應(yīng)的Region目錄下,再將失效的Region重新分配給HRegionServer。HRegionServer在加載Region的過程中,將發(fā)現(xiàn)有歷史HLog需要處理,因此會(huì)重置HLog中的數(shù)據(jù)到MemStore中,最后刷新至StoreFile文件中完成數(shù)據(jù)恢復(fù)。1HBase的架構(gòu)目錄HBase的模型2HBase的讀寫流程3
HBase的寫流程01當(dāng)用戶向HRegionServer發(fā)起HTable.put請(qǐng)求,即寫入數(shù)據(jù)請(qǐng)求時(shí),系統(tǒng)會(huì)將請(qǐng)求交給對(duì)應(yīng)的HRegion實(shí)例處理。客戶端首先訪問ZooKeeper集群,查詢-ROOT-表Region所在的RegionServer地址信息。然后,客戶端連接相應(yīng)的RegionServer,并訪問.meta.表,根據(jù)寫入的命名空間、表名和行鍵找到對(duì)應(yīng)的Region信息。為了達(dá)到持久化和恢復(fù)的目的,將數(shù)據(jù)先寫至HLog中,再寫入MemStore。當(dāng)MemStore達(dá)到預(yù)設(shè)閾值后,創(chuàng)建一個(gè)新的MemStore。舊的MemStore會(huì)加入Flush隊(duì)列,由單獨(dú)的線程Flush至磁盤,形成一個(gè)StoreFile。
HBase的讀流程當(dāng)用戶向HRegionServer發(fā)起讀取數(shù)據(jù)請(qǐng)求時(shí),系統(tǒng)會(huì)將請(qǐng)求交給對(duì)應(yīng)的HRegion實(shí)例處理??蛻舳耸紫仍L問ZooKeeper集群,查找元數(shù)據(jù)表在哪個(gè)RegionServer上,并訪問對(duì)應(yīng)的RegionServer的元數(shù)據(jù)表中的數(shù)據(jù),查找要操作的RowKey所在表對(duì)應(yīng)的Region所在的RegionServer。隨后,客戶端讀取RegionServer上的Region數(shù)據(jù)??蛻舳硕ㄎ坏秸嬲臄?shù)據(jù)所在的Region時(shí),先從MemStore查找,如果沒找到數(shù)據(jù),但表設(shè)置了塊緩存(BlockCache)功能,那么再從塊緩存查找;如果塊緩存還沒有,再從StoreFile查找,查找到數(shù)據(jù)的同時(shí)對(duì)數(shù)據(jù)進(jìn)行緩存處理。02謝謝大家單元4HBaseShell目錄01HBaseShell基礎(chǔ)與入門02數(shù)據(jù)定義語言(DDL)操作03數(shù)據(jù)操縱語言(DML)操作04綜合應(yīng)用與最佳實(shí)踐01HBaseShell基礎(chǔ)與入門HBaseShell的功能與核心價(jià)值HBaseShell是一個(gè)封裝了JavaAPI的JRuby應(yīng)用軟件,為HBase用戶提供強(qiáng)大的交互式環(huán)境,可執(zhí)行各種數(shù)據(jù)庫操作,如創(chuàng)建、刪除和管理表,插入、查詢和刪除數(shù)據(jù)等。核心功能概述01在大數(shù)據(jù)領(lǐng)域,HBase適用于存儲(chǔ)大規(guī)模非結(jié)構(gòu)化數(shù)據(jù),具有快速的數(shù)據(jù)讀寫性能。HBaseShell能讓用戶高效地與HBase數(shù)據(jù)庫交互,滿足大數(shù)據(jù)處理的需求,提高數(shù)據(jù)操作效率。大數(shù)據(jù)場(chǎng)景應(yīng)用優(yōu)勢(shì)02Shell環(huán)境啟動(dòng)與基本配置在HMaster主機(jī)上輸入`hbaseshell`命令,即可進(jìn)入shell命令環(huán)境,開啟與HBase數(shù)據(jù)庫的交互。啟動(dòng)客戶端環(huán)境使用`version`命令能夠查看當(dāng)前HBase的版本,了解軟件的具體情況,便于進(jìn)行版本管理和功能使用。查看版本信息輸入`status`命令可以查看集群節(jié)點(diǎn)的狀態(tài),確保集群正常運(yùn)行,為后續(xù)操作提供穩(wěn)定環(huán)境。驗(yàn)證集群狀態(tài)010203命名空間的管理與應(yīng)用場(chǎng)景通過`list_namespace`命令能查看所有的命名空間,使用`list_namespace_tables'ns1'`可查看命名空間ns1中的所有表,便于對(duì)命名空間進(jìn)行管理和監(jiān)控。查看命名空間命名空間與關(guān)系型數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)庫類似,是表的邏輯分組,可對(duì)其進(jìn)行創(chuàng)建、刪除、更改等操作。命名空間概念解析使用`create_namespace'ns1'`命令可創(chuàng)建一個(gè)名為ns1的命名空間,實(shí)現(xiàn)表的邏輯分組管理。創(chuàng)建命名空間02數(shù)據(jù)定義語言(DDL)操作表結(jié)構(gòu)的創(chuàng)建與參數(shù)設(shè)置create命令語法詳解在HBaseShell中,使用create命令創(chuàng)建表,語法為create'表名','列族1','列族2'等。如創(chuàng)建學(xué)生信息表:create'Student','StuInfo','Grades'。緩存參數(shù)配置BLOCKCACHE參數(shù)可控制讀取數(shù)據(jù)時(shí)是否允許緩存,如{NAME=>'Grades',BLOCKCACHE=>true},表示Grades列族讀取數(shù)據(jù)時(shí)允許緩存。多列族定義演示版本控制參數(shù)配置可在創(chuàng)建表時(shí)指定多個(gè)列族,如上述創(chuàng)建Student表時(shí)指定了StuInfo和Grades兩個(gè)列族,方便存儲(chǔ)不同類型的數(shù)據(jù)。通過VERSIONS參數(shù)可設(shè)置單元格存儲(chǔ)的數(shù)據(jù)版本數(shù),如create'Student',{NAME=>'StuInfo',VERSIONS=>3},表示StuInfo列族單元格可存最新三版數(shù)據(jù)。表的查看與結(jié)構(gòu)分析01list命令可查看所有的表名,如執(zhí)行l(wèi)ist命令后,可顯示出Student、my1:student、ns1:Student等表名。02describe(或縮寫desc)命令用于查看一個(gè)表的詳情,能獲取表的結(jié)構(gòu)信息,如列族等相關(guān)屬性。03使用list_namespace_tables'命名空間名'可查看指定命名空間下的所有表,如list_namespace_tables'ns1'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CCMA 0182-2024施工升降機(jī)滑觸線
- T/CCMA 0121-2021瀝青混合料攪拌設(shè)備綜合能效試驗(yàn)與評(píng)價(jià)方法
- T/CCMA 0091-2020建筑施工機(jī)械與設(shè)備干法機(jī)制砂設(shè)備
- T/CCAS 013.6-2022水泥企業(yè)潤滑管理第6部分:水泥企業(yè)開式齒輪潤滑劑的使用規(guī)范
- T/CAQI 88-2019家用和類似用途純凈水處理器精準(zhǔn)凈化要求及測(cè)試方法
- T/CAPE 10104-2022混凝土長期性能和耐久性能試驗(yàn)儀器設(shè)備管理規(guī)程
- 花瓣雨考試題及答案
- 分析試驗(yàn)面試題及答案
- 荒島逃命面試題及答案
- T/CAEPI 53-2022活性碳纖維吸附-蒸汽脫附溶劑回收裝置技術(shù)要求
- SCL-90量表詳細(xì)
- 公路工程項(xiàng)目環(huán)境保護(hù)措施及其可行性論證
- 普通車床的主軸箱設(shè)計(jì)機(jī)械外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯
- 神經(jīng)外科各種引流管的護(hù)理精品課件
- 隧道CRD法施工工法
- 腦損傷病情觀察意識(shí)狀態(tài)的分級(jí)
- 請(qǐng)假通用員工請(qǐng)假單模板
- 八年級(jí)音樂下冊(cè) 第7單元《當(dāng)兵的人》好男兒就是要當(dāng)兵課件1 湘教版
- 褲類統(tǒng)一單價(jià)表-服裝工序工價(jià)表
- 我們是共產(chǎn)主義接班人歌詞--拼音版本
- 麥凱66客戶檔案管理表格
評(píng)論
0/150
提交評(píng)論