Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第1頁
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第2頁
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第3頁
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第4頁
Hadoop數(shù)據(jù)分析與應(yīng)用(PPT)課件_第5頁
已閱讀5頁,還剩377頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

9、責(zé)對數(shù)據(jù)的分布式存儲YARN 架構(gòu):YARN 架構(gòu)是一個資源調(diào)度和管理的平臺MapReduce 架構(gòu):MapReduce 架構(gòu)依賴于磁盤 I/O 的批處理計算模型Linux 系統(tǒng)環(huán)境配置Java 環(huán)境的安裝與配置配置 SSH2520在 Linux 系統(tǒng)中配置 Java 運行環(huán)境和 SSH 免密登錄實踐時間: 分鐘251.3.1 Java 環(huán)境的安裝與配置Hadoop 運行在 Linux 系統(tǒng)中,因此在部署 Hadoop 之前需要對當前使用的 Linux 系統(tǒng)進行配置。主要包括 Java運行環(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īng)機器,如果不設(shè)置免密,則需要手動輸入密碼,這樣會給

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

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

14、oop 的常用端口和缺省配置文件說明Hadoop 偽分布式是一臺機器,既充當 NameNode,又充當 DataNode。沒有在多臺機器上進行分布式計算,故稱為“偽分布式”。Hadoop 常用端口說明:守護進程Web 界面Web 界面NameNode http:/nn_host:port/默認端口號 50070ResourceManager http:/rm_host:port/默認端口號 8088MapReduceJobHistoryServerhttp:/jhs_host:port/ 默認端口號 198881.4.1 Hadoop 的常用端口和缺省配置文件說明core-site.xml 說

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

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

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

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

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

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

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

22、-dir-suffix logs后綴追加到遠程日志目錄。日志將被匯總到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 的常用端口和缺省配置文件說明mapred-site.xml 說明見表:參數(shù)屬性值 解釋 yarn執(zhí)行框架設(shè)置為 HadoopYARNmapreduce.

23、map.memory.mb 1536設(shè)置 Maps 對于較大資源的限制mapreduce.reduce.memory.mb 3072設(shè)置 Reduces 對于較大資源的限制mapreduce.task.io.sort.mb 512設(shè)置數(shù)據(jù)進行排序的內(nèi)存大小mapreduce.task.io.sort.factor100在文件排序中將流進行合并mapreduce.reduce.shuffle.parallelcopies50通過 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ù)據(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)建分布式時,需先手動創(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 啟動輸入:hdfs namenode -format格式化 NameNode輸入:start-dfs.sh輸入:jps啟動 HDFS輸入:start-yarn.sh輸入:jps輸入:IP:50070啟動 YARN1.4.4 在Hadoop上實現(xiàn)單詞計

28、數(shù)本章使用 Hadoop 中自帶的 jar 包,實現(xiàn)文檔中單詞個數(shù)的統(tǒng)計功能輸入:vi hello(1)在 opt 目錄下編寫一個測試文檔,添加兩行語句:第一行:“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 操作運行 Hadoop 中自帶的 jar 進行單詞計數(shù)輸入:hadoop fs -cat /out/part-r-00000使用 cat 查看統(tǒng)計結(jié)果1.4.5 學(xué)生實踐練習(xí)在 Linux 中安裝 Hadoop,編寫一個文件,運行 jar 包實現(xiàn)單詞計數(shù)功能。251.4.5 學(xué)生實踐練習(xí)上傳 Hadoop 壓縮包到 Linux 中。解壓文件,配置環(huán)境變量。在 hadoop-eco.sh 中追加相關(guān)內(nèi)容后,保存并退出。配置 Hadoop 的配置文件。啟動 Hadoop。在啟動之前需要先格式化 NameNode,然后啟動 HDFS,最后啟動 YARN。編寫文件上傳至 HDFS

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

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

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

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

34、IP 地址 機器名 類型 用戶名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= # 默認網(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主機名查詢靜態(tài)表配置步驟2.1.3 配置 SSH 免密Hadoop 集群之間的機器是通過 SSH 協(xié)議進行通信和協(xié)調(diào)工作的,而 SSH 進行遠程登錄需要密碼驗證,為了方便 Hadoop 集群之間的機器能夠暢通的交互,需要在 Had

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

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

38、site.xml 配置文件,具體修改集群中 NameNode 結(jié)點的 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 從機配置文件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 文件遠程拷貝到其他機器輸入: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 文件遠程拷貝到其他機器輸入: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 文件遠程拷貝到其他機器輸入:scp -r /opt/hadoop slave01:/opt/hadoopscp -r /opt/hadoop slave02:/opt/hadoopscp -r /opt/hadoop slave03:/opt/hadoop將 hadoop 文件遠程拷貝到其他機器2.2.2 Ha

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

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

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

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

46、Node 的一個補充,它會周期地執(zhí)行對 HDFS 元數(shù)據(jù)的檢查點HDFS 的安全模式:在 NameNode 啟動時,首先將鏡像文件 fsimage 載入內(nèi)存,并執(zhí)行編輯日志 edits 中的各項操作數(shù)據(jù)完整性:在 Hadoop 系統(tǒng)中檢測數(shù)據(jù)完整性是一個常見的措施2.3.3 FS Shell的常用命令在 Hadoop 中,大多數(shù) FS Shell 命令的行為和對應(yīng)的 Unix Shell 命令類似,不同之處會在下面介紹各命令使用詳情時指出。常用命令如下:Mkdir:創(chuàng)建路徑中的各級父目錄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ù)制單個或多個源路徑到目標文件系統(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:移動文件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)建一個 0 字節(jié)的空文件hadoopfs-touchzpathnamehadoop -touchz /user/hadoop/null.txt2.3.3 FS Shell的常用命令chown :改變文件的擁有者hadoopfs-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)計信息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é)生實踐練習(xí)使用 FS Shell 操作 HDFS 中的文件,上傳一個 txt 格

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

54、2.7.3引入 maven 依賴2.4.1 搭建開發(fā)環(huán)境建議在 Linux 上進行 Hadoop 應(yīng)用的開發(fā),避免出現(xiàn)兼容性的問題。如需在 Windows 上做客戶端應(yīng)用開發(fā),需要設(shè)置以下環(huán)境:在 Windows 的某個目錄下解壓一個 Hadoop 的安裝包在 Windows 平臺下編譯 Hadoop 源碼將安裝包下的 lib 和 bin 目錄用對應(yīng) Windows 版本平臺編譯的本地庫替換在 Windows 系統(tǒng)中配置 HADOOP_HOME 指向剛才解壓的安裝包在 Windows 系統(tǒng)的 path 變量中加入 Hadoop 的 bin 目錄2.4.2 客戶端對象與文件操作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)的客戶端對象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)的客戶端對象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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論