版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Hadoop深入淺出案例驅(qū)動實戰(zhàn)中程在線(北京)科技有限公司內(nèi)部教程注意保密Hive的安裝和配置、原理、開發(fā)課程目標(biāo)Hadoop安裝、配置與管理HDFS原理及開發(fā),HDFS文件管理Map-Reduce原理及開發(fā)Hbase的安裝和配置、原理、開發(fā)2課程安排day1Step3
云計算Hadoop安裝、配置大數(shù)據(jù)Hadoop介紹HDFS介紹與實戰(zhàn)MapReduce介紹與實戰(zhàn)Hbase介紹與實戰(zhàn)Hive介紹與實戰(zhàn)疑難解答day2day33提前準(zhǔn)備提前準(zhǔn)備自我介紹1、工作年限;2、所在部門;3、是否精通Linux;4、是否精通Java;5、是否安裝過Hadoop;學(xué)習(xí)Hadoop的目的Hadoop是IT行業(yè)一個新的熱點,是云計算大數(shù)據(jù)處理的一個具體實現(xiàn)。Hadoop本身具有很高的技術(shù)含量,是IT工程師學(xué)習(xí)的首選。Hadoop商業(yè)價值日益增長,是商業(yè)企業(yè)大數(shù)據(jù)處理的首選。大數(shù)據(jù)時代來臨一分鐘內(nèi),互聯(lián)網(wǎng)發(fā)生了什么?YouTube增加72小時視頻Google進行200萬次搜索Spotify增加14首新音樂新增域名70個iTunes下載音樂1.5萬首新增網(wǎng)站571個每分鐘發(fā)郵件2.04億封LinkedIn職位搜索1.1萬次亞馬遜銷售8.3萬美元Snapchat分享照片10.4萬張Twitter發(fā)“Tweets”27.8萬則Flickr照片瀏覽2000萬次Skype通話140萬分鐘Facebook增加350GB數(shù)據(jù)、增180個“贊”、每秒增加新帖子4.1萬8古代,人們用牛來拉重物,當(dāng)一頭牛拉不動一根圓木時,他們不曾想過培育更大更壯的牛。同樣,我們也不需要嘗試開發(fā)高級計算機,而應(yīng)嘗試著結(jié)合使用更多計算機系統(tǒng)。格蕾斯.霍珀大數(shù)據(jù)云計算大數(shù)據(jù)互聯(lián)網(wǎng)營銷10你準(zhǔn)準(zhǔn)備備好好了了嗎嗎??千載載難難逢逢的的機機會會IT界界的的又又一一桶桶金金11開始始云云計計算算之之旅旅2023/1/7什么么是是云云計計算算??2023/1/7什么么是是云云計計算算??搜索索網(wǎng)絡(luò)絡(luò)購購物物QQ微博博微信信………不識識廬廬山山真真面面目目,,只只緣緣身身在在此此山山中中云計計算算歷歷史史2023/1/7網(wǎng)格計算云計算云計算和網(wǎng)網(wǎng)格計算在在Google中的搜索趨趨勢15云計算發(fā)源于搜索引引擎平臺,是是互聯(lián)網(wǎng)企業(yè)業(yè)在創(chuàng)業(yè)階段段基于追求低低成本、高性性能、以及資資源靈活分配配與應(yīng)用快速速布署的考慮慮而開發(fā)出一一種IT系統(tǒng)實現(xiàn)技術(shù)術(shù)。云計算利用大規(guī)模低低成本運算單單元通過IP網(wǎng)絡(luò)連接,以以提供各種計計算服務(wù)的IT技術(shù)。1/7/202316云計算定義云計算就是通通過網(wǎng)絡(luò)把信信息技術(shù)當(dāng)作作服務(wù)來使用用核心理念最典型代表:Google搜索引擎典型代表云計算是網(wǎng)格格計算、分布布式計算、并并行計算、效效用計算、網(wǎng)網(wǎng)絡(luò)存儲、虛虛擬化、負(fù)載載均衡、網(wǎng)絡(luò)絡(luò)技術(shù)等一些些傳統(tǒng)計算方方法的融合體體。核心理念:通通過不斷提高高“云”的處處理能力而減減少用戶終端端的處理負(fù)擔(dān)擔(dān),使用戶終終端簡化成一一個單純的輸輸入輸出設(shè)備備。17云計算特征按需自助服務(wù)廣泛的網(wǎng)絡(luò)接入Title服務(wù)可計量資源池快速彈性1/7/2023云計算分類私有云公有云混合云InfrastructureasaService以服務(wù)的形式式提供虛擬硬硬件資源,如如虛擬主機/存儲/網(wǎng)絡(luò)絡(luò)等資源。用戶無需購買買服務(wù)器、網(wǎng)網(wǎng)絡(luò)設(shè)備、存存儲設(shè)備,只只需通過互聯(lián)聯(lián)網(wǎng)租賃即可可搭建自己的的應(yīng)用系統(tǒng)典型應(yīng)用:AmazonWebService(AWS)PlatformasaService提供應(yīng)用服務(wù)務(wù)引擎,如互互聯(lián)網(wǎng)應(yīng)用編編程接口/運運行平臺等。。用戶基于該應(yīng)應(yīng)用服務(wù)引擎擎,可以構(gòu)建建該類應(yīng)用。。典型應(yīng)用:GoogleAppEngine,F,MicrosoftAzure服務(wù)務(wù)平臺SoftwareasaService用戶通過Internet(如瀏瀏覽器)來使使用軟件。用用戶不必購買買軟件,只需需按需租用軟軟件典型應(yīng)用:GoogleDoc,S,OracleCRMOnDemand,OfficeLiveWorkspace面向外部用戶戶需求,通過過開放網(wǎng)絡(luò)提提供云計算服服務(wù)IDC,GoogleApp,Saleforce在線CRM大型企業(yè)按照照云計算的架架構(gòu)搭建平臺臺,面向企業(yè)業(yè)內(nèi)部需求提提供云計算服服務(wù)企業(yè)內(nèi)部數(shù)據(jù)據(jù)中心等兼顧以上兩種種情況的云計計算服務(wù)AmazonWebServer等既為企企業(yè)內(nèi)部又為為外部用戶提提供云計算服服務(wù)按提供的服務(wù)務(wù)類型按云服務(wù)的對對象IAASPaaSSaaSIaaS分布存儲分布計算云計算核心技技術(shù)云計算算產(chǎn)生生的前前提節(jié)約成成本廣泛的的網(wǎng)絡(luò)絡(luò)接入入虛擬化化技術(shù)術(shù)的成成熟計算能能力提提升大數(shù)據(jù)據(jù)的出出現(xiàn)競爭2023/1/7節(jié)約成成本22廣泛的的網(wǎng)絡(luò)絡(luò)接入入2023/1/7虛擬化化技術(shù)術(shù)的成成熟2023/1/724虛擬化化技術(shù)術(shù)的成成熟2023/1/725虛擬化化技術(shù)術(shù)的成成熟2023/1/726計算算能能力力提提升升2023/1/727大數(shù)數(shù)據(jù)據(jù)的的出出現(xiàn)現(xiàn)2023/1/728云計計算算產(chǎn)產(chǎn)生生原原動動力力2023/1/729云計計算算發(fā)發(fā)展展現(xiàn)現(xiàn)狀狀2023/1/7云參參考考架架構(gòu)構(gòu)--AWS2023/1/7云參考考架構(gòu)構(gòu)--Google2023/1/732BusinesssupportVirtualizationManagement(OpenStack、HMC、SVC/TPC、TSM)PhysicalresourcelayerCloudplatformusersCloudmanagementplatformUsermanagementBillingmanagement………ServicerequestmanagementRBACMonitoringandreportingOSSWorkflowmanagementConfigurationreal-timedataCallCenterCRMBankinterfaceMinicomputer(3computer)PCServer(10computer)Storage(2computer)LoadbalancingSecurity,disasterrecovery,backup,virtualizationMinicomputer(3computer)PCServer(10computer)Storage(1computer)云參考架架構(gòu)33云計算的的價值云部署35以分鐘時時間部署署復(fù)雜企企業(yè)應(yīng)用用36以分鐘時時間部署署復(fù)雜企企業(yè)應(yīng)用用37以分鐘時時間部署署復(fù)雜企企業(yè)應(yīng)用用38誰需要云云計算2023/1/739Hadoop集集群搭建建40三種運行行模式安裝簡單單,幾乎乎不用作作任何配配置,但但僅限于于調(diào)試用用途在單節(jié)點點上同時時啟動nam正常的Hadoop單機模式式偽分布模模式完全分布布式模式式安裝和配配置步驟驟參考《Hadoop-1.0.0集群安安裝.pdf》》42VirtualBox安裝虛虛擬機設(shè)置虛擬擬網(wǎng)卡為為host-only模式共享主機機網(wǎng)卡配置虛擬擬機VirtualBoxHost-OnlyEthernetAdapter網(wǎng)網(wǎng)卡IP為虛擬機NetworkAdapterBridged(橋接接模式)Bridged(橋接接模式):默認(rèn)認(rèn)使用VMnet0,不提供供DHCP服務(wù),需需要手動動配置IP、網(wǎng)網(wǎng)關(guān)、子子網(wǎng)掩碼碼等虛擬機NetworkAdapterNAT(網(wǎng)絡(luò)地地址轉(zhuǎn)換換模式)NAT(網(wǎng)絡(luò)地地址轉(zhuǎn)換換模式):默認(rèn)認(rèn)使用VMnet8,提供DHCP服務(wù)虛擬擬機機NetworkAdapterHost-only(主主機機模模式式)Host-only(主主機機模模式式):默默認(rèn)認(rèn)使使用用VMnet1,提提供供DHCP服務(wù)務(wù)當(dāng)要要組組成成一一個個與與物物理理網(wǎng)網(wǎng)絡(luò)絡(luò)相相隔隔離離的的虛虛擬擬網(wǎng)網(wǎng)絡(luò)絡(luò)時時,,無無疑疑非非常常適適合合使使用用Host-only模模式式。。46安裝裝Linux操操作作系系統(tǒng)統(tǒng)安裝裝的的過過程程中中選選擇擇OpenSSH支支持持47LinuxShellvimkdirtarchmodchowncpmvSSH安裝裝安裝SSHyuminstallssh啟動SSHservicesshdstart設(shè)置開開機運運行chkconfigsshdonSSH無密密碼登登錄hduser@master:~$ssh-keygen-trsa-P""hduser@master:~$cat$HOME/.ssh/id_rsa.pub>>$HOME/.ssh/authorized_keyshduser@master:~$sshmaster.hadoophduser@master:~$ssh-copy-id-i$HOME/.ssh/id_rsa.pubhduser@slave1.hadoophduser@master:~$ssh-copy-id-i$HOME/.ssh/id_rsa.pubhduser@slave2.hadoopJava安安裝#mkdir/usr/local/java#cd/usr/local/java#chmodu+xjdk-6u30-linux-i586.bin#./jdk-6u30-linux-i586.bin#vi/etc/profile添添加環(huán)境境變量exportJAVA_HOME=/usr/java/jdk1.6.0_30/exportCLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexportHADOOP_HOME=/usr/local/hadoopexportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin執(zhí)行#source/etc/profile,使使環(huán)境變量量立即生效效51禁用IPV6在所有機器器上操作#vi/etc/modprobe.d/anaconda.conf添加如下行行installipv6/bin/true重新啟動系系統(tǒng)生效CloneMaster虛虛擬機選擇重新初初始化網(wǎng)卡卡選項完全Clone啟動新的虛虛擬機修改hostname修改網(wǎng)卡,,讓網(wǎng)卡生生效,能ping通通MasterCloneMaster配配置網(wǎng)卡1)必須須確認(rèn)克隆隆(clone)的的CentOS6的各個網(wǎng)網(wǎng)卡的MAC是否有有重復(fù)或與與其它虛擬擬主機重復(fù)復(fù),最好利利用其網(wǎng)卡卡工具刷新新一下,生生成新的MAC。使使用vi命命令,打開開/etc/sysconfig/network-scripts/下下的ifcfg-eth*(*代表0~n個網(wǎng)網(wǎng)卡序號),把這個個新的MAC修改進進去。2))修修改改/etc/udev/rules.d/70-persistent-net.rules文文件件,,刪刪除除原原來來的的eth0那那一一段段,,把把后后增增加加的的eth1改改為為eth0。。如如果果有有多多塊塊網(wǎng)網(wǎng)卡卡以以此此類類推推;;如如果果只只有有一一行行,,則則把把““eth1””改改為為eth0即即可可。。3)使用start_udev命令重新新檢測硬件;;4)用servicenetworkrestart命命令重啟啟下網(wǎng)絡(luò)。。54HDFS重重要配置項項<!--core-site.xml--><configuration><property><name>hadoop.tmp.dir</name><value>/app/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property>55HDFS重重要配置項項<!--core-site.xml--><property><name></name><value>hdfs://master.hadoop:9000</value><description></description></property></configuration>HDFS重重要配置項項<!--mapred-site.xml--><configuration><property><name>mapred.job.tracker</name><value>master.hadoop:9001</value><description>ThehostandportthattheMapReducejobtrackerrunsat.If"local",thenjobsarerunin-processasasinglemapandreducetask.</description></property></configuration>HDFS重重要配置項項<!--hdfs-site.xml--><configuration><property><name>dfs.replication</name><value>3</value><description></description></property></configuration>修改配置文文件$vi$HADOOP_HOME/conf/masters修改localhost為master.hadoop$vi$HADOOP_HOME/conf/slaves修改localhost為master.hadoop添加slave1.hadoopslave2.hadoop59創(chuàng)建hadoop.tmp.dir目目錄#mkdir-p/app/hadoop/tmp#chownhduser:hadoop/app/hadoop/tmp#...andifyouwanttotightenupsecurity,chmodfrom755to750...#chmod750/app/hadoop/tmp部署slave節(jié)點點將master.hadoop上安裝裝配置完成成的hadoop文文件夾復(fù)制制到slave1.hadoop和slave2.hadoop:hduser@master:hadoop$scp-r/usr/local/hadoophduser@slave1.hadoop:/usr/local/hduser@master:hadoop$scp-r/usr/local/hadoophduser@slave2.hadoop:/usr/local/格式化HDFS文件件系統(tǒng)在master.hadoop上使用用hduser操作作hduser@master:hadoop$bin/hadoopnamenode-format啟動Hadoop使用hduser用用戶,在master.hadoop上bin/start-all.sh啟動hduser@master:hadoop$bin/start-all.sh用jps命命令看到如如下輸出,,則安裝成成功DataNodeJpsNameNodeJobTrackerTaskTrackerSecondaryNameNodeWeb查看看HDFS信息查看集群狀狀態(tài)00:5003000:50060大數(shù)據(jù)大數(shù)據(jù)時代代來臨一分鐘內(nèi),,互聯(lián)網(wǎng)發(fā)發(fā)生了什么么?YouTube增加加72小時時視視頻頻Google進行行200萬次次搜搜索索Spotify增加加14首新新音音樂樂新增增域域名名70個iTunes下載載音音樂樂1.5萬首首新增增網(wǎng)網(wǎng)站站571個每分分鐘鐘發(fā)發(fā)郵郵件件2.04億封封LinkedIn職位位搜搜索索1.1萬次次亞馬馬遜遜銷銷售售8.3萬美美元元Snapchat分享享照照片片10.4萬張張Twitter發(fā)““Tweets””27.8萬則則Flickr照片瀏覽覽2000萬次Skype通話140萬分鐘Facebook增加350GB數(shù)據(jù)、增增180個“贊””、每秒秒增加新新帖子4.1萬大數(shù)據(jù)2023/1/7大數(shù)據(jù)&數(shù)數(shù)據(jù)結(jié)構(gòu)構(gòu)2023/1/768大數(shù)據(jù)2023/1/7大數(shù)據(jù)存存儲2023/1/770大數(shù)據(jù)的的4V2023/1/7數(shù)據(jù)量時時效效性多多變變性價價值性71Hadoop72大數(shù)據(jù)據(jù)的服服務(wù)器器2023/1/7大數(shù)據(jù)據(jù)分析析2023/1/709年4月59秒排序序500GB(在1400個節(jié)點點上)173分鐘內(nèi)內(nèi)排序序100TB數(shù)據(jù)(在3400個節(jié)點點上)74大數(shù)據(jù)據(jù)分析析2023/1/71.可視化分析2.數(shù)據(jù)挖掘算法法3.預(yù)測性分析能能力4.語義引擎5.數(shù)據(jù)質(zhì)量和數(shù)數(shù)據(jù)管理75Hadoop的思想之源源:Google下一步Googlewhat?Google搜索引擎GmailGoogleearthGoogle翻譯Google+76Google低成本之道道1234不使用超級計計算機,不使使用專業(yè)存儲儲。大量使用普通通的pc服務(wù)器,提供供有冗余的集集群服務(wù)器器多個數(shù)據(jù)中心心運營商向Google倒付費77Google面臨的難題題大量網(wǎng)頁如何存儲?搜索算法Rank計算問題1/7/202378Google關(guān)關(guān)鍵鍵技技術(shù)術(shù)和和思思想想1GFS2Map-Reduce3Bigtable7Google三三大大論論文文TheGoogleFileSystems.pdfMapReduceSimpliedDataProcessingonLargeClusters.pdfBigtableADistributedStorageSystemforStructuredData.pdfTheChubbylockservice.pdfLogicalTimeAWaytoCaptureCausality.pdfLog-StructuredFileSystem.pdf80Hadoop從何而來Hadoop的源起———Lucene對于大數(shù)量的的場景,Lucene仍面對與Google同樣的困難。。Lucene的目的是為軟軟件開發(fā)人員員提供一個簡簡單易用的工工具包,以方方便的在目標(biāo)標(biāo)系統(tǒng)中實現(xiàn)現(xiàn)全文檢索的的功能,或者者是以此為基基礎(chǔ)建立起完完整的全文檢檢索引擎。。DougCutting開創(chuàng)的開源軟軟件,用java書寫代碼,實實現(xiàn)與Google類似的全文搜搜索功能,提提供了全文檢檢索引擎的架架構(gòu),包括完完整的查詢引引擎和索引引引擎。.LuceneHadoop發(fā)展歷史LuceneNutchHadoopHadoop群雄逐鹿亞馬遜百度云Apache,MapR,HotonWorks,IntelIBMHPDell浪潮云創(chuàng)存儲云服務(wù)解決方案一體機發(fā)行版本Hadoop目前Hadoop達到的的高度實現(xiàn)云計算的的事實標(biāo)準(zhǔn)開開源軟件包含數(shù)十個具具有強大生命命力的子項目目已經(jīng)能在數(shù)千千節(jié)點上運行行,處理數(shù)據(jù)據(jù)量和排序時時間不斷打破破世界紀(jì)錄Hadoop定義Hadoop一個分布布式系統(tǒng)基礎(chǔ)礎(chǔ)架構(gòu),由Apache基金會開發(fā)發(fā)。用戶可以以在不了解分分布式底層細(xì)細(xì)節(jié)的情況下下,開發(fā)分布布式程序。充充分利用集群群的威力高速速運算和存儲儲。Hadoop由HDFS、MapReduce、HBase、Hive和ZooKeeper等成成員組成。HDFS和和MapReduce是是兩個最基基礎(chǔ)最重要的的成員。Hadoop子項目家族族PigHadoop客戶端使用類似于SQL的面向向數(shù)據(jù)流的語語言PigLatinPigLatin可以以完成排序,,過濾,求和和,聚組,關(guān)關(guān)聯(lián)等操作,,可以支持自自定義函數(shù)Pig自動動把PigLatin映射射為Map-Reduce作作業(yè)上上傳到到集群群運行行,減減少用用戶編編寫Java程程序的的苦惱惱三種種運運行行方方式式::Gruntshell,,腳腳本本方方式式,,嵌嵌入入式式HBaseGoogleBigtable的的開開源源實實現(xiàn)現(xiàn)列式式數(shù)數(shù)據(jù)據(jù)庫庫可集集群群化化可以以使使用用shell、、web、、api等等多多種種方方式式訪訪問問適合合高高讀讀寫寫((insert))的的場場景景HQL查查詢詢語語言言NoSQL的的典典型型代代表表產(chǎn)產(chǎn)品品Hive數(shù)據(jù)倉庫庫工具。。可以把把Hadoop下的原原始結(jié)構(gòu)構(gòu)化數(shù)據(jù)據(jù)變成Hive中的表表支持一種種與SQL幾乎乎完全相相同的語語言HiveQL。除除了不支支持更新新、索引引和事務(wù)務(wù),幾乎乎SQL的其它它特征都都能支持持可以看成成是從SQL到到Map-Reduce的映映射器提供shell、JDBC/ODBC、Thrift、、Web等接口口ZookeeperGoogleChubby的開開源實實現(xiàn)用于協(xié)協(xié)調(diào)分分布式式系統(tǒng)統(tǒng)上的的各種種服務(wù)務(wù)。例例如確確認(rèn)消消息是是否準(zhǔn)準(zhǔn)確到到達,,防止止單點點失效效,處處理負(fù)負(fù)載均均衡等等應(yīng)用場場景::Hbase,,實現(xiàn)現(xiàn)Namenode自動動切換換工作原原理::領(lǐng)導(dǎo)導(dǎo)者,,跟隨隨者以以及選選舉過過程Sqoop用于在Hadoop和關(guān)系型型數(shù)據(jù)庫之之間交換數(shù)數(shù)據(jù)通過JDBC接口連連入關(guān)系型型數(shù)據(jù)庫Avro數(shù)據(jù)序列化化工具,由由Hadoop的創(chuàng)創(chuàng)始人DougCutting主持持開發(fā)用于支持持大批量數(shù)數(shù)據(jù)交換的的應(yīng)用。支支持二進制制序列化方方式,可以以便捷,快快速地處理理大量數(shù)據(jù)據(jù)動態(tài)態(tài)語言言友好好,Avro提提供的的機制制使動動態(tài)語語言可可以方方便地地處理理Avro數(shù)數(shù)據(jù)。。Thrift接口Chukwa架構(gòu)在Hadoop之之上的數(shù)數(shù)據(jù)采集集與分析析框架主要進行行日志采采集和分分析通過安裝裝在收集集節(jié)點的的“代理理”采集集最原始始的日志志數(shù)據(jù)代理將數(shù)數(shù)據(jù)發(fā)給給收集器器收集器定定時將數(shù)數(shù)據(jù)寫入入Hadoop集群指定定時時啟動的的Map-Reduce作業(yè)業(yè)隊數(shù)據(jù)據(jù)進行加加工處理理和分析析Hadoop基基礎(chǔ)管理理中心((HICC)最最終展示示數(shù)據(jù)CassandraNoSQL,分分布式的的Key-Value型數(shù)據(jù)據(jù)庫,由由Facebook貢貢獻與Hbase類類似,也也是借鑒鑒GoogleBigtable的思想想體系只有順序序?qū)?,沒沒有隨機機寫的設(shè)設(shè)計,滿滿足高負(fù)負(fù)荷情形形的性能能需求Hadoop特特點可擴展經(jīng)濟AB高效D可靠C可架設(shè)于任何pc機上分布式文件系統(tǒng)的高效數(shù)據(jù)交互實現(xiàn)以及MapReduce結(jié)合LocalData處理的模式,為高效處理海量的信息作了基礎(chǔ)準(zhǔn)備不論是存儲的可擴展性還是計算的可擴展行,都是Hadoop的根本分布式文件系統(tǒng)的備份恢復(fù)機制以及MapReduce的任務(wù)監(jiān)控保證了分布式處理的可靠性基礎(chǔ)架構(gòu)構(gòu)Hadoop與與Google比較后端系統(tǒng)統(tǒng):Google數(shù)據(jù)據(jù)分析平平臺Google集集群管管理系統(tǒng)統(tǒng)存儲+計計算(HDFS+MapReduce)數(shù)據(jù)倉庫庫(Hive)內(nèi)存數(shù)據(jù)據(jù)庫(Hbase)批處理(Pig)BSP模模型(Hama)分布式鎖鎖(Zoomkeeper)子系統(tǒng)位位置Hadoop應(yīng)應(yīng)用案例例國內(nèi)應(yīng)用用情況案例1::淘寶每日新增增數(shù)據(jù)20T累積數(shù)據(jù)據(jù)14P2000+服務(wù)器的的云計算算平臺每天處理理100,000+作業(yè)任務(wù)務(wù),包括100+新增作業(yè)業(yè)任務(wù)每天處理理1P+數(shù)據(jù),包括0.5%新增數(shù)據(jù)據(jù)數(shù)據(jù)規(guī)模模雙十一191億億背后的開開源技術(shù)術(shù)?支付寶核核心數(shù)據(jù)據(jù)庫集群群處理了了41億億個事務(wù)務(wù)執(zhí)行285億次次SQL訪問1931億億次內(nèi)存存數(shù)據(jù)塊塊13億個個物理讀讀生成15TB日日志雙十一淘寶數(shù)據(jù)據(jù)平臺———產(chǎn)品品架構(gòu)數(shù)據(jù)應(yīng)用用開發(fā)平平臺———數(shù)據(jù)工工場底層平臺臺數(shù)據(jù)開發(fā)發(fā)平臺數(shù)據(jù)應(yīng)用用報表需求求(淘數(shù)數(shù)據(jù))即席查詢詢(adhoc)數(shù)據(jù)分析析數(shù)據(jù)挖掘掘數(shù)據(jù)產(chǎn)品品DataIntegrationDBsyncTTHiveHadoopMapReduceHadoopHDFSDatax報表需求求(淘數(shù)數(shù)據(jù))Hbase即席查詢詢(adhoc)數(shù)據(jù)分析析數(shù)據(jù)挖掘掘數(shù)據(jù)產(chǎn)品品實時計算算案例2::暴風(fēng)影影音每天處理理日志1.2T,20億行。。存儲設(shè)計容容量200TB對外提供產(chǎn)產(chǎn)品分析析,廣告分分析,用戶戶分析服服務(wù)。每天處理任任務(wù)上千個個jobs應(yīng)用領(lǐng)域搜索社交游戲視頻電信醫(yī)療交通公安航空電力金融HDFS介介紹HDFS定定義HDFS是是GoogleGFS的的開源版版本,一個個高度容錯錯的分布式式文件系統(tǒng)統(tǒng),它能夠夠提供高吞吞吐量的數(shù)數(shù)據(jù)訪問,,適合存儲儲海量(PB級))大文件((通常超過過64M)。HDFS設(shè)設(shè)計基礎(chǔ)與與目標(biāo)硬件錯誤是是常態(tài),需需要冗余。。流式數(shù)據(jù)訪訪問。即數(shù)數(shù)據(jù)批量讀讀取而非隨隨機讀寫,,Hadoop擅長長做數(shù)據(jù)分分析而不是是數(shù)據(jù)處理理。大規(guī)模數(shù)據(jù)據(jù)集簡單一致性性模型。程序采用““數(shù)據(jù)就近近”原則分分配節(jié)點執(zhí)執(zhí)行。HDFS不不適合場景景1低延遲數(shù)據(jù)訪問HDFS是為了達到高數(shù)據(jù)吞吐量而優(yōu)化的,這是以延遲為代價的,對于低延遲訪問,可以用Hbase(hadoop的子項目)。2大量的小文件3多用戶寫入任意修改HDFS架架構(gòu)在Hadoop中,,一個文件件被劃分成成大小固定定的多個文文件塊,分分布的存儲儲在集群中中的節(jié)點中中。111HDFS架架構(gòu)同一個文件塊在不同的節(jié)節(jié)點中有多多個副本111HDFS架架構(gòu)我們需要一一個集中的的地方保存存文件的分分塊信息/home/hdfs/a.txt.part1,3,(dn1,dn2,dn3)/home/hdfs/a.txt.part2,3,(dn2,dn3,dn4)/home/hdfs/a.txt.part3,3,(dn6,dn11,dn28)…HDFS架架構(gòu)HDFS架架構(gòu)BlockNameNodeDataNodeHA策略一個文件分分塊,默認(rèn)認(rèn)64M用于存儲Blocks保存整個文文件系統(tǒng)的的目錄信息息,文件信信息以及文文件相應(yīng)的的分塊信息息NameNode一旦宕機,,整個文件件系統(tǒng)將無無法工作。。如果NameNode中的數(shù)據(jù)丟丟失,整個個文件系統(tǒng)統(tǒng)也就丟失失了。115HDFS體體系結(jié)構(gòu)NameNodeDataNode事務(wù)日志映像文件SecondaryNameNode116Namenode管理文件系系統(tǒng)的命名名空間記錄每個文文件數(shù)據(jù)塊塊在各個Datanode上上的位置和和副本信息息協(xié)調(diào)客戶端端對文件的的訪問記錄命名空空間內(nèi)的改改動或空間間本身屬性性的改動Namenode使使用事務(wù)日日志記錄HDFS元元數(shù)據(jù)的變變化。使用用映像文件件存儲文件件系統(tǒng)的命命名空間,,包括文件件映射,文文件屬性等等Datanode負(fù)責(zé)所在物物理節(jié)點的的存儲管理理一次寫入,,多次讀取?。ú恍薷母模┪募蓴?shù)據(jù)據(jù)塊組成,,典型的塊塊大小是64MB數(shù)據(jù)塊盡量量散布道各各個節(jié)點讀取數(shù)據(jù)流流程HDFS文文件操作命令行方式API方式HDFS基基本操作hadoopdfs–ls/hadoopdfs–mkidr/testhadoopdfs–get/filenamehadoopdfs–putsrcfile/desfile列出HDFS文件hduser@master:~$hadoopdfs-ls/注意:hadoop沒有當(dāng)當(dāng)前目錄的的概念,也也沒有cd命令。。上傳文件到到HDFShduser@master:~$hadoopdfs-put/home/hduser/test.txt/app/hadoop/tmp/hduser@master:~$hadoopdfs-ls/app/hadoop/tmp/將HDFS的文件復(fù)復(fù)制到本地地hduser@master:~$hadoopdfs-get/app/hadoop/tmp/test.txt/home/hduser/testdfs.txthduser@master:~$ll/home/hduser/刪除HDFS下的文文檔hduser@master:~$hadoopdfs-ls/app/hadoop/tmp/hduser@master:~$hadoopdfs-rmr/app/hadoop/tmp/test.txthduser@master:~$hadoopdfs-ls/app/hadoop/tmp/查看文件內(nèi)內(nèi)容hduser@master:~$hadoopdfs-ls.hduser@master:~$hadoopdfs-cat./test.txt查看HDFS基本統(tǒng)統(tǒng)計信息hduser@master:~$hadoopdfsadmin-report進入和退出出安全模式式hduser@master:~$hadoopdfsadmin-safemodeenterhduser@master:~$hadoopdfsadmin-safemodeleave更多命令請請參考《file_system_shell.pdf》節(jié)點添加在新節(jié)點安安裝好hadoop把namenode的有關(guān)配配置文件復(fù)復(fù)制到該節(jié)節(jié)點修改masters和slaves文文件,增加加該節(jié)點設(shè)置ssh免密碼進進出該節(jié)點點單獨啟動該節(jié)節(jié)點上的datanode和tasktracker(hadoop-daemon.shstartdatanode/tasktracker)運行start-balancer.sh進行行數(shù)據(jù)負(fù)載均均衡啟動某些特定定后臺進程hduser@master:~$start-all.sh負(fù)載均衡當(dāng)節(jié)點出現(xiàn)故故障,或新增增加節(jié)點時,,數(shù)據(jù)塊分布布可能不均勻勻,負(fù)載均衡衡可以重新平平衡各個datanode上數(shù)據(jù)塊塊的分布。hduser@master:~$start-balancer.shHDFSAPIJava調(diào)用用HDFS演演示hadoopjar/home/hduser/upload.jar/app/hadoop/tmp/test.txt(本地文件)/app/hadoop/tmp/outputhadoopdfs-ls/app/hadoop/tmp/hadoopdfs-cat/app/hadoop/tmp/outputMap-ReduceMapReduce算法法思想MapReduce主主要反映了映映射和規(guī)約兩兩個概念,分分別完成映射射操作和規(guī)約約操作。MapReduce邏輯輯部署MapReduce邏輯輯部署Hadoop主要由HDFS(HadoopDistributedFileSystem))和MapReduce引擎兩部部分組成。最底部是HDFS,它存存儲Hadoop集群群中所有存儲儲節(jié)點上的文文件。HDFS的的上一層是MapReduce引引擎,該引擎擎由JobTrackers和TaskTrackers組成。MapReduce運行行機制GoogleMapReduce原理2023/1/7(1)輸輸入文文件分分成M塊,每每塊大大概16M~64MB(可以以通過過參數(shù)數(shù)決定定),,接著著在集集群的的機器器上執(zhí)執(zhí)行分分派處處理程程序(2)M個Map任務(wù)和和R個Reduce任務(wù)需需要分分派,,Master選擇空空閑Worker來分配配這些些Map或Reduce任務(wù)(3)Worker讀取并并處理理相關(guān)關(guān)輸入入塊,,Map函數(shù)產(chǎn)產(chǎn)生的的中間間結(jié)果果<key,value>對暫時時緩沖沖到內(nèi)內(nèi)存(4)中中間結(jié)結(jié)果定定時寫寫到本本地硬硬盤,,分區(qū)區(qū)函數(shù)數(shù)將其其分成成R個區(qū)。。中間間結(jié)果果在本本地硬硬盤的的位置置信息息將被被發(fā)送送回Master,然后后Master負(fù)責(zé)把把這些些位置置信息息傳送送給ReduceWorkerGoogleMapReduce原理2023/1/7(5)當(dāng)當(dāng)Master通知知執(zhí)執(zhí)行行Reduce的Worker關(guān)于于中中間間<key,value>對的的位位置置時時,,它它調(diào)調(diào)用用遠(yuǎn)遠(yuǎn)程程過過程程,,從從MapWorker的本本地地硬硬盤盤上上讀讀取取緩緩沖沖的的中中間間數(shù)數(shù)據(jù)據(jù)。。當(dāng)當(dāng)ReduceWorker讀到所有有的中間間數(shù)據(jù),,它就使使用中間間key進行排序序,這樣樣可使相相同key的值都在在一起(6)ReduceWorker根據(jù)每一一個唯一一中間key來遍歷所所有的排排序后的的中間數(shù)數(shù)據(jù),并并且把key和相關(guān)的的中間結(jié)結(jié)果值集集合傳遞遞給用戶戶定義的的Reduce函數(shù)。Reduce函數(shù)的結(jié)結(jié)果寫到到一個最最終的輸輸出文件件(7) 當(dāng)所所有的Map任務(wù)和Reduce任務(wù)都完完成的時時候,Master激活用戶戶程序。。此時MapReduce返回用戶戶程序的的調(diào)用點點HadoopMapReduce實現(xiàn)機制制2023/1/7HadoopMapReduce實現(xiàn)機制制2023/1/71、向jobtracker請求一個個新的作作業(yè)ID(通過Jobtracker的getNewJobId())2、檢查作作業(yè)的輸輸出目錄錄。比如如,如果果沒有指指定輸出出目錄或或者它已已經(jīng)存在在,作業(yè)業(yè)就不會會被提交交,并有有錯誤返返回給MapReduce程序。3、計算作作業(yè)的輸輸入分片片。如果果分片無無法計算算,比如如因為輸輸入路徑徑不存在在,作業(yè)業(yè)就不會會被提交交,并有有錯誤返返回給MapReduce程序。HadoopMapReduce實現(xiàn)機制制2023/1/74、將運行行作業(yè)所所需要的的資源((包括作作業(yè)的JAR文件、配置文文件和計算所所得的輸入分分片)復(fù)制到到一個以作業(yè)業(yè)ID號命名的目錄錄中jobtracker的文件系統(tǒng)。。作業(yè)JAR的副本較多((由mapred.submit.replication屬性控制,默默認(rèn)為10),因此,在在tasktracker運行作業(yè)任務(wù)務(wù)時,集群能能為它們提供供許多副本進進行訪問。((步驟3)5、告訴jobtracker作業(yè)準(zhǔn)備執(zhí)行行(通過調(diào)用用JobTracker的submitJob()方法)(步驟驟4)HadoopMapReduce實現(xiàn)機制2023/1/76、Jobtracker接受到對其其submitJob()方法調(diào)調(diào)用后,會會把此調(diào)用用放入一個個內(nèi)部的隊隊列中,交交由作業(yè)調(diào)調(diào)度器進行行調(diào)度,并并對其進行行初始化。。初始化包包括創(chuàng)建一一個代表該該正在運行行的作業(yè)的的對象,它它封裝任務(wù)務(wù)和記錄信信息,以便便跟蹤任務(wù)務(wù)的狀態(tài)和和進程(步步驟5)7、要創(chuàng)建運運行任務(wù)列列表,作業(yè)業(yè)調(diào)度器首首先從共享享文件系統(tǒng)統(tǒng)中獲取JobClient已經(jīng)計算好好的輸入分分片信息((步驟6)然后為每每個分片創(chuàng)創(chuàng)建一個map任務(wù)。創(chuàng)建建的reduce任務(wù)的數(shù)量量由JobConf的mapred.reduce.tasks屬性決定,,它是用setNumReduceTasks()方法來來設(shè)定的,,然后調(diào)度度器便創(chuàng)建建這么多reduce任務(wù)來運行行。任務(wù)在在此時指定定ID號。HadoopMapReduce實現(xiàn)機制2023/1/78、TaskTraker運行一個簡簡單的循環(huán)環(huán)來定期發(fā)發(fā)送心跳((heartbeat)給Jobtracker。心跳方法法告知jobtracker,tasktracker是否存活,,同時也充充當(dāng)兩者之之間的消息息通道。作作為心跳的的一部分,,tasktracker會指明它是是否已經(jīng)準(zhǔn)準(zhǔn)備運行新新的任務(wù),,如果是,,jobtracker會為它分配配一個任務(wù)務(wù),并使用用心跳的返返回值與tasktracker進行通信((步驟7)HadoopMapReduce實現(xiàn)機制2023/1/79、現(xiàn)在,tasktracker已經(jīng)被分配配了任務(wù),,下一步是是運行任務(wù)務(wù)。第一步步,通過從從共享文件件系統(tǒng)把作作業(yè)JAR文件復(fù)制到到tasktracker所在的文件件系統(tǒng),從從而實現(xiàn)作作業(yè)的JAR文件本地化化。同時,,tasktracker將應(yīng)用程序序所需要的的全部文件件從分布式式緩存復(fù)制制到本地磁磁盤。第二二步,tasktracker為任務(wù)新建建一個本地地工作目錄錄,并把JAR文件中的內(nèi)內(nèi)容解壓到到這個文件件夾下。第第三步,tasktracker新建一個TaskRunner實例來運行行任務(wù)。TaskRunner啟動一個新新的Java虛擬機(步步驟9)來運行每每個任務(wù)((步驟10),以便用用戶定義的的map和reduce函數(shù)的任何何軟件問題題都不會影影響tasktracker(比如導(dǎo)致致崩潰或者者掛起等))。但在不不同的任務(wù)務(wù)之間重用用JVM還是可能的的。10、子進程通通過中央接接口與父進進程進行通通信。它每每隔幾秒便便告知父進進程它的進進度,直到到任務(wù)完成成。MapReduce應(yīng)用程程序組成1一個Mapper函數(shù)2一個Reducer函數(shù)3一個main函數(shù)。MapReduceMapReduceMapReduce是是一一種種編編程程模模型型,,用用于于大大規(guī)規(guī)模模數(shù)數(shù)據(jù)據(jù)集集((大大于于1TB))的的并并行行運運算算通俗俗的的說說就就是是將將一一個個大大任任務(wù)務(wù)分分成成多多個個小小任任務(wù)務(wù)并并行行完完成成,,然然后后合合并并小小任任務(wù)務(wù)的的結(jié)結(jié)果果,,得得到到最最終終結(jié)結(jié)果果。。Map-reduce的的思思想想就就是是““分分而而治治之之””MapperMapper負(fù)負(fù)責(zé)責(zé)““分分””,,即即把把復(fù)復(fù)雜雜的的任任務(wù)務(wù)分分解解為為若若干干個個““簡簡單單的的任任務(wù)務(wù)””執(zhí)執(zhí)行行.Reducer對map階階段段的的結(jié)結(jié)果果進進行行匯匯總總Reducer的的數(shù)數(shù)目目由由mapred-site.xml配配置置文文件件里里的的項項目目mapred.reduce.tasks決決定定。。缺缺省省值值為為1,,用用戶戶可可以以覆覆蓋蓋之之Shuffler在mapper和和reducer中中間間的的一一個個步步驟驟((可可以以沒沒有有))可以把mapper的輸輸出按照某種種key值重重新切分和組組合成n份,,把key值值符合某種范范圍的輸出送送到特定的reducer那里去處處理可以簡化reducer過程命令操作hadoopjar/usr/local/hadoop/hadoop-examples-1.0.4.jarwordcount/app/hadoop/tmp/test.txt/app/hadoop/tmp/outputWordCount的運運算過程假設(shè)輸入文件件的內(nèi)容如下下:HowareyouHelloword,areyouokThisisatest文件被分成3個splitSplit1HowareyouSplit2Helloword,areyouokSplit3ThisisatestMap的過程程Split1Howareyou(How,1)(are,1)(you,1)Split2Helloword,areyouok(Hello,1)(word,,1)(are,1)(you,1)(ok,1)Split3Thisisatest(This,1)(is,1)(a,1)(test,1)Reduce的過程(How,1)(are,1)(you,1)(Hello,1)(word,,1)(are,1)(you,1)(ok,1)(This,1)(is,1)(a,1)(test,1)(How,{1})(are,{1,1})(you,{1,1})(Hello,{1})(word,,{1})(are,{1})(ok,{1})(This,{1})(is,{1})(a,{1})(test,{1})調(diào)度機制缺省為先入先先出作業(yè)隊列列調(diào)度支持公平調(diào)度度器支持容量調(diào)度度器任務(wù)執(zhí)行優(yōu)化化推測式執(zhí)行::即如果jobtracker發(fā)現(xiàn)現(xiàn)有拖后腿的的任務(wù),會再再啟動一個相相同的備份任任務(wù),然后哪哪個先執(zhí)行完完就會kill去另外一一個。因此在在監(jiān)控網(wǎng)頁上上經(jīng)常能看到到正常執(zhí)行完完的作業(yè)有被被kill掉掉的任務(wù)推測式執(zhí)行缺缺省打開,但但如果是代碼碼問題,并不不能解決問題題,而且會使使集群更慢,,通過在mapred-site.xml配置置文件中設(shè)置置mapred.map.tasks.speculative.execution和mapred.reduce.tasks.speculative.execution可為map任務(wù)或reduce任任務(wù)開啟或關(guān)關(guān)閉推測式執(zhí)執(zhí)行重用用JVM,,可可以以省省去去啟啟動動新新的的JVM消消耗耗的的時時間間,,在在mapred-site.xml配配置置文文件件中中設(shè)設(shè)置置mapred.job.reuse.jvm.num.tasks設(shè)設(shè)置置單單個個JVM上上運運行行的的最最大大任任務(wù)務(wù)數(shù)數(shù)((1,,>1或或-1表表示示沒沒有有限限制制))忽略略模模式式,,任任務(wù)務(wù)在在讀讀取取數(shù)數(shù)據(jù)據(jù)失失敗敗2次次后后,,會會把把數(shù)數(shù)據(jù)據(jù)位位置置告告訴訴jobtracker,,后后者者重重新新啟啟動動該該任任務(wù)務(wù)并并且且在在遇遇到到所所記記錄錄的的壞壞數(shù)數(shù)據(jù)據(jù)時時直直接接跳跳過過((缺缺省省關(guān)關(guān)閉閉,,用用SkipBadRecord方方法法打打開開))錯誤處處理機機制::硬件件故障障硬件故故障是是指jobtracker故故障或或tasktracker故故障jobtracker是是單點點,若若發(fā)生生故障障目前前hadoop還無無法處處理,,唯有有選擇擇最牢牢靠的的硬件件作為為jobtrackerJobtracker通通過心心跳((周期期1分分鐘))信號號了解解tasktracker是是否發(fā)發(fā)生故故障或或負(fù)載載過于于嚴(yán)重重Jobtracker將將從任任務(wù)節(jié)節(jié)點列列表中中移除除發(fā)生生故障障的tasktracker如果故故障節(jié)節(jié)點在在執(zhí)行行map任任務(wù)并并且尚尚未完完成,,jobtracker會要要求其其它節(jié)節(jié)點重重新執(zhí)執(zhí)行此此map任任務(wù)如果故故障節(jié)節(jié)點在在執(zhí)行行reduce任務(wù)務(wù)并且且尚未未完成成,jobtracker會會要求求其它它節(jié)點點繼續(xù)續(xù)執(zhí)行行尚未未完成成的reduce任任務(wù)錯誤處處理機機制::任務(wù)務(wù)失敗敗由于代代碼缺缺陷或或進程程崩潰潰引起起任務(wù)務(wù)失敗敗Jvm自動動退出出,向向tasktracker父父進程程發(fā)送送方錯錯誤信信息,,錯誤誤信息息也會會寫入入到日日志Tasktracker監(jiān)聽聽程序序會發(fā)發(fā)現(xiàn)進進程退退出,,或進進程很很久沒沒有更更新信信息送送回,,將任任務(wù)標(biāo)標(biāo)記為為失敗敗標(biāo)記失失敗任任務(wù)后后,任任務(wù)計計數(shù)器器減去去1以以便接接受新新任務(wù)務(wù),并并通過過心跳跳信號號告訴訴jobtracker任務(wù)務(wù)失敗敗的信信息Jobtrack獲獲悉任任務(wù)失失敗后后,將將把該該任務(wù)務(wù)重新新放入入調(diào)度度隊列列,重重新分分配出出去再再執(zhí)行行如果一一個任任務(wù)失失敗超超過4次((可以以設(shè)置置),,將不不會再再被執(zhí)執(zhí)行,,同時時作業(yè)業(yè)也宣宣布失失敗Hadoop命命令大大全HadoopAPI大大全HBaseHbase的特特點高可靠靠性高性能可伸縮面向列Hbase介紹HBase是一個分分布式的、、面向列的的開源數(shù)據(jù)據(jù)庫就像Bigtable利用了了Google文件件系統(tǒng)(FileSystem)所所提供的分分布式數(shù)據(jù)據(jù)存儲一樣樣,HBase在Hadoop之上提提供了類似似于Bigtable的能力力。HBase不同于一一般的關(guān)系系數(shù)據(jù)庫,它是一個個適合于非非結(jié)構(gòu)化數(shù)數(shù)據(jù)存儲的的數(shù)據(jù)庫.另一個不不同的是HBase基于列的的而不是基基于行的模模式Bigtable思思想學(xué)生表的例例子S(s#,sn,sd,sa)存放為關(guān)系系的學(xué)生表表以bigtable方式存放放學(xué)生表Bigtable:無所不不包的大表表Hbase邏輯模型型以表的形式式存放數(shù)據(jù)據(jù)表由行與列列組成,每每個列屬于于某個列族族,由行和和列確定的的存儲單元元稱為元素素每個元素保保存了同一一份數(shù)據(jù)的的多個版本本,由時間間戳來標(biāo)識識區(qū)分Bigtable:無無所不包包的大表Hbase行鍵行鍵是數(shù)據(jù)據(jù)行在表里里的唯一標(biāo)標(biāo)識,并作作為檢索記記錄的主鍵鍵訪問表里的的行只有三三種方式通過單個行行鍵訪問給定行鍵的的范圍訪問問全表掃描行鍵可以是是最大長度度不超過64KB的的任意字符符串,并按按照字典序序存儲對于經(jīng)常要要一起讀取取的行,要要對行鍵值值精心設(shè)計計,以便它它們能放在在一起存儲儲Hbase列族與列列列表示為<列族>:<限定符符>Hbase在磁盤上上按照列族族存儲數(shù)據(jù)據(jù),這種列列式數(shù)據(jù)庫庫的設(shè)計非非常適合于于數(shù)據(jù)分析析的情形列族里的元元素最好具具有相同的的讀寫方式式(例如等等長的字符符串),以以提高性能能列族族名名盡盡量量短短列族在創(chuàng)創(chuàng)建表的的時候聲聲明,一一個列族族可以包包含多個個列,列列中的數(shù)數(shù)據(jù)都是是以二進進制形式式存在,,沒有數(shù)數(shù)據(jù)類型型。Hbase時間間戳對應(yīng)每次次數(shù)據(jù)操操作的時時間,可可由系統(tǒng)統(tǒng)自動生生成,也也可以由由用戶顯顯式的賦賦值Hbase支持持兩種數(shù)數(shù)據(jù)版本本回收方方式:1每個個數(shù)據(jù)單單元,只只存儲指指定個數(shù)數(shù)的最新新版本2保保存指定定時間長長度的版版本(例例如7天天)常見的客客戶端時時間查詢詢:“某某個時刻刻起的最最新數(shù)據(jù)據(jù)”或““給我全全部版本本的數(shù)據(jù)據(jù)”元素由行行鍵,,列族:限定符符,時間間戳唯一一決定元素以字字節(jié)碼形形式存放放,沒有有類型之之分HbasevsOracle索引不同同造成行行為的差差異Hbase適合合大量插插入同時時又有讀讀的情況況Hbase的瓶瓶頸是是硬盤盤傳輸輸速度度,Oracle的的瓶頸頸是硬硬盤尋尋道時時間Hbase很適適合尋尋找按按照時時間排排序topn的場場景傳統(tǒng)數(shù)數(shù)據(jù)庫庫的行行式存存儲數(shù)據(jù)存存放在在數(shù)據(jù)據(jù)文件件內(nèi)數(shù)據(jù)文文件的的基本本組成成單位位:塊塊/頁頁塊內(nèi)結(jié)結(jié)構(gòu)::塊頭頭、數(shù)數(shù)據(jù)區(qū)區(qū)Hbase物理理模型型HMaster為Regionserver分分配region負(fù)責(zé)regionserver的負(fù)負(fù)載均均衡發(fā)現(xiàn)失失效的的regionserver并并重新新分配配其上上的regionHDFS上上的垃垃圾文文件回回收處理schema更更新請請求HRegionServerHRegionserver維維護HMaster分配配給它它的HRegion,處處理對對這些些HRegion的的IO請求求。HRegionserver負(fù)負(fù)責(zé)切切分在在運行行過程程中變變得過過大的的HRegion可可以看看到,,client訪問問Hbase上上數(shù)據(jù)據(jù)的過過程并并不需需要HMaster參與與(尋尋址訪訪問zookeeper和HRegionserver,,數(shù)據(jù)據(jù)讀寫寫訪問問HRegioneserver)),HMaster僅僅僅維護護者table和HRegion的元元數(shù)據(jù)據(jù)信息息,負(fù)負(fù)載很很低。。行式存儲的的問題讀某個列必必須讀入整整行行不等長長,修改數(shù)數(shù)據(jù)可能導(dǎo)導(dǎo)致行遷移移行數(shù)據(jù)較較多時可能能導(dǎo)致行鏈鏈Hbase邏輯模型型Hbase中數(shù)據(jù)存儲儲方式按RowKey的字典順序TableRegionRegionRegionRegionRegionServersRegionServerRegionServerRegionServerRegionServerTable&Region當(dāng)Table隨著記記錄數(shù)不斷斷增加而變變大后,會會逐漸分裂裂成多份splits,成為為regions,,一個region由[startkey,endkey)表示示,不同的的region會被被Master分配配給相應(yīng)的的RegionSer
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度大型水利工程采砂廠承包權(quán)轉(zhuǎn)讓合同范本3篇
- 二零二五版國際貿(mào)易合同主體欺詐責(zé)任劃分與損害賠償合同3篇
- 2025年度鮮羊奶品牌授權(quán)及區(qū)域代理銷售合同范本3篇
- 2025年度出租車行業(yè)駕駛員權(quán)益保護合作協(xié)議3篇
- 2024版加油站柴油訂貨與銷售協(xié)議范例版B版
- 專業(yè)水泥銷售協(xié)議:2024版細(xì)則版A版
- 二零二五年度高壓電纜敷設(shè)與維護保養(yǎng)合同大全3篇
- 2024版吉陽區(qū)環(huán)衛(wèi)設(shè)施安全檢查評估合同
- 2024技術(shù)崗位聘用合同范本
- 二零二五年度特色豬種養(yǎng)殖基地豬欄承包協(xié)議3篇
- 危險性較大分部分項工程及施工現(xiàn)場易發(fā)生重大事故的部位、環(huán)節(jié)的預(yù)防監(jiān)控措施
- 繼電保護試題庫(含參考答案)
- 《榜樣9》觀后感心得體會四
- 2023事業(yè)單位筆試《公共基礎(chǔ)知識》備考題庫(含答案)
- 《水下拋石基床振動夯實及整平施工規(guī)程》
- 2025年云南大理州工業(yè)投資(集團)限公司招聘31人管理單位筆試遴選500模擬題附帶答案詳解
- 風(fēng)電危險源辨識及控制措施
- 《教師職業(yè)道德與政策法規(guī)》課程教學(xué)大綱
- 兒童傳染病預(yù)防課件
- 護理組長年底述職報告
- 《住院患者身體約束的護理》團體標(biāo)準(zhǔn)解讀課件
評論
0/150
提交評論