版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
項目七HBase數(shù)據(jù)庫操作CONTENTS目錄01
項目導讀02
知識目標03
技能目標04
素質(思政)目標CONTENTS目錄05
任務一MySQL安裝配置06
任務二Hbase安裝配置07
項目總結08
項目考核項目導讀01項目導讀MySQL與HBase安裝配置指南本項目將詳細介紹MySql數(shù)據(jù)庫的安裝配置和HBASE的安裝。首先,MySql是一種廣泛使用的開源關系型數(shù)據(jù)庫管理系統(tǒng),HBase是一個分布式的、面向列的NoSQL數(shù)據(jù)庫,通常用于存儲大規(guī)模數(shù)據(jù),并且能夠提供高可靠性和高性能的數(shù)據(jù)訪問。在安裝HBase項目中,你需要了解分布式系統(tǒng)的基礎知識,以及Hadoop生態(tài)系統(tǒng)的工作原理。你需要配置適當?shù)挠布蛙浖h(huán)境,并且了解HBase的架構和配置選項。安裝過程涉及在集群中的多個節(jié)點上部署和配置HBase服務,以及設置適當?shù)臋嘞藓桶踩胧?。本?jié)我們將指導您在Linux系統(tǒng)上下載并安裝MySQL服務器,供您學習創(chuàng)建和管理數(shù)據(jù)庫及用戶、設置權限,以及執(zhí)行基本的SQL操作,還需要確保HBASE能夠進行測試和性能調優(yōu),以確保HBASE能夠正常運行并滿足業(yè)務需求。這篇導讀旨在幫助開發(fā)者快速掌握MySQL的安裝配置和HBASE的安裝配置知識目標02知識目標單擊此處添加正文
了解數(shù)據(jù)庫的基本概念、類型和組成部分單擊此處添加項正文理解DBMS的作用、優(yōu)勢以及不同類型的DBMS單擊此處添加項正文MySQL與NoSQL數(shù)據(jù)庫基礎掌握MySQL服務器的安裝流程和基本配置方法掌握關系型數(shù)據(jù)庫(如MySQL)和NoSQL數(shù)據(jù)庫(如HBase)的數(shù)據(jù)模型,包括表、行、列的概念學習SQL和HBase查詢語言學習SQL(結構化查詢語言)以及HBase的API或查詢語言(如HBaseShell或HBaseRESTAPI)技能目標03技能目標掌握數(shù)據(jù)庫的增刪改查操作,包括數(shù)據(jù)的插入、更新、刪除和查詢了解并實施數(shù)據(jù)庫性能優(yōu)化策略,包括索引設計、查詢優(yōu)化和存儲優(yōu)化學習數(shù)據(jù)庫備份和恢復的方法和工具,確保數(shù)據(jù)安全性和可靠性了解數(shù)據(jù)庫安全性原則,實施用戶權限管理、訪問控制和數(shù)據(jù)加密等措施素質(思政)目標04素質(思政)目標
培養(yǎng)嚴謹細致的工匠精神
增強自學能力,能夠應對MySQL安裝和配置過程中遇到的各種挑戰(zhàn)
培養(yǎng)不驕不躁的工匠心態(tài)
培養(yǎng)保密意識,良好的數(shù)據(jù)管理習慣,確保數(shù)據(jù)的完整性和一致性
培養(yǎng)數(shù)據(jù)安全意識任務一MySQL安裝配置05任務工單任務描述在安裝MySQL之前,須先做一些鋪墊,檢查系統(tǒng)的CPU、內存和存儲空間是否滿足MySQL的最低要求,配置Linux環(huán)境、選擇合適的MySQL版本(如社區(qū)版或企業(yè)版)任務準備全班學生以4人左右為一組,各組選出組長。請組長組織組員查找相關資料,并組織討論和匯總問題1:MySQL的安裝步驟是什么問題2:如何訪問MySQL數(shù)據(jù)庫問題3:如何創(chuàng)建新的數(shù)據(jù)庫和用戶必備知識技能:一、數(shù)據(jù)庫概述01數(shù)據(jù)庫概述數(shù)據(jù)庫(Database,DB)是按照數(shù)據(jù)結構來組織,存儲和管理數(shù)據(jù)的倉庫,其本身可看作電子化的文件柜,用戶可以對文件中的數(shù)據(jù)進行增加﹑刪除﹑修改,查找等操作。需要注意的是,這里所說的數(shù)據(jù)(Data)不僅包括普通意義上的數(shù)字,還包括文字,圖像,聲音等,也就是說,凡是在計算機中用來描述事物的記錄都可稱作數(shù)據(jù)。下面介紹數(shù)據(jù)庫的基本特點02數(shù)據(jù)結構化數(shù)據(jù)庫系統(tǒng)實現(xiàn)了整體數(shù)據(jù)的結構化,這是數(shù)據(jù)庫的最主要的特征之一。這里所說的“整體”結構化,是指在數(shù)據(jù)庫中的數(shù)據(jù)不只是針對某個應用,而是面向全組織,面向整體的03實現(xiàn)數(shù)據(jù)共享因為數(shù)據(jù)是面向整體的,所以數(shù)據(jù)可以被多個用戶、多個應用程序共享使用,可以大幅度地減少數(shù)據(jù)冗余,節(jié)約存儲空間,避免數(shù)據(jù)之間的不相容性與不一致性04數(shù)據(jù)獨立性高數(shù)據(jù)的獨立性包含邏輯獨立性和物理獨立性,其中,邏輯獨立性是指數(shù)據(jù)庫中數(shù)據(jù)的邏輯結構和應用程序相互獨立,物理獨立性是指數(shù)據(jù)物理結構的變化不影響數(shù)據(jù)的邏輯結構必備知識技能:一、數(shù)據(jù)庫概述
數(shù)據(jù)統(tǒng)一管理與控制
數(shù)據(jù)的統(tǒng)一控制包含安全控制、完整控制和并發(fā)控制。簡單來說就是防止數(shù)據(jù)丟失,確保數(shù)據(jù)的正確有效,并且在同一時間內,允許用戶對數(shù)據(jù)進行多路存取,防止用戶之間的異常交互
hosts文件還可用于將IP地址映射到主機名。hosts文件位于/etc/hosts目錄下。通過修改hosts文件,我們可以手動指定某個域名(主機名)對應的IP地址,從而實現(xiàn)域名(主機名)解析。修改hosts文件需要root權限,在進行操作前請確認自己是否具備足夠的權限。如果你不確定要添加哪些內容到hosts文件,請謹慎操作。修改完hosts文件后,請務必重啟網絡服務或者重啟計算機以使修改生效必備知識技能:一、數(shù)據(jù)庫概述4.數(shù)據(jù)統(tǒng)一管理與控制
數(shù)據(jù)庫數(shù)據(jù)庫提供了一個存儲空間用來存儲各種數(shù)據(jù),可以將數(shù)據(jù)庫視為一個存儲數(shù)據(jù)的容器
數(shù)據(jù)庫管理系統(tǒng)專門用于創(chuàng)建和管理數(shù)據(jù)庫的一套軟件,介于應用程序和操作系統(tǒng)之間,如MySQL,Oracle,SQL,ServerDB2等。數(shù)據(jù)庫管理系統(tǒng)不僅具有最基本的數(shù)據(jù)管理功能,還能保證數(shù)據(jù)的完整性、安全性和可靠性
數(shù)據(jù)庫應用程序雖然已經有了數(shù)據(jù)庫管理系統(tǒng),但在很多情況下,數(shù)據(jù)庫管理系統(tǒng)無法滿足用戶對數(shù)據(jù)庫的管理。此時,就需要使用數(shù)據(jù)庫應用程序與數(shù)據(jù)庫管理系統(tǒng)進行通信、訪問和管理DBMS中存儲的數(shù)據(jù)必備知識技能:二、SQL語言
01SQL語言SQL(StructuredQueryLanguage,結構化查詢語言)是一種數(shù)據(jù)庫查詢語言和程序設計語言,主要用于管理數(shù)據(jù)庫中的數(shù)據(jù),如存取數(shù)據(jù)、查詢數(shù)據(jù)、更新數(shù)據(jù)等。SQL是IBM公司于1975—1979年之間開發(fā)出來的,在20世紀80年代,SQL被美國國家標準學會(AmericanNationalStandardsInstitute,ANSI)和國際標準化組織(InternationalOrganizationforStandardization,ISO)定義為關系型數(shù)據(jù)庫語言的標準,它由4部分組成,具體如下
02數(shù)據(jù)定義語言(DataDefinitionLanguage,DDL)數(shù)據(jù)庫定義語言主要用于定義數(shù)據(jù)庫、表等,其中包括CREATE語句,ALTER語句和DROP語句。CREATE語句用于創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表等,ALTER語句用于修改表的定義等,DROP語句用于刪除數(shù)據(jù)庫﹑刪除表等
03數(shù)據(jù)操作語言(DataManipulationLanguage,DML)數(shù)據(jù)操作語言主要用于對數(shù)據(jù)庫進行添加,修改和刪除操作,其中包括INSERT語句,UPDATE語句和DELETE語句。INSERT語句用于插入數(shù)據(jù),UPDATE語句用于修改數(shù)據(jù),DELETE語句用于刪除數(shù)據(jù)必備知識技能:二、SQL語言
數(shù)據(jù)查詢語言(DataQueryLanguage,DQL)數(shù)據(jù)查詢語言主要用于查詢數(shù)據(jù),也就是指SELECT語句,使用SELECT語句可以查詢數(shù)據(jù)庫中的一條數(shù)據(jù)或多條數(shù)據(jù)
數(shù)據(jù)控制語言(DataControlLanguage,DCL)數(shù)據(jù)控制語言主要用于控制用戶的訪問權限,其中包括GRANT語句,REVOKE語句,COMMIT語句和ROLLBACK語句。GRANT語句用于給用戶增加權限,REVOKE語句用于收回用戶的權限,COMMIT語句用于提交事務,ROLLBACK語句用于回滾事務數(shù)據(jù)庫中的操作都是通過SQL語句來完成的,而且在應用程序中也經常使用SQL語句,例如在Java語言中嵌入SQL語句,通過執(zhí)行Java語言來調用SQL語句,就可以完成數(shù)據(jù)的插入,修改﹑刪除、查詢等操作。不僅如此,SQL語句還可以嵌套在其他語言中,如C#語言、PHP語言等必備知識技能:三、常見的數(shù)據(jù)庫產品常見的數(shù)據(jù)庫產品
隨著數(shù)據(jù)庫技術的發(fā)展,數(shù)據(jù)庫產品越來越多,如Oracle、DB2、MongoDB、SQLServer、MySQL等Oracle數(shù)據(jù)庫
Oracle數(shù)據(jù)庫管理系統(tǒng)是由甲骨文(Oracle)公司開發(fā)的,在數(shù)據(jù)庫領域一直處于領先地位。目前,Oracle數(shù)據(jù)庫覆蓋了大、中、小型計算機等幾十種機型,成為世界上使用最廣泛的關系型數(shù)據(jù)庫管理系統(tǒng)(由二維表及其之間的關系組成的一個數(shù)據(jù)庫)之一Oracle數(shù)據(jù)庫管理系統(tǒng)采用標準的SQL,并經過美國國家標準技術所(NIST)測試。與IBMSQL/DS、DB2、INGRES、IDMS/R等兼容,而且它可以在UNIX、Windows等操作系統(tǒng)下工作。不僅如此,Oracle數(shù)據(jù)庫管理系統(tǒng)還具有良好的兼容性、可移植性和可連接性SQLServer數(shù)據(jù)庫
SQLServer是由微軟公司開發(fā)的一套關系型數(shù)據(jù)庫管理系統(tǒng),它已廣泛用于電子商務、銀行、保險、電力等行業(yè)SQLServer提供了對XML和Internet標準的支持,具有強大的、靈活的、基于Web的應用程序管理功能。而且界面友好、易于操作,深受廣大用戶的喜愛,但它只能在Windows平臺上運行,并對操作系統(tǒng)的穩(wěn)定性要求較高,因此很難處理日益增長的用戶數(shù)量DB2數(shù)據(jù)庫
DB2數(shù)據(jù)庫是由IBM公司研制的一種關系型數(shù)據(jù)庫管理系統(tǒng),主要應用于OS/2、Windows等平臺下,具有較好的可伸縮性,可支持從大型計算機到單用戶環(huán)境必備知識技能:三、常見的數(shù)據(jù)庫產品
MySQL數(shù)據(jù)庫MySQL是一種開放源代碼的關系型數(shù)據(jù)庫管理系統(tǒng)。開發(fā)者為瑞典MySQLAB公司,在2008年1月16日被Sun公司收購。而2009年,Sun又被Oracle收購。目前MySQL被廣泛地應用在Web的中小型網站中。由于其體積小、速度快、總體擁有成本低,尤其是免費以及開放源碼這一特點,許多中小型網站選擇了MySQL作為網站數(shù)據(jù)庫任務實施:一、安裝MySQL
步驟1:查詢原有的版本,CentOS7會自帶一個版本,如圖7-1-1rpm-qa|grepmariadb步驟2保證自己的虛擬機可以上網。測試方法可參照項目一的任務一,如果有問題,先解決不能上網問題。能ping通電子工業(yè)出版社官網即可步驟3:卸載原有的mariadb數(shù)據(jù)庫yum-yremovemariadb-libs步驟4:再次查詢原有的版本,是否卸載干凈,如圖7-1-2任務實施:一、安裝MySQL
rpm-qa|grepmariadb步驟5:再配置YUM源,在MySQL官網中下載YUM源rpm安裝包wgethttp///get/mysql57-community-release-el7-8.noarch.rpm步驟6:安裝MySQL源InstallMySQL57RPMyumlocalinstallmysql57-community-release-el7-8.noarch.rpm步驟7:檢查MySQL源是否安裝成功,如圖7-1-3任務實施:一、安裝MySQLyumrepolistenabled|grep"mysql.*-community.*"步驟8:安裝MySQLyuminstallmysql-community-server--nogpgcheck步驟9:啟動MySQLsystemctlstartmysqld設置開機自啟任務實施:一、安裝MySQL
systemctlenablemysqld
systemctldaemon-reload
步驟10:查詢MySQL啟動狀態(tài)
systemctlstatusmysqld
出現(xiàn)active,表示MySQL正常運行,到此MySQL安裝完畢任務實施:二、配置MySQL修改MySQL的一些配置步驟1:在/etc/f文件添加配置vim/etc/f插入以下字段sudovi/etc/mysql/mysql.conf.d/fdefault-password-lifetime=0#密碼永不過期任務實施:二、配置MySQL
validate-password=off#關閉密碼策略
character-set-server=utf8#編碼格式支持中文
[client]
default-character-set=utf8#編碼格式支持中文
[mysql]任務實施:二、配置MySQL
no-auto-rehashdefault-character-set=utf8#編碼格式支持中文步驟2:重啟mysqld服務servicemysqldrestart任務實施:三、使用MySQL
步驟1:MySQL查詢數(shù)據(jù)庫初始密碼,如圖7-1-4
grep'temporarypassword'/var/log/mysqld.log
步驟2:登錄MySQL,在終端命令窗口輸入下面命令
mysql-uroot-p
按照終端命令窗口提示輸入密碼即可成功登錄到mysql命令行
步驟3:修改root用戶的密碼為Jscfa2022$任務實施:三、使用MySQL
setpassword=password('Jscfa2022$')步驟4:檢查數(shù)據(jù)庫遠程訪問權限是否已經刪除成功,在命令窗口鍵入GrantOptionConfigurationgrantallon*.*toroot@'%'identifiedby'Jscfa2022$'withgrantoptionflushprivileges步驟5:查看有哪些數(shù)據(jù)庫showdatabases任務實施:三、使用MySQL步驟6:創(chuàng)建一個測試數(shù)據(jù)庫進行測試createdatabasemydb1步驟7:查看是否存在showdatabases步驟8:進入數(shù)據(jù)庫,在命令行鍵入usemydb1任務實施:三、使用MySQL
步驟9創(chuàng)建一個表格,表名為user,字段id為int,username為varchar長度為100createtableuser(idint,usernamevarchar(100))步驟10:檢查插入一條數(shù)據(jù),如圖7-1-5insertintouservalues(1,'張三')insertintouservalues(2,'tom')select*fromuser任務實施:三、使用MySQL
步驟11:查看現(xiàn)有的字符集,utf8表示可以支持中文,如圖7-1-6
showvariableslike'char%任務二Hbase安裝配置06任務工單:任務描述
HBase學習指南HBase,是一個基于Hadoop的分布式列式存儲系統(tǒng)。通過完成此項目,您將了解HBase的基本概念、安裝步驟和常見配置選項。您將學會如何在單節(jié)點和多節(jié)點環(huán)境中設置HBase,并了解如何調整配置以滿足不同的需求。最終,您將能夠運行和管理HBase集群,并具備解決常見安裝和配置問題的能力任務工單:任務準備
全班學生以4人左右為一組,各組選出組長。請組長組織組員查找相關資料,并組織討論和匯總問題1:如何配置HBASE集群?這涉及哪些方面問題2:HBASE的主要配置文件是什么問題3:如何啟動和停止HBASE服務?這涉及哪些命令必備知識技能:一、HBase介紹
HBase分布式數(shù)據(jù)庫特性Hadoop2.0之前,HBase是針對谷歌BigTable的開源實現(xiàn),是一個高可靠、高性能、面向列、可伸縮的分布式數(shù)據(jù)庫,主要用來存儲非結構化和半結構化的松散數(shù)據(jù)。HBase可以支持超大規(guī)模數(shù)據(jù)存儲,它可以通過水平擴展的方式,利用廉價計算機集群處理由超過10億行數(shù)據(jù)和數(shù)百萬列元素組成的數(shù)據(jù)表必備知識技能:二、HBase簡介從BigTable說起
BigTable是一個分布式存儲系統(tǒng),利用谷歌提出的MapReduce分布式并行計算模型來處理海量數(shù)據(jù),使用谷歌分布式文件系統(tǒng)GFS作為底層數(shù)據(jù)存儲,并采用Chubby提供協(xié)同服務管理,可以擴展到PB級別的數(shù)據(jù)和上千臺機器,具備廣泛應用性、可擴展性、高性能和高可用性等特點。從2005年4月開始,BigTable已經在谷歌公司的實際生產系統(tǒng)中使用,谷歌的許多項目都存儲在BigTable中,包括搜索、地圖、財經、打印、社交網站Orkut、視頻共享網站YouTube和博客網站Blogger等。這些應用無論在數(shù)據(jù)量方面(從URL到網頁到衛(wèi)星圖像)還是在延遲需求方面(從后端批量處理到實時數(shù)據(jù)服務),都對BigTable提出了截然不同的需求。盡管這些應用的需求大不相同,但是BigTable依然能夠為所有谷歌產品提供一個靈活的、高性能的解決方案。當用戶的資源需求隨著時間變化時,只需要簡單地往系統(tǒng)中添加機器,就可以實現(xiàn)服務器集群的擴展
總的來說,BigTable具備以下特性:支持大規(guī)模海量數(shù)據(jù)、分布式并發(fā)數(shù)據(jù)處理效率極高、易于擴展且支持動態(tài)伸縮、適用于廉價設備、適合于讀操作、不適合寫操作必備知識技能:二、HBase簡介HBase簡介
HBase是一個高可靠、高性能、面向列、可伸縮的分布式數(shù)據(jù)庫,是谷歌BigTable的開源實現(xiàn),主要用來存儲非結構化和半結構化的松散數(shù)據(jù)。HBase的目標是處理非常龐大的表,可以通過水平擴展的方式,利用廉價計算機集群處理由超過10億行數(shù)據(jù)和數(shù)百萬列元素組成的數(shù)據(jù)表
HBase利用HadoopMapReduce來處理HBase中的海量數(shù)據(jù),實現(xiàn)高性能計算;利用ZooKeeper作為協(xié)同服務,實現(xiàn)穩(wěn)定服務和失敗恢復;使用HDFS作為高可靠的底層存儲,利用廉價集群提供海量數(shù)據(jù)存儲能力。當然,HBase也可以直接使用本地文件系統(tǒng)而不用HDFS作為底層數(shù)據(jù)存儲方式,不過,為了提高數(shù)據(jù)可靠性和系統(tǒng)的健壯性,發(fā)揮HBase處理大數(shù)據(jù)量等功能,一般都使用HDFS作為HBase的底層數(shù)據(jù)存儲方式。此外,為了方便在HBase上進行數(shù)據(jù)處理,Sqoop為HBase提供了高效、便捷的RDBMS數(shù)據(jù)導入功能,Pig和Hive為HBase提供了高層語言支持必備知識技能:二、HBase簡介
HBase與傳統(tǒng)關系數(shù)據(jù)庫的對比分析關系數(shù)據(jù)庫從20世紀70年代發(fā)展到今天,已經是一種非常成熟穩(wěn)定的數(shù)據(jù)庫管理系統(tǒng),通常具備的功能包括面向磁盤的存儲和索引結構、多線程訪問、基于鎖的同步訪問機制、基于日志記錄的恢復機制和事務機制等但是,隨著Web2.0應用的不斷發(fā)展,傳統(tǒng)的關系數(shù)據(jù)庫已經無法滿足Web2.0的需求,無論在數(shù)據(jù)高并發(fā)方面,還是在高可擴展性和高可用性方面,傳統(tǒng)的關系數(shù)據(jù)庫都顯得力不從心,關系數(shù)據(jù)庫的關鍵特性是完善的事務機制和高效的查詢機制,在Web2.0時代也成為“雞肋”。包括HBase在內的非關系型數(shù)據(jù)庫的出現(xiàn),有效彌補了傳統(tǒng)關系數(shù)據(jù)庫的缺陷,在Web2.0應用中得到了大量使用HBase與傳統(tǒng)的關系數(shù)據(jù)庫的區(qū)別主要體現(xiàn)在以下幾個方面數(shù)據(jù)類型。關系數(shù)據(jù)庫采用關系模型,具有豐富的數(shù)據(jù)類型和存儲方式。HBase則采用了更加簡單的數(shù)據(jù)模型,它把數(shù)據(jù)存儲為未經解釋的字符串,用戶可以把不同格式的結構化數(shù)據(jù)和非結構化數(shù)據(jù)都序列化成字符串保存到HBase中,用戶需要自己編寫程序把字符串解析成不同的數(shù)據(jù)類型數(shù)據(jù)操作。關系數(shù)據(jù)庫中包含了豐富的操作,如插入、刪除、更新、查詢等,其中會涉及復雜的多表連接,通常是借助于多個表之間的主外鍵關聯(lián)來實現(xiàn)的。HBase操作則不存在復雜的表與表之間的關系,只有簡單的插入、查詢、刪除、清空等,因為HBase在設計上就避免了復雜的表與表之間的關系,通常只采用單表的主鍵查詢,所以它無法實現(xiàn)像關系數(shù)據(jù)庫中那樣的表與表之間的連接操作存儲模式。關系數(shù)據(jù)庫是基于行模式存儲的,元組或行會被連續(xù)地存儲在磁盤頁中。在讀取數(shù)據(jù)時,需要順序掃描每個元組,然后從中篩選出查詢所需要的屬性。如果每個元組只有少量屬性的值對于查詢是有用的,那么基于行模式存儲就會浪費許多磁盤空間和內存帶寬。HBase是基于列存儲的,每個列族都由幾個文件保存,不同列族的文件是分離的,它的優(yōu)點是:可以降低I/O開銷,支持大量并發(fā)用戶查詢,因為僅需要處理可以回答這些查詢的列,而不需要處理與查詢無關的大量數(shù)據(jù)行;同一個列族中的數(shù)據(jù)會被一起進行壓縮,由于同一列族內的數(shù)據(jù)相似度較高,因此可以獲得較高的數(shù)據(jù)壓縮比數(shù)據(jù)索引。關系數(shù)據(jù)庫通常可以針對不同列構建復雜的多個索引,以提高數(shù)據(jù)訪問性能。與關系數(shù)據(jù)庫不同的是,HBase只有一個索引——行鍵,通過巧妙的設計,HBase中的所有訪問方法,或者通過行鍵訪問,或者通過行鍵掃描,從而使得整個系統(tǒng)不會慢下來。由于HBase位于Hadoop框架之上,因此可以使用HadoopMapReduce來快速、高效地生成索引表數(shù)據(jù)維護。在關系數(shù)據(jù)庫中,更新操作會用最新的當前值去替換記錄中原來的舊值,舊值被覆蓋后就不會存在。而在HBase中執(zhí)行更新操作時,并不會刪除數(shù)據(jù)舊的版本,而是生成一個新的版本,舊有的版本仍然保留可伸縮性。關系數(shù)據(jù)庫很難實現(xiàn)橫向擴展,縱向擴展的空間也比較有限。相反,HBase和BigTable這些分布式數(shù)據(jù)庫就是為了實現(xiàn)靈活的水平擴展而開發(fā)的,因此能夠輕易地通過在集群中增加或者減少硬件數(shù)量來實現(xiàn)性能的伸縮但是,相對于關系數(shù)據(jù)庫來說,HBase也有自身的局限性,如HBase不支持事務,因此無法實現(xiàn)跨行的原子性必備知識技能:三、HBase訪問接口HBase訪問方式概覽HBase提供了NativeJavaAPI、HBaseShell、ThriftGateway、RESTGateway、Pig、Hive等多種訪問方式,表4-2給出了HBase訪問接口的類型、特點和使用場合必備知識技能:四、HBase數(shù)據(jù)模型
HBase數(shù)據(jù)模型數(shù)據(jù)模型是理解一個數(shù)據(jù)庫產品的核心,本節(jié)介紹了HBase列族數(shù)據(jù)模型,包括列族、列限定符、單元格、時間戳等概念。并闡述了HBase數(shù)據(jù)庫的概念視圖和物理視圖的差別
數(shù)據(jù)模型概述HBase是一個稀疏、多維度、排序的映射表,這張表的索引是行鍵、列族、列限定符和時間戳每個值是一個未經解釋的字符串,沒有數(shù)據(jù)類型用戶在表中存儲數(shù)據(jù),每一行都有一個可排序的行鍵和任意多的列表在水平方向由一個或者多個列族組成,一個列族中可以包含任意多個列,同一個列族里面的數(shù)據(jù)存儲在一起列族支持動態(tài)擴展,可以很輕松地添加一個列族或列,無需預先定義列的數(shù)量以及類型,所有列均以字符串形式存儲,用戶需要自行進行數(shù)據(jù)類型轉換由于同一張表里面的每一行數(shù)據(jù)都可以有截然不同的列,因此對于整個映射表的每行數(shù)據(jù)而言,有些列的值就是空的,所以說HBase是稀疏的在HBase中執(zhí)行更新操作時,并不會刪除數(shù)據(jù)的舊版本,而是生成一個新的版本,舊的版本仍然保留,HBase可以設置允許保留的版本數(shù)量客戶端可以選擇獲取距離某個時間最近的版本,或者一次獲取所有版本如果在查詢的時候不提供時間戳,那么會返回距離現(xiàn)在最近的那一個版本的數(shù)據(jù),因為在存儲的時候,數(shù)據(jù)會按照時間戳排序HBase提供了兩種數(shù)據(jù)版本回收方式:一是保存數(shù)據(jù)的最后n個版本;二是保存最近一段時間內的版本(如最近7天)必備知識技能:四、HBase數(shù)據(jù)模型
數(shù)據(jù)模型的相關概念
HBase實際上就是一個稀疏、多維、持久化存儲的映射表,它采用行鍵(RowKey)、列族(ColumnFamily)、列限定符(ColumnQualifier)和時間戳(Timestamp)進行索引,每個值都是未經解釋的字節(jié)數(shù)組byte[]
下面具體介紹HBase數(shù)據(jù)模型的相關概念必備知識技能:四、HBase數(shù)據(jù)模型2.數(shù)據(jù)模型的相關概念
表HBase采用表來組織數(shù)據(jù),表由行和列組成,列劃分為若干個列族
行每個HBase表都由若干行組成,每一行由行鍵(RowKey)來標識訪問表中的行只有3種方式:通過單個行鍵訪問;通過一個行鍵的區(qū)間來訪問;全表掃描行鍵可以是任意字符串(最大長度是64KB,實際應用中長度一般為10~100字節(jié)),在HBase內部,行鍵保存為字節(jié)數(shù)組存儲時,數(shù)據(jù)按照行鍵的字典序排序存儲在設計行鍵時,要充分考慮這個特性,將經常一起讀取的行存儲在一起必備知識技能:四、HBase數(shù)據(jù)模型
列族一個HBase表被分組成許多“列族”的集合,它是基本的訪問控制單元列族需要在表創(chuàng)建時就定義好,數(shù)量不能太多(HBase的一些缺陷使得列族數(shù)量只限于幾十個),而且不要頻繁修改存儲在一個列族當中的所有數(shù)據(jù),通常都屬于同一種數(shù)據(jù)類型,這通常意味著具有更高的壓縮率表中的每個列都歸屬于某個列族,數(shù)據(jù)可以被存放到列族的某個列下面,但是在把數(shù)據(jù)存放到這個列族的某個列下面之前,必須首先創(chuàng)建這個列族在創(chuàng)建完成一個列族以后,就可以使用同一個列族當中的列列名都以列族作為前綴例如,courses:history和courses:math這兩個列都屬于courses這個列族在HBase中,訪問控制、磁盤和內存的使用統(tǒng)計都是在列族層面進行的實際應用中,我們可以借助列族上的控制權限幫助實現(xiàn)特定的目的比如,我們可以允許一些應用能夠向表中添加新的數(shù)據(jù),而另一些應用則只允許瀏覽數(shù)據(jù)HBase列族還可以被配置成支持不同類型的訪問模式比如,一個列族也可以被設置成放入內存當中,以消耗內存為代價,從而換取更好的響應性能列限定符列族里的數(shù)據(jù)通過列限定符(或列)來定位列限定符不用事先定義,也不需要在不同行間保持一致列限定符沒有數(shù)據(jù)類型,總被視為字節(jié)數(shù)組byte[]單元格在HBase表中,通過行、列族和列限定符確定一個“單元格”(Cell)單元格中存儲的數(shù)據(jù)沒有數(shù)據(jù)類型,總被視為字節(jié)數(shù)組byte[]每個單元格中可以保存一個數(shù)據(jù)的多個版本,每個版本對應一個不同的時間戳必備知識技能:四、HBase數(shù)據(jù)模型時間戳每個單元格都保存著同一份數(shù)據(jù)的多個版本,這些版本采用時間戳進行索引每次對一個單元格執(zhí)行操作(新建、修改、刪除)時,HBase都會隱式地自動生成并存儲一個時間戳時間戳一般是64位整型,可以由用戶自己賦值(自己生成唯一時間戳可以避免應用程序中出現(xiàn)數(shù)據(jù)版本沖突),也可以由HBase在數(shù)據(jù)寫入時自動賦值一個單元格的不同版本是根據(jù)時間戳降序的順序進行存儲的,這樣,最新的版本可以被最先讀取數(shù)據(jù)坐標HBase使用坐標來定位表中的數(shù)據(jù),也就是說,每個值都是通過坐標來訪問的。對于我們熟悉的關系數(shù)據(jù)庫而言,數(shù)據(jù)定位可以理解為采用“二維坐標”,即根據(jù)行和列就可以確定表中的具體的值。但是,HBase中需要根據(jù)行鍵、列族、列限定符和時間戳來確定一個單元格,因此可以視為一個“四維坐標”,即[行鍵,列族,列限定符,時間戳]任務實施:配置shell文件
進入hbase的目錄中的conf目錄
cd/usr/local/src/hbase-1.3.1/conf
修改配置文件hbase-env.sh,輸入
vimhbase-env.sh任務實施:配置shell文件
步驟1:配置JAVA_HOME值,將“#exportJAVA_HOME”開頭的這一行替換成如下exportJAVA_HOME=/usr/local/src/jdk1.8.0_221步驟2編輯HBASE_CLASSPATH路徑,將“#exportHBASE_CLASSPATH”開頭的這一行替換成如下HBASECLASSPATH配置exportHBASE_CLASSPATH=/usr/local/src/hbase-1.3.1/conf任務實施:配置核心文件
步驟1:修改hbase-site.xml文件,清空該文件,輸入以下代碼
<configuration>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>任務實施:配置核心文件<property><name>hbase.rootdir</name><value>hdfs://master:9000/hbase</value></property><property><name>hbase.zookeeper.quorum</name>任務實施:配置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院錄入員考試題及答案
- 導醫(yī)崗前培訓試題及答案
- 初中化學試題解釋及答案
- 九江市贛北勞動保障事務代理所招聘勞務派遣制員工參考題庫必考題
- 北京保障房中心有限公司面向社會招聘法律管理崗1人備考題庫必考題
- 北川縣2025年機關事業(yè)單位縣內公開考調工作人員(8人)考試備考題庫必考題
- 合江縣2025年下半年公開考調事業(yè)單位工作人員的備考題庫必考題
- 招38人!興??h公安局2025年招聘警務輔助人員參考題庫必考題
- 江西省水務集團有限公司2025年第三批社會招聘【34人】備考題庫附答案
- 眉山市發(fā)展和改革委員會關于市項目工作推進中心公開選調事業(yè)人員的備考題庫附答案
- 2026年大連雙D高科產業(yè)發(fā)展有限公司公開選聘備考題庫及答案詳解(奪冠系列)
- 2026河南鄭州信息工程職業(yè)學院招聘67人參考題庫含答案
- 團隊建設與協(xié)作能力提升工作坊指南
- 客房清掃流程培訓課件
- 2026年中國煙草招聘筆試綜合知識題庫含答案
- 醫(yī)療機構藥品配送服務評價體系
- 醫(yī)療資源合理分配
- 婦科微創(chuàng)術后護理新進展
- 幼兒園大蝦課件
- 2025新疆能源(集團)有限責任公司共享中心招聘備考題庫(2人)帶答案詳解(完整版)
- 2025至2030中國超純水(UPW)系統(tǒng)行業(yè)項目調研及市場前景預測評估報告
評論
0/150
提交評論