Spark大數(shù)據(jù)分析技術(shù)(Python版)課件全套 曹潔 第1-8章 大數(shù)據(jù)技術(shù)概述、Spark大數(shù)據(jù)處理框架-數(shù)據(jù)可視化_第1頁
Spark大數(shù)據(jù)分析技術(shù)(Python版)課件全套 曹潔 第1-8章 大數(shù)據(jù)技術(shù)概述、Spark大數(shù)據(jù)處理框架-數(shù)據(jù)可視化_第2頁
Spark大數(shù)據(jù)分析技術(shù)(Python版)課件全套 曹潔 第1-8章 大數(shù)據(jù)技術(shù)概述、Spark大數(shù)據(jù)處理框架-數(shù)據(jù)可視化_第3頁
Spark大數(shù)據(jù)分析技術(shù)(Python版)課件全套 曹潔 第1-8章 大數(shù)據(jù)技術(shù)概述、Spark大數(shù)據(jù)處理框架-數(shù)據(jù)可視化_第4頁
Spark大數(shù)據(jù)分析技術(shù)(Python版)課件全套 曹潔 第1-8章 大數(shù)據(jù)技術(shù)概述、Spark大數(shù)據(jù)處理框架-數(shù)據(jù)可視化_第5頁
已閱讀5頁,還剩385頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大數(shù)據(jù)技術(shù)概述1 大數(shù)據(jù)的基本概念2 代表性大數(shù)據(jù)技術(shù)3 大數(shù)據(jù)編程語言1大數(shù)據(jù)的基本概念對于什么是大數(shù)據(jù),目前尚未有統(tǒng)一定義。維基百科給出的大數(shù)據(jù)定義是:

大數(shù)據(jù)是指無法使用傳統(tǒng)和常用的軟件技術(shù)和工具在一定時間內(nèi)完成獲取、管理和處理的數(shù)據(jù)集。麥肯錫全球研究所給出的定義是:一種規(guī)模大到在獲取、存儲、管理、分析方面大大超出了傳統(tǒng)軟件工具能力范圍的數(shù)據(jù)集合,具有海量的數(shù)據(jù)規(guī)模、快速的數(shù)據(jù)流轉(zhuǎn)、多樣的數(shù)據(jù)類型和價值密度低四大特征。研究機(jī)構(gòu)Gartner給出了這樣的大數(shù)據(jù)定義:“大數(shù)據(jù)”是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力來適應(yīng)海量、高增長率和多樣化的信息資產(chǎn)。大數(shù)據(jù)的定義1大數(shù)據(jù)的基本概念大數(shù)據(jù)有4個特征,簡稱4V:Volume、Variety、Value、Velocity。數(shù)據(jù)量大(Volume)。數(shù)據(jù)量大包括采集、存儲和計算的量都非常大。大數(shù)據(jù)的起始計量單位至少是P(1000個T)、E(100萬個T)或Z(10億個T)。數(shù)據(jù)類型多(Variety)。數(shù)據(jù)類型多是種類和來源多樣化。包括結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)。價值密度低(Value)。在大數(shù)據(jù)時代,很多有價值的信息都是分散在海量數(shù)據(jù)中的。傳統(tǒng)數(shù)據(jù)基本都是結(jié)構(gòu)化數(shù)據(jù),每個字段都是有用的,價值密度非常高。速度快(Velocity)。數(shù)據(jù)的增長速度快、數(shù)據(jù)的處理速度快,快速度是大數(shù)據(jù)處理技術(shù)和傳統(tǒng)的數(shù)據(jù)挖掘技術(shù)最大的區(qū)別。大數(shù)據(jù)的特征1大數(shù)據(jù)的基本概念大數(shù)據(jù)思維包括三個方面:全樣思維:大數(shù)據(jù)與“小數(shù)據(jù)”的根本區(qū)別在于大數(shù)據(jù)采用全樣思維方式,人們可以采集和分析更多的數(shù)據(jù),有時候甚至可以處理和某個特別現(xiàn)象相關(guān)的所有數(shù)據(jù),而不再受制于隨機(jī)采樣。相關(guān)思維:所謂相關(guān)關(guān)系,就是當(dāng)一個或幾個相互聯(lián)系的變量取一定的數(shù)值時,與之相對應(yīng)的另一變量的值雖然不確定,但它仍按某種規(guī)律在一定的范圍內(nèi)變化。相關(guān)關(guān)系也許不能準(zhǔn)確地告訴我們某件事情為何會發(fā)生,但是它會提醒我們這件事情即將發(fā)送或正在發(fā)生。容錯思維:在大數(shù)據(jù)時代,隨著數(shù)據(jù)規(guī)模的擴(kuò)大,和內(nèi)容分析研究相關(guān)的數(shù)據(jù)非常多,對精確度的要求減弱。人們不再需要對一個現(xiàn)象刨根問底,只要掌握了大體的發(fā)展方向即可,適當(dāng)忽略微觀層面上的精確度,會讓人們在宏觀層面更好地把握事物的發(fā)展方向。大數(shù)據(jù)思維大數(shù)據(jù)技術(shù)概述1 大數(shù)據(jù)的基本概念2

代表性大數(shù)據(jù)技術(shù)3 大數(shù)據(jù)編程語言2代表性大數(shù)據(jù)技術(shù)Hadoop是基于Java語言開發(fā)的,可以部署在廉價的計算機(jī)集群上的開源的、可靠的、可擴(kuò)展的分布式并行計算框架,具有很好的跨平臺特性。Hadoop的核心是:HDFS(HadoopDistributedFileSystem,分布式文件系統(tǒng))

MapReduce(分布式并行計算編程模型)Hadoop2代表性大數(shù)據(jù)技術(shù)HDFS是建立在一組分布式服務(wù)器節(jié)點的本地文件系統(tǒng)之上的分布式文件系統(tǒng)。HadoopHDFS采用Master/Slave的架構(gòu)來存儲數(shù)據(jù),這種架構(gòu)主要由四個部分組成,分別為Client(客戶端)、NameNode(名稱節(jié)點、管理節(jié)點)、DataNode(數(shù)據(jù)節(jié)點)和SecondaryNameNode(第二名稱節(jié)點)。一個DataNode節(jié)點運行一個DataNode進(jìn)程,負(fù)責(zé)管理它所在節(jié)點上的數(shù)據(jù)存儲。NameNode和DataNode共同協(xié)調(diào)完成分布式的文件存儲服務(wù)。2代表性大數(shù)據(jù)技術(shù)MapReduce的執(zhí)行流程如圖1-2所示。Hadoop將一個大數(shù)據(jù)文件通過一定的數(shù)據(jù)劃分方法,劃分成多個較小的具有同樣計算過程的數(shù)據(jù)塊,數(shù)據(jù)塊以<key,value>鍵值對的形式表示,數(shù)據(jù)塊之間不存在依賴關(guān)系。2代表性大數(shù)據(jù)技術(shù)MapReduce的執(zhí)行流程如圖1-2所示。Hadoop將這些數(shù)據(jù)塊分給不同的Map任務(wù)(執(zhí)行map()函數(shù))去處理,每個Map任務(wù)通常運行在存儲數(shù)據(jù)的節(jié)點上,這樣計算和數(shù)據(jù)在一個節(jié)點上,不需要額外的數(shù)據(jù)傳輸開銷。當(dāng)Map任務(wù)結(jié)束后,會生成以<key,value>鍵值對形式表示的許多中間結(jié)果(保存在本地存儲中,如本地磁盤)。2代表性大數(shù)據(jù)技術(shù)MapReduce的執(zhí)行流程如圖1-2所示。Hadoop然后,這些中間結(jié)果會劃分成和Reduce任務(wù)數(shù)相等的多個分區(qū),不同的分區(qū)被分發(fā)給不同的Reduce任務(wù)(執(zhí)行reduce()函數(shù))進(jìn)行處理,具有相同key的<key,value>會被發(fā)送到同一個Reduce任務(wù)那里,Reduce任務(wù)對中間結(jié)果進(jìn)行匯總計算得到新的鍵值對作為最終結(jié)果,并輸出到分布式文件系統(tǒng)中。2代表性大數(shù)據(jù)技術(shù)Spark是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎。Spark是UCBerkeleyAMPlab(加州大學(xué)伯克利分校的AMP實驗室)所開源的類HadoopMapReduce的通用并行框架。SparkSpark優(yōu)點:擁有HadoopMapReduce所具有的優(yōu)點;Job中間輸出結(jié)果可以保存在內(nèi)存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)等需要迭代的MapReduce的算法。Spark與

Hadoop不同點:Spark啟用了內(nèi)存分布數(shù)據(jù)集,除了能夠提供交互式查詢外,它還可以優(yōu)化迭代工作負(fù)載。2代表性大數(shù)據(jù)技術(shù)Flink是一個框架和分布式處理引擎,用于在無界和有界數(shù)據(jù)流上進(jìn)行有狀態(tài)計算。Flink被設(shè)計為在通用集群環(huán)境中運行,以內(nèi)存速度執(zhí)行任意規(guī)模的計算。Flink流處理:當(dāng)一條數(shù)據(jù)被處理完成后,序列化到緩存中,然后立刻通過網(wǎng)絡(luò)傳輸?shù)较乱粋€節(jié)點,由下一個節(jié)點繼續(xù)處理。批處理:當(dāng)一條數(shù)據(jù)被處理完成后,序列化到緩存中,并不會立刻通過網(wǎng)絡(luò)傳輸?shù)较乱粋€節(jié)點,而是當(dāng)緩存寫滿后,持久化到本地硬盤上,當(dāng)所有數(shù)據(jù)都被處理完成后,才開始將處理后的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)较乱粋€節(jié)點。流處理的優(yōu)勢是低延遲,批處理的優(yōu)勢是高吞吐,而Flink可以通過調(diào)整緩存塊的超時閾值,靈活地權(quán)衡系統(tǒng)延遲和吞吐量。大數(shù)據(jù)技術(shù)概述1 大數(shù)據(jù)的基本概念2 代表性大數(shù)據(jù)技術(shù)3 大數(shù)據(jù)編程語言3

大數(shù)據(jù)編程語言Spark大數(shù)據(jù)處理框架支持支持

Scala、Java、Python三種語言進(jìn)行應(yīng)用程序開發(fā)。大數(shù)據(jù)編程語言首選編程語言是Scala,因為Spark本身就是用Scala語言開發(fā)的,用Scala語言編寫Spark應(yīng)用程序,可以獲得最好的性能。其次是Python,最后才是Java。Spark也提供了支持Python編程的編程模型PySpark,使得Python可以作為Spark開發(fā)語言之一。盡管現(xiàn)在PySpark還不能支持所有的SparkAPI,但是以后的支持度會越來越高。Java也可以作為Spark的開發(fā)語言之一,但是相對于前兩者而言,目前沒有太大優(yōu)勢。

Spark大數(shù)據(jù)處理框架1 Spark概述2 Spark運行機(jī)制3

在VirtualBox上安裝Linux集群4Hadoop安裝前的準(zhǔn)備工作5Hadoop的安裝與配置6Spark的安裝及配置7

使用PySpark編寫Python代碼8 安裝pip工具和一些常用的數(shù)據(jù)分析庫9安裝Anaconda和配置JupyterNotebook1Spark概述MapReduce框架存在以下局限性。僅支持Map和Reduce兩種操作。數(shù)據(jù)處理的每一步都需要一個Map階段和一個Reduce階段。處理效率低效。Map中間結(jié)果寫磁盤,Reduce中間結(jié)果寫HDFS,多個MapReduce之間通過HDFS交換數(shù)據(jù),任務(wù)調(diào)度和啟動開銷大。Map和Reduce均需要排序,但是有的任務(wù)處理完全不需要排序(比如求最大值求最小值等),所以就造成了性能的低效。不適合做迭代計算(如機(jī)器學(xué)習(xí)、圖計算等)、交互式處理(如數(shù)據(jù)挖掘)和流式處理(如日志分析)。Spark產(chǎn)生背景1Spark概述Spark處理數(shù)據(jù)時,所有的中間數(shù)據(jù)都保存在內(nèi)存中,從而減少磁盤讀寫操作,提高了框架計算效率。Spark的優(yōu)點。運行速度快。Spark基于磁盤做迭代計算比基于磁盤做迭代計算的MapReduce快10余倍;Spark基于內(nèi)存的迭代計算則比基于磁盤做迭代計算的MapReduce快100倍以上。易用性好。Spark支持Java、Python、Scala等語言進(jìn)行編程,支持交互式的Pytbon和Scala的shell。通用性強(qiáng)。Spark提供了批處理、交互式查詢、實時流處理、機(jī)器學(xué)習(xí)和圖計算等組件,這些組件都可以在同一個應(yīng)用中無縫使用。兼容性好。Spark可以與其他的大數(shù)據(jù)處理產(chǎn)品進(jìn)行融合,如Spark可以使用Hadoop的YARN作為它的資源管理和調(diào)度器。Spark也有自己的資源管理和調(diào)度框架Standalone。Spark的優(yōu)點1Spark概述Spark的應(yīng)用場景主要有以下幾個。適用于需要多次操作特定數(shù)據(jù)集的應(yīng)用場合。Spark不適用那種異步細(xì)粒度更新狀態(tài)的應(yīng)用,例如Web服務(wù)的存儲或者是增量的Web爬蟲和索引。數(shù)據(jù)量不是特別大,但是要求實時統(tǒng)計分析需求。Spark應(yīng)用場景1Spark概述Spark是一個大數(shù)據(jù)并行計算框架,Spark有著自己的生態(tài)系統(tǒng),同時兼容HDFS、Hive等分布式存儲系統(tǒng),可以完美融入Hadoop的生態(tài)圈中,代替MapReduce去執(zhí)行更為高效的分布式計算。Spark生態(tài)系統(tǒng)

Spark大數(shù)據(jù)處理框架1 Spark概述2 Spark運行機(jī)制3

在VirtualBox上安裝Linux集群4Hadoop安裝前的準(zhǔn)備工作5Hadoop的安裝與配置6Spark的安裝及配置7

使用PySpark編寫Python代碼8 安裝pip工具和一些常用的數(shù)據(jù)分析庫9安裝Anaconda和配置JupyterNotebook2Spark運行機(jī)制彈性分布式數(shù)據(jù)集(簡稱RDD):只讀分區(qū)記錄的集合,Spark對所處理數(shù)據(jù)的基本抽象。Spark中的計算可以抽象為對RDD進(jìn)行創(chuàng)建、轉(zhuǎn)換和返回操作結(jié)果的過程。Spark基本概念通過加載外部物理存儲(如HDFS)中的數(shù)據(jù)集,或當(dāng)前運行的應(yīng)用中定義的對象集合(如List)來創(chuàng)建RDD。RDD在創(chuàng)建后不可被改變,只可以對其執(zhí)行轉(zhuǎn)換操作和行動操作。分區(qū):一個RDD在物理上被切分為多個數(shù)據(jù)分區(qū),這些分區(qū)可以分布在集群中的不同節(jié)點上,從而讓RDD中的數(shù)據(jù)可以被并行操作。分區(qū)是Spark計算任務(wù)的基本處理單位,決定了并行計算的粒度。Spark應(yīng)用(Application):指的是用戶使用SparkAPI編寫的應(yīng)用程序。應(yīng)用的main()函數(shù)為應(yīng)用程序的入口。2Spark運行機(jī)制驅(qū)動程序(Driver)和執(zhí)行器(Executor):Spark在執(zhí)行每個應(yīng)用的過程中會啟動驅(qū)動程序和執(zhí)行器兩種JVM進(jìn)程。驅(qū)動程序運行用戶應(yīng)用中的main()函數(shù),創(chuàng)建SparkContext對象,準(zhǔn)備Spark應(yīng)用程序的運行環(huán)境。Spark基本概念驅(qū)動程序也負(fù)責(zé)提交Job,并將Job轉(zhuǎn)化為Task,在各個執(zhí)行器進(jìn)程間協(xié)調(diào)Task的調(diào)度。在一個應(yīng)用中,每個行動操作都觸發(fā)生成一個作業(yè)(Job)。作業(yè):在一個用戶應(yīng)用中,每個行動操作都觸發(fā)生成一個作業(yè)。Spark對RDD采用惰性求解機(jī)制,對RDD的創(chuàng)建和轉(zhuǎn)換并不會立即執(zhí)行,只有在遇到行動操作時才會生成一個作業(yè),然后統(tǒng)一調(diào)度執(zhí)行。一個作業(yè)會被拆分為多組任務(wù),每組任務(wù)被稱為階段(Stage),或者被稱為任務(wù)集(TaskSet)。2Spark運行機(jī)制洗牌(Shuffle):有一部分轉(zhuǎn)換操作或行動操作會讓RDD產(chǎn)生寬依賴,這樣RDD操作過程就像是將父RDD中所有分區(qū)的Record進(jìn)行了“洗牌”(Shuffle),數(shù)據(jù)被打散重組。Spark基本概念任務(wù)(Task):一個Job在每個Stage內(nèi)都會按照RDD的Partition數(shù)量,創(chuàng)建多個Task。任務(wù)(Task)是運行在執(zhí)行器(Executor)上的工作單元,單個分區(qū)數(shù)據(jù)集上的最小處理流程單元。階段(Stage):用戶提交的應(yīng)用程序的計算過程表示為一個由RDD構(gòu)成的DAG,如果RDD在轉(zhuǎn)換的時候需要做Shuffle,那么這個Shuffle的過程就將這個DAG分為了不同的階段(Stage)。工作節(jié)點(WorkerNode):Spark的工作節(jié)點,用于執(zhí)行提交的作業(yè)資源管理器(ClusterManager):Spark以Spark自帶的Standalone、Hadoop的YARN等為資源管理器調(diào)度Job完成Spark應(yīng)用程序的計算。2Spark運行機(jī)制Spark運行架構(gòu),主要包括集群資源管理器(ClusterManager)、運行作業(yè)任務(wù)的工作結(jié)點(WorkerNode)、驅(qū)動程序(DriverProgram)和每個工作結(jié)點上負(fù)責(zé)具體任務(wù)的執(zhí)行器(Executor)。Spark運行架構(gòu)DriverProgram負(fù)責(zé)執(zhí)行Application中的main()函數(shù),準(zhǔn)備Application的運行環(huán)境,創(chuàng)建SparkContext(應(yīng)用上下文)對象,進(jìn)而用他來創(chuàng)建RDD,提交Job,并將Job轉(zhuǎn)化為多組任務(wù),在各個Executor進(jìn)程間協(xié)調(diào)任務(wù)的調(diào)度執(zhí)行。此外,SparkContext對象還負(fù)責(zé)和ClusterManager進(jìn)行通信、資源申請、任務(wù)分配和運行監(jiān)控等。2Spark運行機(jī)制Spark運行架構(gòu)ClusterManager負(fù)責(zé)申請和管理在WorkerNode上運行應(yīng)用所需的資源。ClusterManager負(fù)責(zé)申請和管理在WorkerNode上運行應(yīng)用所需的資源。Executor是應(yīng)用運行在Worker節(jié)點上的一個進(jìn)程,負(fù)責(zé)運行應(yīng)用的某些Task,并將結(jié)果返回給Driver,同時為需要緩存的RDD提供存儲功能。每個應(yīng)用都有各自獨立的一批Executor。2Spark運行機(jī)制Spark運行架構(gòu)與MapReduce計算框架相比,Spark采用Executor具有如下兩大優(yōu)勢。(1)Executor利用多線程來執(zhí)行任務(wù),相比MapReduce的進(jìn)程模型,使用的資源和啟動開銷要小很多。(2)Executor中有一個BlockManager存儲模塊,BlockManager會將內(nèi)存和磁盤共同作為存儲設(shè)備,當(dāng)需要多輪迭代計算的時候,可以將中間結(jié)果存儲到這個存儲模塊里,供下次需要時直接使用,而不需要從磁盤中讀取,從而有效減少I/O開銷。。Worker節(jié)點上的不同Executor服務(wù)于不同的應(yīng)用,它們之間是不共享數(shù)據(jù)的。

Spark大數(shù)據(jù)處理框架1 Spark概述2 Spark運行機(jī)制3在VirtualBox上安裝Linux集群4Hadoop安裝前的準(zhǔn)備工作5Hadoop的安裝與配置6Spark的安裝及配置7

使用PySpark編寫Python代碼8 安裝pip工具和一些常用的數(shù)據(jù)分析庫9安裝Anaconda和配置JupyterNotebook3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝VirtualBox軟件的版本為VirtualBox-6.1.26,在VirtualBox里可以創(chuàng)建多個虛擬機(jī)(這些虛擬機(jī)的操作系統(tǒng)可以是Windows也可以是Linux)。本節(jié)介紹如何在VirtualBox上安裝Linux操作系統(tǒng):為VirtualBox設(shè)置存儲文件夾:創(chuàng)建虛擬電腦時,VirtualBox會創(chuàng)建一個文件夾,用于存儲這個虛擬電腦的所有數(shù)據(jù)。VirtualBox啟動后的界面:3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝為VirtualBox設(shè)置存儲文件夾:創(chuàng)建虛擬電腦時,VirtualBox會創(chuàng)建一個文件夾,用于存儲這個虛擬電腦的所有數(shù)據(jù)。單擊左上角管理→全局設(shè)定→常規(guī),修改默認(rèn)虛擬電腦位置為自己想要存儲虛擬電腦的位置,這里設(shè)置為E盤VirtualBox文件夾,單擊OK確認(rèn)。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在VirtualBox中創(chuàng)建虛擬機(jī):啟動VirtualBox軟件,在界面右上方點擊“新建”按鈕,打開新建虛擬電腦界面,在“名稱”后面的文本框中輸入虛擬機(jī)名稱,名稱填寫Master;在“類型”后面的下拉列表中選擇Linux;在“版本”后面的下拉列表中選擇要安裝的Linux系統(tǒng)類型及位數(shù),本書選擇安裝的是64位Ubuntu系統(tǒng)。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在VirtualBox中創(chuàng)建虛擬機(jī):單擊“下一步”按鈕,設(shè)置虛擬機(jī)內(nèi)存大小。根據(jù)個人計算機(jī)配置給虛擬機(jī)設(shè)置內(nèi)存大小,一般情況下沒有特殊要求默認(rèn)即可。這里將虛擬機(jī)內(nèi)存設(shè)置為2GB。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在VirtualBox中創(chuàng)建虛擬機(jī):單擊“下一步”按鈕,設(shè)置磁盤,選擇“現(xiàn)在創(chuàng)建虛擬硬盤”選項。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在VirtualBox中創(chuàng)建虛擬機(jī):單擊“創(chuàng)建”按鈕,選擇虛擬硬盤文件類型,這里選擇VDI(VirtualBox磁盤映象)。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在VirtualBox中創(chuàng)建虛擬機(jī):單擊“下一步”按鈕,設(shè)置虛擬硬盤文件的存放方式,如果磁盤空間較大,就選擇固定大小,這樣可以獲得較好的性能;如果硬盤空間比較緊張,就選擇動態(tài)分配。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在VirtualBox中創(chuàng)建虛擬機(jī):單擊“下一步”按鈕,設(shè)置虛擬硬盤文件的存放位置和大小,默認(rèn)會保存在之前配置過的VirtualBox目錄下,虛擬硬盤的大小設(shè)置為20GB。點擊“瀏覽”選擇一個容量充足的硬盤來存放它,單擊“創(chuàng)建”按鈕完成虛擬電腦的創(chuàng)建。然后,就可以在這個新建的虛擬機(jī)上安裝Linux系統(tǒng)。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):按照上面的步驟完成虛擬電腦的創(chuàng)建以后,會返回到此界面。這時請勿直接單擊“啟動”按鈕,否則,有可能會導(dǎo)致安裝失敗。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):選擇剛剛創(chuàng)建的虛擬機(jī),然后單擊右上方的設(shè)置按鈕打開“Master-設(shè)置”頁面。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊左側(cè)存儲按鈕打開存儲設(shè)置頁面,然后單擊“沒有盤片”,單擊右側(cè)的小光盤圖標(biāo),單擊“選擇虛擬盤...”,選擇之前下載的Ubuntu系統(tǒng)安裝文件,本書選擇的Ubuntu系統(tǒng)安裝文件的版本是ubuntu-20.04.3-desktop-amd64.iso。單擊“OK”按鈕。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):選擇剛創(chuàng)建的虛擬機(jī)Master,單擊“啟動”按鈕。啟動后會看到Ubuntu安裝歡迎界面,安裝語言選擇中文(簡體)。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊“安裝Ubuntu”按鈕,在鍵盤布局界面中,鍵盤布局選擇English(US)。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊繼續(xù)按鈕,在彈出的更新和其他軟件界面中,設(shè)置如圖所示。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊繼續(xù)按鈕,在彈出的安裝類型界面中確認(rèn)安裝類型,這里選擇“其他選項”3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊“繼續(xù)”按鈕,在出現(xiàn)的界面中,單擊“新建分區(qū)表...”按鈕,在彈出的界面中單擊“繼續(xù)”按鈕,選中“空閑”。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊+按鈕,彈出創(chuàng)建分區(qū)界面,設(shè)置交換空間的大小設(shè)512MB3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊+按鈕,彈出創(chuàng)建分區(qū)界面,設(shè)置交換空間的大小設(shè)512MB單擊“OK”按鈕,在彈出的界面中選中“空閑”,然后單擊+按鈕,在彈出的界面中創(chuàng)建根目錄。3

在VirtualBox上安裝Linux集群Master節(jié)點的安裝在虛擬電腦上安裝Linux系統(tǒng):單擊“確定”按鈕,在出現(xiàn)的界面中單擊“現(xiàn)在安裝”按鈕,在彈出的界面中單擊“繼續(xù)”按鈕。在出現(xiàn)的“您在什么地方?”頁面,采用默認(rèn)值shanghai即可,單擊“繼續(xù)”,直到出現(xiàn)如圖“您是誰?”的設(shè)置界面設(shè)置用戶名和密碼,然后單擊繼續(xù),安裝過程正式開始,不要單擊Skip按鈕,等待自動安裝完成。3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。打開VirtualBox,進(jìn)入VirtualBox界面選中要導(dǎo)出的虛擬機(jī)實例,這里選擇的是Slave13

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。然后單擊上方的管理按鈕,在下來菜單中單擊“導(dǎo)出虛擬電腦(E)...3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。在彈出的界面中單擊下一步3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。在上面單擊“下一步”后彈出的界面中,選擇導(dǎo)出保存路徑3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。然后單擊“下一步”按鈕,在之后彈出的界面中單擊導(dǎo)出按鈕3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。正在進(jìn)行導(dǎo)出操作,導(dǎo)出結(jié)束后得到Slave1.ova文件。3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。點擊左上角管理→全局設(shè)定→常規(guī),修改默認(rèn)虛擬電腦位置以存儲導(dǎo)入的虛擬電腦,為E盤。單擊OK確認(rèn)。3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。在VirtualBox中單擊管理菜單下的“導(dǎo)入虛擬電腦(I)...”。3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。在彈出的界面中選擇前面得到Slave1.ova文件。3

在VirtualBox上安裝Linux集群虛擬機(jī)克隆安裝Slave1節(jié)點在VirtualBox系統(tǒng)中,可將已經(jīng)安裝配置好一個虛擬機(jī)實例像拷貝文件那樣復(fù)制得到相同的虛擬機(jī)系統(tǒng),稱為虛擬機(jī)克隆,具體實現(xiàn)步驟如下。然后單擊“下一步”在彈出的界面中勾選下面的“重新初始化所有網(wǎng)卡的MAC地址(R)”選項,最后單擊導(dǎo)入按鈕即可創(chuàng)建一個新的虛擬機(jī)實例。

Spark大數(shù)據(jù)處理框架1 Spark概述2 Spark運行機(jī)制3在VirtualBox上安裝Linux集群4Hadoop安裝前的準(zhǔn)備工作5Hadoop的安裝與配置6Spark的安裝及配置7

使用PySpark編寫Python代碼8 安裝pip工具和一些常用的數(shù)據(jù)分析庫9安裝Anaconda和配置JupyterNotebook4

Hadoop安裝前的準(zhǔn)備工作如果你安裝Ubuntu的時候不是用的“hadoop”用戶,那么需要增加一個名為hadoop的用戶,這樣做是為了方便后續(xù)軟件的安裝。打開一個終端,輸入如下命令創(chuàng)建hadoop用戶:$sudouseradd-mhadoop-s/bin/bash-m表示自動創(chuàng)建用戶的家目錄,-s指定/bin/bash作為用戶登入后所使用的Shell。為hadoop用戶設(shè)置登錄密碼:$sudopasswdhadoop為hadoop用戶增加管理員權(quán)限:$sudoadduserhadoopsudo創(chuàng)建hadoop用戶4

Hadoop安裝前的準(zhǔn)備工作創(chuàng)建hadoop用戶使用suhadoop切換到用戶hadoop。打開虛擬機(jī)后,通過簡單的設(shè)置可實現(xiàn)在Ubuntu與Windows之間互相復(fù)制與粘貼,具體實現(xiàn)過程:設(shè)備→共享粘貼板→雙向。更新apt源$sudoapt-getupdate安裝SSH、配置SSH無密碼登錄SSH是目前較可靠,專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH協(xié)議可以有效防止遠(yuǎn)程管理過程中的信息泄露問題。SSH是由客戶端和服務(wù)端組成,客戶端包含ssh程序以及像scp(遠(yuǎn)程拷貝)、slogin(遠(yuǎn)程登陸)、sftp(安全文件傳輸)等其他的應(yīng)用程序。4

Hadoop安裝前的準(zhǔn)備工作安裝SSH、配置SSH無密碼登錄SSH的工作機(jī)制是本地的客戶端發(fā)送一個連接請求到遠(yuǎn)程的服務(wù)端,服務(wù)端檢查申請的包和IP地址再發(fā)送密鑰給SSH的客戶端,本地再將密鑰發(fā)回給服務(wù)端,自此連接建立。Hadoop的名稱節(jié)點(NameNode)需要通過SSH來啟動Slave列表中各臺主機(jī)的守護(hù)進(jìn)程。由于SSH需要用戶密碼登錄,但Hadoop并沒有提供SSH輸入密碼登錄的形式,因此,為了能夠在系統(tǒng)運行中完成節(jié)點的免密碼登錄和訪問,需要將Slave列表中各臺主機(jī)配置為名稱節(jié)點免密碼登錄它們。配置SSH的主要工作是創(chuàng)建一個認(rèn)證文件,使得用戶以publickey方式登錄,而不用手工輸入密碼。4

Hadoop安裝前的準(zhǔn)備工作安裝SSH、配置SSH無密碼登錄Ubuntu默認(rèn)已安裝了SSHclient,此外還需要安裝SSHserver:$sudoapt-getinstallopenssh-server安裝后,可以使用如下命令登錄本機(jī):$sshlocalhost配置成SSH無密碼登錄,配置步驟如下:1)執(zhí)行如下命令生成秘鑰對cd~/.ssh/#若沒有該目錄,需先執(zhí)行一次sshlocalhostssh-keygen-trsa#生成秘鑰對,會有提示,都按回車即可2)加入授權(quán)cat./id_rsa.pub>>./authorized_keys#加入授權(quán)此時,再執(zhí)行sshlocalhost命令,不用輸入密碼就可以直接登錄了。4

Hadoop安裝前的準(zhǔn)備工作安裝Java環(huán)境1)下載jdk到“/home/hadoop/下載”目錄下:jdk-8u181-linux-x64.tar.gz2)將jdk解壓到/opt/jvm/文件夾中操作步驟:$sudomkdir/opt/jvm#創(chuàng)建目錄$sudotar-zxvf/home/hadoop/下載/jdk-8u181-linux-x64.tar.gz-C/opt/jvm3)配置jdk的環(huán)境變量,打開/etc/profile文件,在文件末尾添加下語句:exportJAVA_HOME=/opt/jvm/jdk1.8.0_181exportJRE_HOME=${JAVA_HOME}/jreexportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexportPATH=${JAVA_HOME}/bin:$PATH執(zhí)行source命令使其立即生效:$source/etc/profile4

Hadoop安裝前的準(zhǔn)備工作安裝Java環(huán)境查看是否安裝成功:在終端執(zhí)行java-versionLinux系統(tǒng)下Scala版本的Eclipse的安裝與配置1.下載eclipse這里下載的Scala版本的Eclipse是eclipse-SDK-4.7.0-linux.gtk.x86_64.tar.gz。2.安裝eclipse將eclipse-SDK-4.7.0-linux.gtk.x86_64.tar.gz解壓到/opt/jvm文件夾中:$sudotar-zxvf~/下載/eclipse-SDK-4.7.0-linux.gtk.x86_64.tar.gz-C/opt/jvm3.創(chuàng)建eclipse桌面快捷方式圖標(biāo)$sudogedit/usr/share/applications/eclipse.desktop#創(chuàng)建并打開文件4

Hadoop安裝前的準(zhǔn)備工作Linux系統(tǒng)下Scala版本的Eclipse的安裝與配置在彈出的文本編輯器輸入以下內(nèi)容并保存文件:[DesktopEntry]Encoding=UTF-8Name=EclipseComment=EclipseIDEExec=/opt/jvm/eclipse/eclipseIcon=/opt/jvm/eclipse/icon.xpmTerminal=falseStartupNotify=trueType=ApplicationCategories=Application;Development;4

Hadoop安裝前的準(zhǔn)備工作Linux系統(tǒng)下Scala版本的Eclipse的安裝與配置打開文件系統(tǒng),在/usr/share/applications/目錄下找到Eclipse圖標(biāo),右擊,復(fù)制到->桌面,此時,eclipse.desktop出現(xiàn)在桌面,然后右鍵eclipse.desktop圖標(biāo)選擇“允許啟動”,至此,Eclipse的快捷方式就創(chuàng)建完畢了

Spark大數(shù)據(jù)處理框架1 Spark概述2 Spark運行機(jī)制3在VirtualBox上安裝Linux集群4Hadoop安裝前的準(zhǔn)備工作5Hadoop的安裝與配置6Spark的安裝及配置7

使用PySpark編寫Python代碼8 安裝pip工具和一些常用的數(shù)據(jù)分析庫9安裝Anaconda和配置JupyterNotebook5

Hadoop的安裝與配置下載Hadoop安裝文件Hadoop2可以通過/apache/hadoop/common/下載,一般選擇下載最新的穩(wěn)定版本,即下載“stable”下的hadoop-2.x.y.tar.gz這個格式的文件,這是編譯好的,另一個包含src的則是Hadoop源代碼,需要進(jìn)行編譯才可使用。下載安裝文件之后,打開一個終端執(zhí)行如下命令:$sudotar-zxf~/下載/hadoop-2.7.7.tar.gz-C/usr/local#解壓$cd/usr/local/$sudomv./hadoop-2.7.7./hadoop#將文件夾名改為hadoop$sudochown-Rhadoop./hadoop#修改文件權(quán)限其中“~/”表示的是“/home/hadoop/”這個目錄。Hadoop解壓后即可使用。5

Hadoop的安裝與配置Hadoop單機(jī)模式配置Hadoop默認(rèn)的模式為非分布式模式(獨立、本地),解壓后無須進(jìn)行其它配置就可運行。Hadoop單機(jī)模式只在一臺機(jī)器上運行,存儲采用本地文件系統(tǒng),而不是分布式文件系統(tǒng)HDFS。Hadoop可以在單個節(jié)點(一臺機(jī)器)上以偽分布式的方式運行,同一個節(jié)點既作為名稱節(jié)點(NameNode),也作為數(shù)據(jù)節(jié)點(DataNode),讀取的是分布式文件系統(tǒng)HDFS的文件。需要配置相關(guān)文件,才能夠Hadoop以偽分布式模式運行,需要修改2個配置文件,即core-site.xml和hdfs-site.xml。Hadoop偽分布式模式配置5

Hadoop的安裝與配置Hadoop偽分布式模式配置$gedit/usr/local/hadoop/etc/hadoop/core-site.xml修改以后,core-site.xml文件的內(nèi)容如下:<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>hadoop.tmp.dir用于保存臨時文件。fs.defaultFS這個參數(shù),用于指定HDFS的訪問地址5

Hadoop的安裝與配置Hadoop偽分布式模式配置配置文件hdfs-site.xml,修改后的內(nèi)容如下:<configuration>

<property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>dfs.replication這個參數(shù)用于指定副本的數(shù)量,.dir用于設(shè)定名稱節(jié)點的元數(shù)據(jù)的保存目錄,dfs.datanode.data.dir用于設(shè)定數(shù)據(jù)節(jié)點的數(shù)據(jù)保存目錄。5

Hadoop的安裝與配置Hadoop偽分布式模式配置執(zhí)行名稱節(jié)點格式化修改配置文件以后,要執(zhí)行名稱節(jié)點的格式化,命令如下:$cd/usr/local/hadoop$./bin/hdfsnamenode-format啟動Hadoop執(zhí)行下面命令啟動Hadoop:$cd/usr/local/hadoop$./sbin/start-dfs.sh注意:啟動Hadoop時,如果出現(xiàn)“l(fā)ocalhost:Error:JAVA_HOMEisnotsetandcouldnotbefound.”這樣的錯誤,需要修改hadoop-env.sh文件,將其中的JAVA_HOME替換為絕對路徑,具體實現(xiàn)過程如下:$sudogedit/usr/local/hadoop/etc/hadoop/hadoop-env.sh#打開文件將“exportJAVA_HOME=${JAVA_HOME}”修改為下面所示的內(nèi)容:exportJAVA_HOME=/opt/jvm/jdk1.8.0_1815

Hadoop的安裝與配置Hadoop成功啟動后,可以在Linux系統(tǒng)中打開一個瀏覽器,在地址欄輸入http://localhost:50070就可以查看名稱節(jié)點信息如圖所示、數(shù)據(jù)節(jié)點信息如圖所示,還可以在線查看HDFS中的文件。Hadoop偽分布式模式配置使用Web界面查看HDFS信息5

Hadoop的安裝與配置要使用HDFS,首先需要在HDFS中創(chuàng)建用戶目錄,命令如下:$cd/usr/local/hadoop$./bin/hdfsdfs-mkdir-p/user/hadoop接著把本地文件系統(tǒng)的/usr/local/hadoop/etc/hadoop目錄中的所有xml文件作為后面運行Hadoop中自帶的WordCount程序的輸入文件,復(fù)制到分布式文件系統(tǒng)HDFS中的/user/hadoop/input目錄中,命令如下:$cd/usr/local/hadoop$./bin/hdfsdfs-mkdirinput#在HDFS中創(chuàng)建hadoop用戶對應(yīng)的input目錄$./bin/hdfsdfs-put./etc/hadoop/*.xmlinput#把本地文件復(fù)制到input目錄中Hadoop偽分布式模式配置運行Hadoop偽分布式實例5

Hadoop的安裝與配置現(xiàn)在可以運行Hadoop中自帶的WordCount程序,命令如下:$./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jarwordcountinputoutput運行結(jié)束后,可以通過如下命令查看HDFS中output文件夾中的內(nèi)容:$./bin/hdfsdfs-catoutput/*需要強(qiáng)調(diào)的是,Hadoop運行程序時,輸出目錄不能存在,否則會提示錯誤信息。因此,若要再次執(zhí)行wordcount程序,需要執(zhí)行如下命令刪除HDFS中的output文件夾:$./bin/hdfsdfs-rm-routput#刪除output文件夾Hadoop偽分布式模式配置運行Hadoop偽分布式實例5

Hadoop的安裝與配置如果要關(guān)閉Hadoop,可以執(zhí)行如下命令:$cd/usr/local/hadoop$./sbin/stop-dfs.shHadoop偽分布式模式配置關(guān)閉Hadoop5

Hadoop的安裝與配置如果要繼續(xù)把其它命令的路徑也加入到PATH變量中,也需要修改~/.bashrc這個文件,在上述路徑的后面用英文冒號“:”隔開,把新的路徑加到后面即可。添加后,執(zhí)行命令source~/.bashrc使設(shè)置生效。然后在任何目錄下輸入start-dfs.sh就可啟動Hadoop。停止Hadoop輸入stop-dfs.sh命令。Hadoop偽分布式模式配置配置PATH變量把start-dfs.sh、stop-dfs.sh等命令所在的目錄/usr/local/hadoop/sbin加入到環(huán)境變量PATH中,在任何目錄下都可以直接使用命令start-dfs.sh啟動Hadoop,不用帶上命令路徑。使用gedit編輯器打開~/.bashrc這個文件,然后在這個文件的最前面位置加入如下單獨一行:exportPATH=$PATH:/usr/local/hadoop/sbin5

Hadoop的安裝與配置采用兩個虛擬機(jī)來搭建分布式集群環(huán)境:一個虛擬機(jī)作為Master節(jié)點,另一個虛擬機(jī)作為Slave1節(jié)點。Hadoop集群的安裝配置大致包括以下步驟。在Master節(jié)點上創(chuàng)建hadoop用戶、安裝SSH服務(wù)端、安裝Java環(huán)境。在Master節(jié)點上安裝Hadoop,并完成配置。在Slave1節(jié)點上創(chuàng)建hadoop用戶、安裝SSH服務(wù)端、安裝Java環(huán)境。將Master節(jié)點上的/usr/local/hadoop目錄復(fù)制到Slave1節(jié)點上。在Master節(jié)點上開啟Hadoop。完成步驟①~③之后:Hadoop分布式模式配置5

Hadoop的安裝與配置網(wǎng)絡(luò)配置將兩個虛擬機(jī)的網(wǎng)絡(luò)連接方式都改為“橋接網(wǎng)卡”模式。以實現(xiàn)兩個節(jié)點的互聯(lián)。一定要確保各個節(jié)點的MAC地址不能相同,否則會出現(xiàn)IP地址沖突。Hadoop分布式模式配置5

Hadoop的安裝與配置網(wǎng)絡(luò)配置Hadoop分布式模式配置網(wǎng)絡(luò)配置完成以后,通過ifconfig命令查看兩個虛擬機(jī)的IP地址,本書所用的Master節(jié)點的IP地址為15,所用的Slave1節(jié)點的IP地址為14。在Master節(jié)點上執(zhí)行如下命令修改Master節(jié)點中的/etc/hosts文件:#vim/etc/hosts在hosts文件中增加如下兩條IP地址和主機(jī)名映射關(guān)系,即集群中兩個節(jié)點與IP地址的映射關(guān)系。15Master14Slave1hosts文件中只能有一個,其對應(yīng)的主機(jī)名為localhost,如果有多余映射,應(yīng)刪除。修改后需要重啟Linux系統(tǒng)。5

Hadoop的安裝與配置網(wǎng)絡(luò)配置Hadoop分布式模式配置參照Master節(jié)點的配置方法,修改Slave1節(jié)點中的/etc/hosts文件,在hosts文件中增加如下兩條IP地址和主機(jī)名映射關(guān)系:15Master14Slave1修改完成以后,重啟Slave1的Linux系統(tǒng)。在兩個節(jié)點上測試是否相互ping得通,如果ping不通,后面就無法順利配置成功。$pingSlave1-c3#在Master上ping三次Slave1,否則要按Ctrl+C中斷ping命令$pingMaster-c3#在Slave1上ping三次Master5

Hadoop的安裝與配置SSH無密碼登錄Slave1節(jié)點Hadoop分布式模式配置必須要讓Master節(jié)點可以SSH無密碼登錄Slave1節(jié)點。首先,生成Master節(jié)點的公鑰:$cd~/.ssh$rm./id_rsa*#刪除之前生成的公鑰(如果已經(jīng)存在)$ssh-keygen-trsa#Master生成公鑰,執(zhí)行后,遇到提示信息,一路按回車就可以5

Hadoop的安裝與配置SSH無密碼登錄Slave1節(jié)點Hadoop分布式模式配置在Master節(jié)點上執(zhí)行如下命令:$cat./id_rsa.pub>>./authorized_keys再執(zhí)行命令sshMaster來驗證一下,遇到提示信息,輸入yes即可,執(zhí)行exit命令返回原來的終端。5

Hadoop的安裝與配置SSH無密碼登錄Slave1節(jié)點Hadoop分布式模式配置在Master節(jié)點將上述生成的公鑰傳輸?shù)絊lave1節(jié)點:$scp~/.ssh/id_rsa.pubhadoop@Slave1:/home/hadoop/scp是securecopy的簡寫,用于在Linux上進(jìn)行遠(yuǎn)程復(fù)制文件。執(zhí)行scp時會要求輸入Slave1上hadoop用戶的密碼,輸入完成后會提示傳輸完畢。在Slave1節(jié)點上將SSH公鑰加入授權(quán):hadoop@Slave1:~$mkdir~/.ssh#若~/.ssh不存在,可通過該命令進(jìn)行創(chuàng)建hadoop@Slave1:~$cat~/id_rsa.pub>>~/.ssh/authorized_keys5

Hadoop的安裝與配置SSH無密碼登錄Slave1節(jié)點Hadoop分布式模式配置執(zhí)行上述命令后,在Master節(jié)點上就可以無密碼SSH登錄到Slave1節(jié)點了,可在Master節(jié)點上執(zhí)行如下命令進(jìn)行檢驗:$sshSlave15

Hadoop的安裝與配置配置PATH變量Hadoop分布式模式配置在Master節(jié)點上配置PATH變量,以便在任意目錄中可直接使用hadoop、hdfs等命令。執(zhí)行vim~/.bashrc命令,打開~/.bashrc文件,在該文件最上面的位置加入下面一行內(nèi)容,注意之后要加上“:”:exportPATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin保存后執(zhí)行命令source~/.bashrc使配置生效。5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置配置分布式環(huán)境時,需要修改/usr/local/hadoop/etc/hadoop目錄下5個配置文件,具體包括slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml。修改slaves文件:執(zhí)行vim/usr/local/hadoop/etc/hadoop/slaves命令,打開/usr/local/hadoop/etc/hadoop/slaves文件,由于只有一個Slave節(jié)點Slave1,所以讓Master節(jié)點既充當(dāng)名稱節(jié)點又充當(dāng)數(shù)據(jù)節(jié)點,在文件中添加如下兩行內(nèi)容:localhostSlave15

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置修改core-site.xml文件:<configuration><property><name>fs.defaultFS</name><value>hdfs://Master:9000</value></property><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property></configuration>core-site.xml文件用來配置Hadoop集群的通用屬性,包括指定namenode的地址、指定使用Hadoop臨時文件的存放路徑等。5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置修改hdfs-site.xml文件:<configuration><property><name>node.secondary.http-address</name><value>Master:50090</value></property><property><name>dfs.replication</name><value>2</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property>Master節(jié)點既充當(dāng)名稱節(jié)點又充當(dāng)數(shù)據(jù)節(jié)點,此外還有一個Slave節(jié)點Slave1,即集群中有兩個數(shù)據(jù)節(jié)點,所以dfs.replication的值設(shè)置為25

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置修改hdfs-site.xml文件:

<property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>hdfs-site.xml文件用來配置分布式文件系統(tǒng)HDFS的屬性,包括指定HDFS保存數(shù)據(jù)的副本數(shù)量,指定HDFS中NameNode的存儲位置,指定HDFS中DataNode的存儲位置等。5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置修改mapred-site.xml文件:/usr/local/hadoop/etc/hadoop目錄下有一個mapred-site.xml.template文件,需要修改文件名稱,把它重命名為mapred-site.xml:$cd/usr/local/hadoop/etc/hadoop$mvmapred-site.xml.templatemapred-site.xml$vimmapred-site.xml#打開mapred-site.xml文件然后把mapred-site.xml文件配置成如下內(nèi)容:<configuration><property><name></name><value>yarn</value></property>5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置

<property><name>mapreduce.jobhistory.address</name><value>Master:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>Master:19888</value></property></configuration>5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置修改yarn-site.xml文件:<configuration><property><name>yarn.resourcemanager.hostname</name><value>Master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property></configuration>YARN是MapReduce的調(diào)度框架。yarn-site.xml文件用于配置YARN的屬性,包括指定namenodeManager獲取數(shù)據(jù)的方式,指定resourceManager的地址。5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置把Master節(jié)點上的/usr/local/hadoop文件夾復(fù)制到各個節(jié)點上。如果之前運行過偽分布式模式,建議在切換到集群模式之前先刪除在偽分布模式下生成的臨時文件。在Master節(jié)點上實現(xiàn)上述要求的執(zhí)行命令如下:$cd/usr/local$sudorm-r./hadoop/tmp#刪除Hadoop臨時文件$sudorm-r./hadoop/logs/*#刪除日志文件$tar-zcf~/hadoop.master.tar.gz./hadoop#先壓縮再復(fù)制$cd~$scp./hadoop.master.tar.gzSlave1:/home/hadoop然后在Slave1節(jié)點上執(zhí)行如下命令:$sudorm-r/usr/local/hadoop#刪掉舊的(如果存在)$sudotar-zxf~/hadoop.master.tar.gz-C/usr/local$sudochown-Rhadoop/usr/local/hadoop5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置Hadoop集群包含兩個基本模塊:分布式文件系統(tǒng)HDFS和分布式計算框架MapReduce。首次啟動Hadoop集群時,需要先在Master節(jié)點上格式化分布式文件系統(tǒng)HDFS,命令如下:$hdfsnamenode-format在Master節(jié)點上啟動Hadoop集群的命令如下:$start-dfs.sh$start-yarn.sh$mr-jobhistory-daemon.shstarthistoryserver#啟動Hadoop歷史服務(wù)器5

Hadoop的安裝與配置配置分布式環(huán)境Hadoop分布式模式配置關(guān)閉Hadoop集群,需要在Master節(jié)點執(zhí)行如下命令:$stop-yarn.sh$stop-dfs.sh$mr-jobhistory-daemon.shstophistoryserver此外,還可以全部啟動或者全部停止Hadoop集群:啟動命令:start-all.sh停止命令:stop-all.sh

Spark大數(shù)據(jù)處理框架1 Spark概述2 Spark運行機(jī)制3在VirtualBox上安裝Linux集群4Hadoop安裝前的準(zhǔn)備工作5Hadoop的安裝與配置6Spark的安裝及配置7

使用PySpark編寫Python代碼8 安裝pip工具和一些常用的數(shù)據(jù)分析庫9安裝Anaconda和配置JupyterNotebook6Spark的安裝及配置單機(jī)模式配置spark-3.2.0-bin-hadoop2.7.tgz版本,下載到“/home/hadoop/下載”目錄下本書采用的環(huán)境配置是:Linux系統(tǒng):Ubuntu16.04;Hadoop2.7.7版本;JDK1.8版本;Spark3.2.0版本。使用hadoop用戶登錄Linux系統(tǒng),打開一個終端,解壓安裝文件。$sudotar-zxf~/下載/spark-3.2.0-bin-hadoop2.7.tgz-C/usr/local/#解壓$cd/usr/local$sudomv./spark-3.2.0-bin-hadoop2.7./spark#更改文件名$sudochown-Rhadoop:hadoop./spark#修改文件權(quán)限復(fù)制Spark安裝目錄下的conf目錄下的模板文件spark-env.sh.template并命名為spark-env.sh,編輯此文件:$cd/usr/local/spark$cp./conf/spark-env.sh.template./conf/spark-env.sh#復(fù)制生成spark-env.sh文件6Spark的安裝及配置單機(jī)模式配置編輯spark-env.sh文件,在該文件的第一行添加配置信息:$gedit/usr/local/spark/conf/spark-env.sh#用gedit編輯器打開spark-env.sh文件在spark-env.sh文件的第一行添加以下配置信息:exportSPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoopclasspath)有了上面的配置信息以后,Spark就可以把數(shù)據(jù)存儲到Hadoop分布式文件系統(tǒng)HDFS中,也可以從HDFS中讀取數(shù)據(jù)。如果沒有配置上面的信息,Spark就只能讀寫本地數(shù)據(jù),無法讀寫HDFS中的數(shù)據(jù)。配置完成后就可以直接使用Spark,不需要像Hadoop那樣運行啟動命令。運行Spark自帶的求π的近似值實例,以驗證Spark是否安裝成功:$cd/usr/local/spark/bin#進(jìn)入Spark安裝包的bin目錄$./run-exampleSparkPi#運行求π的近似值實例6Spark的安裝及配置偽分布式模式配置Spark單機(jī)偽分布式是在一臺機(jī)器上既有Master進(jìn)程又有Worker進(jìn)程。使用gedit編輯器打開spark-env.sh文件,在文件末尾添加以下配置信息:exportJAVA_HOME=/opt/jvm/jdk1.8.0_181exportHADOOP_HOME=/usr/local/hadoopexportHADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoopexportSPARK_MASTER_IP=MasterexportSPARK_LOCAL_IP=Master參數(shù)解釋JAVA_HOMEJava的安裝路徑HADOOP_HOMEHadoop的安裝路徑HADOOP_CONF_DIRHadoop配置文件的路徑SPARK_MASTER_IPSpark主節(jié)點的IP或機(jī)器名SP

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論