云計(jì)算分布式大數(shù)據(jù)Hadoo深入淺出案例驅(qū)動(dòng)實(shí)戰(zhàn)外訓(xùn)講義_第1頁(yè)
云計(jì)算分布式大數(shù)據(jù)Hadoo深入淺出案例驅(qū)動(dòng)實(shí)戰(zhàn)外訓(xùn)講義_第2頁(yè)
云計(jì)算分布式大數(shù)據(jù)Hadoo深入淺出案例驅(qū)動(dòng)實(shí)戰(zhàn)外訓(xùn)講義_第3頁(yè)
云計(jì)算分布式大數(shù)據(jù)Hadoo深入淺出案例驅(qū)動(dòng)實(shí)戰(zhàn)外訓(xùn)講義_第4頁(yè)
云計(jì)算分布式大數(shù)據(jù)Hadoo深入淺出案例驅(qū)動(dòng)實(shí)戰(zhàn)外訓(xùn)講義_第5頁(yè)
已閱讀5頁(yè),還剩210頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Hadoop深入淺出案例驅(qū)動(dòng)實(shí)戰(zhàn)中程在線(北京)科技有限公司內(nèi)部教程注意保密Hive的安裝和配置、原理、開(kāi)發(fā)課程目標(biāo)Hadoop安裝、配置與管理HDFS原理及開(kāi)發(fā),HDFS文件管理Map-Reduce原理及開(kāi)發(fā)Hbase的安裝和配置、原理、開(kāi)發(fā)2課程安排day1Step3

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論