Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第1頁(yè)
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第2頁(yè)
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第3頁(yè)
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第4頁(yè)
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第5頁(yè)
已閱讀5頁(yè),還剩377頁(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)介

1、第1章 Hadoop初識(shí)Hadoop數(shù)據(jù)分析與應(yīng)用課程概述終點(diǎn)起點(diǎn)12345672. Hadoop分布式集群3. MapReduce(一)5. Hadoop 高可用(一)4. MapReduce(二)6. Hadoop 高可用(二)7. Hadoop 項(xiàng)目實(shí)戰(zhàn)1. Hadoop初識(shí)Hadoop 初識(shí)大數(shù)據(jù)簡(jiǎn)介及發(fā)展前景Hadoop 簡(jiǎn)介、生態(tài)圈簡(jiǎn)介及核心介紹 VMwareo 環(huán)境安裝與 CentOS 安裝Hadoop 單機(jī)環(huán)境安裝配置和實(shí)現(xiàn)單詞計(jì)數(shù)功能在 Linux 系統(tǒng)中配置 Java 運(yùn)行環(huán)境和 SSH 免密登錄Hadoop 單機(jī)環(huán)境安裝配置和實(shí)現(xiàn)單詞計(jì)數(shù)功能大數(shù)據(jù)簡(jiǎn)介及發(fā)展前景生活中的大

2、數(shù)據(jù)大數(shù)據(jù)簡(jiǎn)介大數(shù)據(jù)的發(fā)展歷程和趨勢(shì)451.1.1 生活中的大數(shù)據(jù)大數(shù)據(jù)是下一個(gè)創(chuàng)新、競(jìng)爭(zhēng)、生產(chǎn)力提高的前沿。世界經(jīng)濟(jì)論壇的報(bào)告認(rèn)定:大數(shù)據(jù)為新財(cái)富,其價(jià)值堪比石油未來(lái)物流中科院青海鹽湖研究所大數(shù)據(jù)運(yùn)用城市噪聲地圖訓(xùn)練“人工智能”當(dāng)大夫1.1.2 大數(shù)據(jù)簡(jiǎn)介大數(shù)據(jù)(Big Data),指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。1.1.2 大數(shù)據(jù)簡(jiǎn)介大數(shù)據(jù)的 4V 特點(diǎn):Volume(大量)、Velocity(高速)、Variety(多樣)和 Value(低價(jià)值密度)Vol

3、ume(大量):數(shù)據(jù)體量巨大Velocity(高速):處理速度快Variety(多樣):數(shù)據(jù)類型繁多Value(低價(jià)值密度):價(jià)值密度低、商業(yè)價(jià)值高1.1.2 大數(shù)據(jù)簡(jiǎn)介大數(shù)據(jù)運(yùn)用領(lǐng)域金融領(lǐng)域:大數(shù)據(jù)所帶來(lái)的社會(huì)變革已經(jīng)深入到人們生活的各個(gè)方面,金融創(chuàng)新離不開(kāi)大數(shù)據(jù),日常的出行、購(gòu)物、運(yùn)動(dòng)、理財(cái)?shù)雀x不開(kāi)大數(shù)據(jù)。安防領(lǐng)域:作為信息時(shí)代海量數(shù)據(jù)的來(lái)源之一,視頻監(jiān)控產(chǎn)生了巨大的信息數(shù)據(jù)。能源領(lǐng)域:能源大數(shù)據(jù)理念是將電力、石油、燃?xì)獾饶茉搭I(lǐng)域數(shù)據(jù)以及人口、地理、氣象等其他領(lǐng)域數(shù)據(jù)進(jìn)行綜合采集、處理、分析與應(yīng)用的相關(guān)技術(shù)與思想。業(yè)務(wù)領(lǐng)域:大數(shù)據(jù)也更多地提升了業(yè)務(wù)流程的優(yōu)化。醫(yī)療領(lǐng)域:大數(shù)據(jù)分析應(yīng)用的計(jì)

4、算能力讓我們能夠在幾分鐘內(nèi)就可以解碼整個(gè) DNA,并且讓我們可以制訂出最新的治療方案,同時(shí)可以更好地去理解和預(yù)測(cè)疾病,就好像人們戴上可以產(chǎn)生數(shù)據(jù)的智能手表一樣,大數(shù)據(jù)同樣可以幫助病人對(duì)于病情進(jìn)行更好地治療。電力行業(yè)領(lǐng)域:大數(shù)據(jù)對(duì)該行業(yè)的應(yīng)用主要體現(xiàn)在智能電網(wǎng)上,通過(guò)獲取人們的用電行為信息,分析其對(duì)智慧城市建設(shè)和智能電網(wǎng)的意義。1.1.3 大數(shù)據(jù)的發(fā)展歷程和趨勢(shì)大數(shù)據(jù),已經(jīng)滲透到當(dāng)今每一個(gè)行業(yè)和業(yè)務(wù)職能領(lǐng)域,成為重要的生產(chǎn)因素。人們對(duì)于海量數(shù)據(jù)的挖掘和運(yùn)用,預(yù)示著新一波生產(chǎn)率的增長(zhǎng)和消費(fèi)者盈余浪潮的到來(lái)。全球首次將“大數(shù)據(jù)”劃分為四大階段,即“大數(shù)據(jù)”出現(xiàn)階段、“大數(shù)據(jù)”熱門階段、“大數(shù)據(jù)”時(shí)代

5、特征階段和“大數(shù)據(jù)”爆發(fā)期階段?!按髷?shù)據(jù)”出現(xiàn)階段(19802008 年)“大數(shù)據(jù)”熱門階段(20092011 年)“大數(shù)據(jù)”時(shí)代特征階段(20122016 年)“大數(shù)據(jù)”爆發(fā)期階段(20172022 年)1.1.3 大數(shù)據(jù)的發(fā)展歷程和趨勢(shì)大數(shù)據(jù)未來(lái)的發(fā)展依然非常樂(lè)觀。大數(shù)據(jù)的發(fā)展呈現(xiàn)八大趨勢(shì):數(shù)據(jù)資源化將成為最有價(jià)值的資產(chǎn)大數(shù)據(jù)在更多的傳統(tǒng)行業(yè)的企業(yè)管理落地大數(shù)據(jù)和傳統(tǒng)商業(yè)智能融合,行業(yè)定制化解決方案將涌現(xiàn)數(shù)據(jù)將越來(lái)越開(kāi)放,數(shù)據(jù)共享聯(lián)盟將出現(xiàn)大數(shù)據(jù)安全越來(lái)越受重視,大數(shù)據(jù)安全市場(chǎng)將愈發(fā)重要大數(shù)據(jù)的發(fā)展能促進(jìn)智慧城市發(fā)展,成為智慧城市的引擎大數(shù)據(jù)的發(fā)展將催生一批新的工作崗位和相應(yīng)的專業(yè)大數(shù)據(jù)的

6、發(fā)展能在多方位改善我們的生活Hadoop 簡(jiǎn)介和生態(tài)圈以及核心介紹Hadoop 簡(jiǎn)介Hadoop 生態(tài)圈介紹 Hadoop 核心介紹451.2.1 Hadoop 簡(jiǎn)介Hadoop 實(shí)現(xiàn)了一個(gè)分布式文件系統(tǒng)(Hadoop Distributed File System),簡(jiǎn)稱 HDFS。HDFS 有高容錯(cuò)性的特點(diǎn),因此設(shè)計(jì)用來(lái)部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來(lái)訪問(wèn)應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應(yīng)用程序。HDFS 放寬了 POSIX 的要求,可以以流的形式訪問(wèn)(streaming access)文

7、件系統(tǒng)中的數(shù)據(jù)。1.2.1 Hadoop 簡(jiǎn)介Hadoop 是一個(gè)用 Java 語(yǔ)言實(shí)現(xiàn)的軟件框架,運(yùn)行在 Linux 生產(chǎn)平臺(tái)上是非常理想的,同時(shí)也可以運(yùn)行在其他平臺(tái)上,如“Windows”等。用戶可以輕松地在 Hadoop 上開(kāi)發(fā)和運(yùn)行處理海量數(shù)據(jù)的應(yīng)用程序。它主要有以下 5 個(gè)優(yōu)點(diǎn):高可靠性高擴(kuò)展性高效性高容錯(cuò)性低成本1.2.2 Hadoop 生態(tài)圈介紹Hadoop 已經(jīng)演變?yōu)榇髷?shù)據(jù)計(jì)算的代名詞,形成了一套完善的大數(shù)據(jù)計(jì)算生態(tài)系統(tǒng),隨著技術(shù)的不斷更新和完善,各個(gè)子項(xiàng)目也在逐漸發(fā)展成熟。Hive:能夠支持?jǐn)?shù)據(jù)的匯總和臨時(shí)查詢的數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)框架。Flume:一個(gè)高可用的、高可靠的、分布式的海

8、量日志采集、聚合和傳輸?shù)南到y(tǒng)。HBase:能支持結(jié)構(gòu)化數(shù)據(jù)大表存儲(chǔ)的可擴(kuò)展的、分布式的數(shù)據(jù)庫(kù)。Mahout:一個(gè)可擴(kuò)展的機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘庫(kù)。Pig:它是一個(gè)工具 / 平臺(tái),用于分析較大的數(shù)據(jù)集,并將它們表示為數(shù)據(jù)流。ZooKeeper:一種分布式可用性高的協(xié)調(diào)服務(wù)。Spark:一個(gè)快速通用的數(shù)據(jù)引擎。Oozie:一個(gè)工作流引擎服務(wù)器,用于運(yùn)行 Hadoop Map/Reduce 和 Hive 等任務(wù)工作流。1.2.3 Hadoop 核心介紹Hadoop 是 Apache 軟件基金會(huì)所開(kāi)發(fā)的并行計(jì)算框架與分布式文件系統(tǒng)。Hadoop 各個(gè)核心項(xiàng)目架構(gòu)如下:HDFS2 架構(gòu):HDFS 的作用是負(fù)

9、責(zé)對(duì)數(shù)據(jù)的分布式存儲(chǔ)YARN 架構(gòu):YARN 架構(gòu)是一個(gè)資源調(diào)度和管理的平臺(tái)MapReduce 架構(gòu):MapReduce 架構(gòu)依賴于磁盤 I/O 的批處理計(jì)算模型Linux 系統(tǒng)環(huán)境配置Java 環(huán)境的安裝與配置配置 SSH2520在 Linux 系統(tǒng)中配置 Java 運(yùn)行環(huán)境和 SSH 免密登錄實(shí)踐時(shí)間: 分鐘251.3.1 Java 環(huán)境的安裝與配置Hadoop 運(yùn)行在 Linux 系統(tǒng)中,因此在部署 Hadoop 之前需要對(duì)當(dāng)前使用的 Linux 系統(tǒng)進(jìn)行配置。主要包括 Java運(yùn)行環(huán)境的配置,SSH 免密配置。輸入:rpm -qa|grep jdk查看安裝的 jdk輸入:yum -y

10、remove java-1.*卸載已安裝的 jdk。直到提示出現(xiàn)“Complete”,則卸載完成輸入: mkdir /opt/soft mkdir /opt/data輸入:ls /opt創(chuàng)建 soft 目錄與 data 目錄查看目錄是否創(chuàng)建成功1.3.1 Java 環(huán)境的安裝與配置輸入: cd /opt tar -zxvf soft/jdk-8u112-linux- x64.tar.gz mv jdk1.8.0_112/ jdk(1)上傳 jdk 壓縮文件到 soft 目錄。(2)解壓 jdk 壓縮文件到 opt 目錄,并將 jdk1.8.0_112 目錄變?yōu)?jdk。輸入:vi /etc/p

11、rofile.d/hadoop-eco.sh在 hadoop-eco.sh 中添加相關(guān)內(nèi)容后,保存并退出。JAVA_HOME=/opt/jdkPATH=$JAVA_HOME/bin:$PATH輸入:source /etc/profile.d/hadoop-eco.sh輸入:java -version1.3.1 Java 環(huán)境的安裝與配置SSH 為 Secure Shell 的縮寫,由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)所制定;SSH 為建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。 Hadoop 在運(yùn)行啟動(dòng)進(jìn)程時(shí),需要遠(yuǎn)程到對(duì)應(yīng)機(jī)器,如果不設(shè)置免密,則需要手動(dòng)輸入密碼,這樣會(huì)給

12、 Hadoop的使用者帶來(lái)不便,因此需要配置免密登錄,方便 Hadoop 自動(dòng)啟動(dòng)進(jìn)程,不需要人工的干預(yù)。輸入:ssh-keygen -t rsa輸入:ssh-copy-id -i rootlocalhost生成密鑰將本機(jī)的公鑰拷貝給其他機(jī)器1.3.3 學(xué)生實(shí)踐練習(xí)在 Linux 系統(tǒng)中配置 Java 運(yùn)行環(huán)境和 SSH 免密登錄。251.1.3 學(xué)生實(shí)踐練習(xí)卸載CentOS-7自帶的jdk。使用rpm-qa|grepjdk查看jdk,并使用yum-yremovejava-1.*卸載。上傳jdk到指定目錄。解壓jdk到指定目錄。使用tar命令對(duì)壓縮包進(jìn)行解壓。配置環(huán)境變量。使用vi/etc/p

13、rofile.d/hadoop-eco.sh命令,打開(kāi)hadoop-eco.sh文件,并在文件中添加相關(guān)內(nèi)容后,保存并退出。驗(yàn)證Java運(yùn)行環(huán)境是否安裝成功。使用java-version命令查詢Java版本,若出現(xiàn)版本號(hào),則安裝成功。生成秘鑰。使用ssh-keygen-trsa命令生成秘鑰。將秘鑰拷貝到指定機(jī)器(非本機(jī))的指定用戶。使用SSH免密登錄到指定機(jī)器。Hadoop 偽分布式模式安裝Hadoop 的常用端口和缺省配置文件說(shuō)明Hadoop 的配置Hadoop 啟動(dòng)在 Hadoop 上實(shí)現(xiàn)單詞計(jì)數(shù)2520Hadoop 單機(jī)環(huán)境安裝配置和實(shí)現(xiàn)單詞計(jì)數(shù)功能實(shí)踐時(shí)間: 分鐘251.4.1 Had

14、oop 的常用端口和缺省配置文件說(shuō)明Hadoop 偽分布式是一臺(tái)機(jī)器,既充當(dāng) NameNode,又充當(dāng) DataNode。沒(méi)有在多臺(tái)機(jī)器上進(jìn)行分布式計(jì)算,故稱為“偽分布式”。Hadoop 常用端口說(shuō)明:守護(hù)進(jìn)程Web 界面Web 界面NameNode http:/nn_host:port/默認(rèn)端口號(hào) 50070ResourceManager http:/rm_host:port/默認(rèn)端口號(hào) 8088MapReduceJobHistoryServerhttp:/jhs_host:port/ 默認(rèn)端口號(hào) 198881.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明core-site.xml 說(shuō)

15、明見(jiàn)表 :參數(shù) 屬性值解釋fs.defaultFSNameNodeURIhdfs:/host:port/io.file.buffer.size 131072SequenceFiles 文件中,讀寫緩存大小的設(shè)定1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明hdfs-site.xml 說(shuō)明見(jiàn)表:參數(shù)屬性值 解釋.dir file:/$hadoop.tmp.dir/dfs/name本地磁盤目錄,NN 存儲(chǔ)fsimage文件的地方dfs.blocksize 268435456大型的文件系統(tǒng)HDFS塊大小為256MBnode.handler.count 100設(shè)置更多的NameNode線程,處

16、理從DataNode發(fā)出的大量RPC請(qǐng)求dfs.datanode.data.dir file:/$hadoop.tmp.dir/dfs/data本地磁盤目錄,HDFS數(shù)據(jù)應(yīng)該存儲(chǔ)Block的地方dfs.replication3設(shè)置HDFS副本數(shù)1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明yarn-site.xml 中的ResourceManager 配置說(shuō)明:參數(shù)屬性值 解釋yarn.resourcemanager.address 客戶端對(duì) ResourceManager 主機(jī)通過(guò) host:port提交作業(yè)host:portyarn.resourcemanager.hostname

17、 ResourceManager 所在的主機(jī)hostyarn.resourcemanager.scheduler.address ApplicationMasters 通 過(guò) ResourceManager主機(jī)訪問(wèn) host:port 跟蹤調(diào)度程序獲取資源host:portyarn.resourcemanager.resource-tracker.address NodeManagers通過(guò) ResourceManager 主機(jī)訪問(wèn) host:porthost:port1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明參數(shù)屬性值 解釋yarn.resourcemanager.admin.a

18、ddress 管理命令通過(guò) ResourceManager 主機(jī)訪問(wèn)host:porthost:portyarn.resourcemanager.webapp.address ResourceManagerWeb 頁(yè)面地址host:portyarn.resourcemanager.scheduler.class ResourceManager 調(diào)度器實(shí)現(xiàn)類CapacityScheduler,F(xiàn)airScheduler,orFifoScheduleryarn.scheduler.minimum-allocation-mb 每個(gè) container 向 RM 申請(qǐng)最小內(nèi)存。內(nèi)存請(qǐng)求小于此值,實(shí)際申

19、請(qǐng)到的是此值大小以 MB 為單位1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明參數(shù)屬性值 解釋yarn.scheduler.maximum-allocation-mb 資源管理器分配給每個(gè)容器的內(nèi)存最大限制以 MB 為單位yarn.resourcemanager.nodes.include-path/yarn.resourcemanager.nodes.exclude-path NodeManagers 的 permitted/excluded列表如有必要,可使用這些文件來(lái)控制允許 NodeManagers 列表1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明yarn-site.

20、xml 中的NodeManager配置說(shuō)明:參數(shù)屬性值 解釋yarn.nodemanager.resource.memory-mb givenNodeManager 即資源的可用物理內(nèi)存,以 MB 為單位定義在節(jié)點(diǎn)管理器總的可用資源,以提供給運(yùn)行容器yarn.nodemanager.vmem-pmem-ratio 在設(shè)置container的內(nèi)存限制時(shí),虛擬內(nèi)存到物理內(nèi)存的比率Container 申請(qǐng)的內(nèi)存如果超過(guò)此物理內(nèi)存,可以以此比率獲取虛擬內(nèi)存用于滿足需求。虛擬地址的比率是物理地址的倍數(shù)上限1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明參數(shù)屬性值 解釋yarn.nodemanage

21、r.local-dirs 數(shù)據(jù)寫入本地文件系統(tǒng)路徑的列表用逗號(hào)分隔多條存儲(chǔ)路徑可以提高磁盤的讀寫速度yarn.nodemanager.log-dirs 本地文件系統(tǒng)日志路徑的列表用逗號(hào)分隔多條存儲(chǔ)路徑可以提高磁盤的讀寫速度yarn.nodemanager.log.retain-seconds 10800保留用戶日志的時(shí)間,在日志匯聚功能關(guān)閉時(shí)生效yarn.nodemanager.remote-app-log-dirlogs 匯聚日志的地方,目錄路徑,HDFS 系統(tǒng)1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明參數(shù)屬性值 解釋yarn.nodemanager.remote-app-log

22、-dir-suffix logs后綴追加到遠(yuǎn)程日志目錄。日志將被匯總到y(tǒng)arn.nodemanager.remoteapplogdir/yarn.nodemanager.remoteapplogdir/user/$thisParam,僅適用日志聚合功能yarn.nodemanager.aux-services mapreduce-shuffleShuffle service需要設(shè)置的 MapReduce 的應(yīng)用程序服務(wù)1.4.1 Hadoop 的常用端口和缺省配置文件說(shuō)明mapred-site.xml 說(shuō)明見(jiàn)表:參數(shù)屬性值 解釋 yarn執(zhí)行框架設(shè)置為 HadoopYARNmapreduce.

23、map.memory.mb 1536設(shè)置 Maps 對(duì)于較大資源的限制mapreduce.reduce.memory.mb 3072設(shè)置 Reduces 對(duì)于較大資源的限制mapreduce.task.io.sort.mb 512設(shè)置數(shù)據(jù)進(jìn)行排序的內(nèi)存大小mapreduce.task.io.sort.factor100在文件排序中將流進(jìn)行合并mapreduce.reduce.shuffle.parallelcopies50通過(guò) Reduces 從很多的 Map 中讀取較多的平行副本1.4.2 Hadoop 的配置配置 Hadoop輸入:cd /opt tar zxvf soft/hadoop.

24、2.7.3.tar.gz mv hadoop.2.7.3/ hadoop1)上傳 Hadoop 壓縮文件到 soft 目錄2)解壓 Hadoop 壓縮文件到 opt 目錄,并將Hadoop.2.7.3 目錄變?yōu)?Hadoop輸入:vi /etc/profile.d/hadoop-eco.sh輸入:source /etc/profile.d/hadoop-eco.sh(1)NameNode 數(shù)據(jù)存放目錄為 /opt/hadoop-record/name。(2)SecondaryNameNode 數(shù)據(jù)存放目錄為 /opt/hadoop-record/secondary。(3)DataNode 數(shù)據(jù)

25、存放目錄為 /opt/hadoop-record/data。(4)臨時(shí)數(shù)據(jù)存放目錄為 /opt/hadoop-record/tmp。在 hadoop-eco.sh 中追加相關(guān)內(nèi)容后,保存并退出。追加的內(nèi)容如下:HADOOP_HOME=/opt/hadoopPATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH在創(chuàng)建分布式時(shí),需先手動(dòng)創(chuàng)建 Hadoop 工作需要的目錄1.4.2 Hadoop 的配置配置 Hadoopfs.defaultFShdfs:/localhost:9000hadoop.tmp.dirfile:/opt/hadoop-record/tmp

26、(1)hadoop-env.sh 的配置:修改 JAVA_HOME 的地址為 exprot JAVA_HOME=/opt/jdk(2)yarn-env.sh 的配置:修改 JAVA_HOME 的地址為 exprot JAVA_HOME=/opt/jdk(3)core-site.xml 的配置:1.4.2 Hadoop 的配置dfs.replication1.dirfile:/opt/hadoop-record/namedfs.datanode.data.dirfile:/opt/hadoop-record/datahdfs-site.xml 的配置1.4.2 Hadoop 的配置yarnmap

27、red-site.xml 的配置1.4.2 Hadoop 的配置yarn.resourcemanager.hostnamelocalhostyarn.nodemanager.aux-servicesmapreduce_shuffleyarn-site.xml 的配置輸入:hadoop version查看 Hadoop 版本1.4.3 Hadoop 啟動(dòng)輸入:hdfs namenode -format格式化 NameNode輸入:start-dfs.sh輸入:jps啟動(dòng) HDFS輸入:start-yarn.sh輸入:jps輸入:IP:50070啟動(dòng) YARN1.4.4 在Hadoop上實(shí)現(xiàn)單詞計(jì)

28、數(shù)本章使用 Hadoop 中自帶的 jar 包,實(shí)現(xiàn)文檔中單詞個(gè)數(shù)的統(tǒng)計(jì)功能輸入:vi hello(1)在 opt 目錄下編寫一個(gè)測(cè)試文檔,添加兩行語(yǔ)句:第一行:“Hello World Bye World”;第二行:“Hello Hadoop Bye Hadoop”。輸入:hadoop fs -put hello /hello輸入:cd hadoop/share/hadoop/mapreduce/輸入:hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /hello /out使用 put 操作將“hello”文件上傳到 HDFS

29、的根目錄使用 jar 操作運(yùn)行 Hadoop 中自帶的 jar 進(jìn)行單詞計(jì)數(shù)輸入:hadoop fs -cat /out/part-r-00000使用 cat 查看統(tǒng)計(jì)結(jié)果1.4.5 學(xué)生實(shí)踐練習(xí)在 Linux 中安裝 Hadoop,編寫一個(gè)文件,運(yùn)行 jar 包實(shí)現(xiàn)單詞計(jì)數(shù)功能。251.4.5 學(xué)生實(shí)踐練習(xí)上傳 Hadoop 壓縮包到 Linux 中。解壓文件,配置環(huán)境變量。在 hadoop-eco.sh 中追加相關(guān)內(nèi)容后,保存并退出。配置 Hadoop 的配置文件。啟動(dòng) Hadoop。在啟動(dòng)之前需要先格式化 NameNode,然后啟動(dòng) HDFS,最后啟動(dòng) YARN。編寫文件上傳至 HDFS

30、。執(zhí)行 hadoop-mapreduce-examples-2.7.3.jar 進(jìn)行單詞計(jì)數(shù)??偨Y(jié)大數(shù)據(jù)是指無(wú)法在一定時(shí)間范圍內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。大數(shù)據(jù)的 4V 特點(diǎn)是 Volume(大量)、Velocity(高速)、Variety(多樣)和 Value(低價(jià)值密度)Hadoop 是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,具有:高可靠性、高擴(kuò)展性、高效性、高容錯(cuò)性和低成本的特點(diǎn)謝謝第2章 Hadoop 分布式集群Hadoop數(shù)據(jù)分析與應(yīng)用回顧大數(shù)據(jù)是指無(wú)法在一定時(shí)間范圍

31、內(nèi)用常規(guī)軟件工具進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察力和流程優(yōu)化能力的海量、高增長(zhǎng)率和多樣化的信息資產(chǎn)。大數(shù)據(jù)的 4V 特點(diǎn)是 Volume(大量)、Velocity(高速)、Variety(多樣)和 Value(低價(jià)值密度)Hadoop 是一個(gè)能夠?qū)Υ罅繑?shù)據(jù)進(jìn)行分布式處理的軟件框架,具有:高可靠性、高擴(kuò)展性、高效性、高容錯(cuò)性和低成本的特點(diǎn)封裝Linux 集群 SSH 免密配置Hadoop 分布式搭建Hadoop 命令行介紹Hadoop Java API 介紹Linux 虛擬機(jī)集群 SSH 的免密配置Hadoop 分布式模式搭建Hadoop 命令運(yùn)用Had

32、oop Java API 運(yùn)用定義屬性Hadoop 集群拓?fù)銲P 設(shè)置和 Hosts 設(shè)置配置 SSH 免密Linux 虛擬機(jī)集群 SSH 的免密配置25202.1.1 Hadoop 集群拓?fù)銱adoop 分布式集群和偽分布式模式有所不同,在集群中各個(gè)機(jī)器會(huì)承擔(dān)不同的角色,在集群中文件的存儲(chǔ)主要有以下兩個(gè)角色:NameNode(管理者):NameNode 管理文件系統(tǒng)的命名空間。DataNode(工作者):DataNode 是 Hadoop 集群中的工作節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)。2.1.1 Hadoop 集群拓?fù)湓谏虡I(yè)應(yīng)用中,DataNode 可以跨路由器分布在不同的機(jī)架上,也可以是互聯(lián)網(wǎng)中,或是在不同

33、機(jī)房間能夠被聯(lián)通的機(jī)器,如果網(wǎng)絡(luò)跨度過(guò)大,DataNode 之間的網(wǎng)絡(luò)寬帶會(huì)成為制約整個(gè) Hadoop 性能的瓶頸,所以在商業(yè)應(yīng)用中DataNode 的機(jī)器都會(huì)集中在一個(gè)數(shù)據(jù)中心,盡量讓 DataNode 之間的數(shù)據(jù)寬帶夠大。本章搭建的 Hadoop 的分布式模式采用的是一主三從的結(jié)構(gòu),即 1 個(gè) NameNode 和 3 個(gè) DataNode2.1.2 IP設(shè)置和 Hosts 設(shè)置為了讓集群中的機(jī)器能夠正常通信,所有集群的 IP 必須要設(shè)置成靜態(tài) IP,防止出現(xiàn)當(dāng)機(jī)器重啟之后重新分配 IP而找不到機(jī)器的情況,同時(shí)為了方便訪問(wèn),本節(jié)將修改主機(jī)名,配置主機(jī)名查詢靜態(tài)表,實(shí)現(xiàn)本地域名解析功能。序號(hào)

34、IP 地址 機(jī)器名 類型 用戶名1 00 masterNameNoderoot2 01slave01DataNode root3 02 slave02 DataNode root4 03 slave03 DataNode root2.1.2 IP設(shè)置和 Hosts 設(shè)置輸入:vi /etc/sysconfig/network-scripts/ifcfg-ens33BOOTPROTO=static # 將 dhcp 換成 staticONBOOT=yes # 將 no 換成 yes追加配置:IPADDR=00 # 靜態(tài) IPGATEWAY= # 默認(rèn)網(wǎng)關(guān)輸入:service network re

35、startIP 地址配置步驟輸入:vi /etc/hosts追加配置:00 master01 slave0102 slave0203 slave03輸入:scp -r /etc/hosts slave01:/etc/hostsscp -r /etc/hosts slave02:/etc/hostsscp -r /etc/hosts slave03:/etc/hosts主機(jī)名查詢靜態(tài)表配置步驟2.1.3 配置 SSH 免密Hadoop 集群之間的機(jī)器是通過(guò) SSH 協(xié)議進(jìn)行通信和協(xié)調(diào)工作的,而 SSH 進(jìn)行遠(yuǎn)程登錄需要密碼驗(yàn)證,為了方便 Hadoop 集群之間的機(jī)器能夠暢通的交互,需要在 Had

36、oop 集群之間配置 SSH 免密登錄,即將 Master 機(jī)器(主機(jī))的登錄公鑰放到集群中的其他機(jī)器中,使得 Master 機(jī)器(主機(jī))通過(guò) SSH 命令登錄到其他機(jī)器上時(shí)不再需要輸入密碼。2.1.3 配置 SSH 免密輸入:ssh-keygen -t rsa生成密鑰輸入:ssh-copy-id -i rootslave01ssh-copy-id -i rootslave02ssh-copy-id -i rootslave03將本機(jī)的公鑰拷貝給其他機(jī)器輸入:ssh rootslave01在 Master 機(jī)器上操作2.1.4 學(xué)生實(shí)踐練習(xí)在 Linux 集群中設(shè)置靜態(tài) IP 地址、修改主機(jī)名

37、以及配置主機(jī)名查詢靜態(tài)表, 通過(guò)主機(jī)名免密碼登錄到其他主機(jī)。252.1.4 學(xué)生實(shí)踐練習(xí)設(shè)置靜態(tài) IP 地址。使用 vi/etc/hostname 命令修改主機(jī)名。配置主機(jī)名查詢靜態(tài)表時(shí),需要 IP 地址與主機(jī)名對(duì)應(yīng)。使用 ssh-keygen -trsa 命令生成密鑰。使用 ssh-copy-id -i 命令進(jìn)行密鑰的遠(yuǎn)程拷貝,將生成的密鑰遠(yuǎn)程拷貝到其他機(jī)器上。Hadoop 分布式模式搭建Hadoop 分布式模式配置Hadoop 分布式模式啟動(dòng)Hadoop 分布式模式搭建25202.2.1 Hadoop 分布式模式配置fs.defaultFShdfs:/master:9000修改 core-

38、site.xml 配置文件,具體修改集群中 NameNode 結(jié)點(diǎn)的 URI 的值為“hdfs:/master:9000”node.secondary.http-addressmaster:50090dfs.replication2修 改 hdfs-site.xml 配 置 文 件, 追 加“node.secondary.http-address” 屬 性, 并 修 改“dfs.replication”屬性值為 2mapreduce.jobhistory.addressmaster:10020mapreduce.jobhistory.webapp.addressmaster:19888修改 m

39、apred-site.xml 配置文件,追加“mapreduce.jobhistory.address”和“mapreduce.jobhistory.webapp.addres”屬性yarn.resourcemanager.hostnamemaster修改 yarn-site.xml 配置文件,具體修改集群中“yarn.resourcemanager.hostname”的值為 Master輸入:vi /opt/hadoop/etc/hadoop/slaves修改 slaves 從機(jī)配置文件2.2.1 Hadoop 分布式模式配置輸入:scp -r /opt/jdk slave01:/opt/j

40、dkscp -r /opt/jdk slave02:/opt/jdkscp -r /opt/jdk slave03:/opt/jdk將 jdk 文件遠(yuǎn)程拷貝到其他機(jī)器輸入:scp -r /opt/hadoop-record slave01:/opt/hadoop-recordscp -r /opt/hadoop-record slave02:/opt/hadoop-recordscp -r /opt/hadoop-record slave03:/opt/hadoop-record將 hadoop-record 文件遠(yuǎn)程拷貝到其他機(jī)器輸入:scp -r /opt/hadoop-record sl

41、ave01:/opt/hadoop-recordscp -r /opt/hadoop-record slave02:/opt/hadoop-recordscp -r /opt/hadoop-record slave03:/opt/hadoop-record將 hadoop-eco.sh 文件遠(yuǎn)程拷貝到其他機(jī)器輸入:scp -r /opt/hadoop slave01:/opt/hadoopscp -r /opt/hadoop slave02:/opt/hadoopscp -r /opt/hadoop slave03:/opt/hadoop將 hadoop 文件遠(yuǎn)程拷貝到其他機(jī)器2.2.2 Ha

42、doop 分布式模式啟動(dòng)輸入:systemctl stop firewalld.service在各臺(tái)機(jī)器上關(guān)閉防火墻輸入:systemctl stop firewalld.service在各臺(tái)機(jī)器上禁止防火墻輸入:hdfs namenode -format格式化系統(tǒng)需在 Master 機(jī)器上操作輸入:start-dfs.sh在 Master 機(jī)器上啟動(dòng) HDFS輸入:jsp輸入:start-yarn.sh輸入:jps輸入:master:50070啟動(dòng) YARN在瀏覽器中訪問(wèn)網(wǎng)頁(yè),查看 Hadoop 的站點(diǎn)和節(jié)點(diǎn)2.2.3 學(xué)生實(shí)踐練習(xí)在 Linux 集群的基礎(chǔ)上搭建 Hadoop 分布式模式,

43、實(shí)現(xiàn)各節(jié)點(diǎn)中相應(yīng)的進(jìn)程能夠正常的啟動(dòng)。252.1.4 學(xué)生實(shí)踐練習(xí)配置 Hadoop 中 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 slaves 配置文件。具體操作是在集群環(huán)境下需要修改集群中 yarn.resourcemanager.hostname 的值為 Master,同時(shí)在 Hadoop目錄下 /etc/hadoop/slaves 文件中添加從機(jī)的主機(jī)名。將 Master 上的 jdk 文件夾、hadoop 文件夾、hadoop-record 文件夾以及環(huán)境變量 hadoop-eco.sh 遠(yuǎn)程拷貝到其他機(jī)器

44、,使用 scp -r 命令進(jìn)行遠(yuǎn)程拷貝。在 Master 機(jī)器上格式化 NameNode,只需要格式化 Master 機(jī)器即可。分別啟動(dòng) HDFS 和 YARN。輸入 Master 機(jī)器上的 IP 和 50070 端口查看集群情況。HDFS 命令行HDFS 的設(shè)計(jì)特點(diǎn)HDFS 的概念FS Shell 的常用命令Hadoop 命令運(yùn)用25202.3.1 HDFS 的設(shè)計(jì)特點(diǎn)在 2002 年,Google 發(fā)表的論文 GFS 中提到希望構(gòu)建一個(gè)能夠運(yùn)行于商業(yè)硬件集群上的以流式數(shù)據(jù)訪問(wèn)形式存儲(chǔ)超大文件的文件系統(tǒng),HDFS 就是為了實(shí)現(xiàn)這一目標(biāo)。HDFS 的設(shè)計(jì)特點(diǎn)如下:超大文件流式數(shù)據(jù)訪問(wèn)商用硬件不

45、能處理低時(shí)間延遲的數(shù)據(jù)訪問(wèn)不能存放大量小文件無(wú)法高效實(shí)現(xiàn)多用戶寫入或者任意修改文件2.3.2 HDFS 的概念在 HDFS 中有一些特殊的概念,需要特別重點(diǎn)的理解,分別有:數(shù)據(jù)塊:在普通的文件系統(tǒng)中,每個(gè)磁盤都有默認(rèn)的數(shù)據(jù)塊,這是磁盤進(jìn)行數(shù)據(jù)讀 / 寫的最小單位NameNode:它是 Hadoop 的 HDFS 的核心組件,它維護(hù)著文件系統(tǒng)樹和整棵樹內(nèi)所有的文件和目錄DataNode: DataNode 是文件系統(tǒng)的工作節(jié)點(diǎn),也就是數(shù)據(jù)節(jié)點(diǎn),它根據(jù)存儲(chǔ)需要檢索數(shù)據(jù)塊,并定期向 NameNode 發(fā)送它所存儲(chǔ)的塊的列表SecondNameNode: SecondNameNode 是對(duì)主 Name

46、Node 的一個(gè)補(bǔ)充,它會(huì)周期地執(zhí)行對(duì) HDFS 元數(shù)據(jù)的檢查點(diǎn)HDFS 的安全模式:在 NameNode 啟動(dòng)時(shí),首先將鏡像文件 fsimage 載入內(nèi)存,并執(zhí)行編輯日志 edits 中的各項(xiàng)操作數(shù)據(jù)完整性:在 Hadoop 系統(tǒng)中檢測(cè)數(shù)據(jù)完整性是一個(gè)常見(jiàn)的措施2.3.3 FS Shell的常用命令在 Hadoop 中,大多數(shù) FS Shell 命令的行為和對(duì)應(yīng)的 Unix Shell 命令類似,不同之處會(huì)在下面介紹各命令使用詳情時(shí)指出。常用命令如下:Mkdir:創(chuàng)建路徑中的各級(jí)父目錄hadoopfs-mkdirhadoop fs -mkdir /user/hadoop/dir1hadoop

47、 fs -mkdir -p /user/hadoop/dir1 /user/hadoop/dir22.3.3 FS Shell的常用命令put:從本地文件系統(tǒng)中復(fù)制單個(gè)或多個(gè)源路徑到目標(biāo)文件系統(tǒng)hadoopfs-put.hadoop fs -put localfile /user/hadoop/hadoopfilehadoop fs -put localfile1 localfile2 /user/hadoop/hadoopdirhadoop fs -put - hdfs:/host:port/hadoop/hadoopfile2.3.3 FS Shell的常用命令get:復(fù)制文件到本地文件系

48、統(tǒng)hadoopfs-get-ignorecrc-crchadoop fs -get /user/hadoop/file localfilehadoop fs -get hdfs:/host:port/user/hadoop/file localfile2.3.3 FS Shell的常用命令mv:移動(dòng)文件hadoopfs-mvURIURIhadoop fs -mv /user/hadoop/file1 /user/hadoop/file2hadoop fs -mv hdfs:/host:port/file1 hdfs:/host:port/file2 hdfs:/host:port/dir12.

49、3.3 FS Shell的常用命令cat:輸出文件內(nèi)容hadoopfs-catURIURIhadoop fs -cat hdfs:/host1:port1/file1 hdfs:/host2:port2/file2hadoop fs -cat file:/file3 /user/hadoop/file42.3.3 FS Shell的常用命令ls:返回文件或目錄列表信息hadoopfs-lshadoop fs -ls /user/hadoop/file1 hdfs:/host:port/user/hadoop/dir1 /nonexistentfile2.3.3 FS Shell的常用命令ls

50、-R:遞歸返回文件或目錄列表信息hadoopfs-ls-Rhadoop fs -ls -R /user/hadoop/dir12.3.3 FS Shell的常用命令rm:刪除指定的文件hadoopfs-rmURIURIhadoop fs -rm hdfs:/host:port/file /user/hadoop/emptydir2.3.3 FS Shell的常用命令rm -r:刪除指定的文件hadoopfs-rm-rURIURIhadoop fs -rm -r /user/hadoop/dirhadoop fs -rm -r hdfs:/host:port/user/hadoop/dir2.3

51、.3 FS Shell的常用命令touchz :創(chuàng)建一個(gè) 0 字節(jié)的空文件hadoopfs-touchzpathnamehadoop -touchz /user/hadoop/null.txt2.3.3 FS Shell的常用命令chown :改變文件的擁有者h(yuǎn)adoopfs-chown-ROWNER:GROUPURIURIhadoop fs -chown hadoop /my.txt2.3.3 FS Shell的常用命令chmod :改變文件的權(quán)限hadoopfs-chmod-RURIURIhadoop fs -chmod 777 /user2.3.3 FS Shell的常用命令expung

52、e :清空回收站hadoopfs-expunge2.3.3 FS Shell的常用命令stat :返回路徑的統(tǒng)計(jì)信息hadoopfs-statURIURIhadoop fs -stat path2.3.3 FS Shell的常用命令tail :將文件尾部 1K 字節(jié)的內(nèi)容輸出hadoopfs-tail-fURIhadoop fs -tail pathname2.3.3 FS Shell的常用命令text :將源文件輸出為文本格式hadoopfs-texthadoop fs -text /test.gz2.4.2 學(xué)生實(shí)踐練習(xí)使用 FS Shell 操作 HDFS 中的文件,上傳一個(gè) txt 格

53、式的文本文件到 HDFS 的指定目錄下,查看文件信息并輸出文件內(nèi)容252.4.2 學(xué)生實(shí)踐練習(xí)使用 mkdir 命令創(chuàng)建目錄使用 put 命令從本地文件系統(tǒng)中復(fù)制單個(gè)或多個(gè)源路徑到目標(biāo)文件系統(tǒng)使用 ls 命令返回文件或目錄列表信息使用 cat 命令輸出文件內(nèi)容HDFS Java API搭建開(kāi)發(fā)環(huán)境客戶端對(duì)象與文件操作Hadoop Java API 運(yùn)用25202.4.1 搭建開(kāi)發(fā)環(huán)境HDFS 提供了與客戶端進(jìn)行交互的一系列 Java API,方便通過(guò)其他途徑對(duì) HDFS 上存儲(chǔ)的文件進(jìn)行管理。需要引入依賴包和編譯 Hadoop 源碼。org.apache.hadoophadoop-client

54、2.7.3引入 maven 依賴2.4.1 搭建開(kāi)發(fā)環(huán)境建議在 Linux 上進(jìn)行 Hadoop 應(yīng)用的開(kāi)發(fā),避免出現(xiàn)兼容性的問(wèn)題。如需在 Windows 上做客戶端應(yīng)用開(kāi)發(fā),需要設(shè)置以下環(huán)境:在 Windows 的某個(gè)目錄下解壓一個(gè) Hadoop 的安裝包在 Windows 平臺(tái)下編譯 Hadoop 源碼將安裝包下的 lib 和 bin 目錄用對(duì)應(yīng) Windows 版本平臺(tái)編譯的本地庫(kù)替換在 Windows 系統(tǒng)中配置 HADOOP_HOME 指向剛才解壓的安裝包在 Windows 系統(tǒng)的 path 變量中加入 Hadoop 的 bin 目錄2.4.2 客戶端對(duì)象與文件操作import or

55、g.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.BlockLocation;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.LocatedFileStatus;import org.apache.hadoop.fs.Path;import org.apache.hadoop.fs.RemoteIterator;引入 jar 包private void init() Configuration conf=new Configurati

56、on(); try FileSystem fs=FileSystem.get(conf); catch (IOException e) e.printStackTrace(); 創(chuàng)建本地文件系統(tǒng)的客戶端對(duì)象Configuration conf=null;FileSystem fs=null;private void init() conf=new Configuration(); try fs=FileSystem.get(new URI(hdfs:/master:9000), conf, root); catch (IOException | InterruptedException | U

57、RISyntaxException e) e.printStackTrace(); 創(chuàng)建分布式系統(tǒng)的客戶端對(duì)象public void testMkdir() try boolean bool=fs.mkdirs(new Path(/data);System.out.println(bool); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 創(chuàng)建文件夾public void testUpload() try fs.copyFromLocalFile(new Path(E:test.txt),new Pa

58、th(/data); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 將本地文件拷貝到 HDFS 中public void testDown() try fs.copyToLocalFile(new Path(/data/test.txt),new Path(E:testDown.txt); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 將 HDFS 中的文件拷貝到本地public void testRenam

59、e() try boolean bool=fs.rename(new Path(/data), new Path(/dir);System.out.println(bool); catch (IllegalArgumentException | IOException e) e.printStackTrace(); 重命名文件或文件夾名稱public void testDelete() try boolean bool = fs.deleteOnExit(new Path(/dir/test.txt);System.out.println(bool); catch (IllegalArgume

60、ntException | IOException e) e.printStackTrace(); 刪除文件或文件夾public void testListFile() try RemoteIterator listFiles=fs.listFiles(new Path(/), true);while(listFiles.hasNext()LocatedFileStatus fileStatus=listFiles.next();System.out.println(fileStatus.getPath().getName();System.out.println(fileStatus.get

溫馨提示

  • 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)論