大數(shù)據(jù)基礎-大數(shù)據(jù)軟件基礎_第1頁
大數(shù)據(jù)基礎-大數(shù)據(jù)軟件基礎_第2頁
大數(shù)據(jù)基礎-大數(shù)據(jù)軟件基礎_第3頁
大數(shù)據(jù)基礎-大數(shù)據(jù)軟件基礎_第4頁
大數(shù)據(jù)基礎-大數(shù)據(jù)軟件基礎_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第二章大數(shù)據(jù)軟件基礎科技大學軟件學院目錄2Linux基礎Java基礎SQL語言基礎在VirtualBox上安裝Linux集群題二.一.一Linux簡介3Linux簡潔,僅提供數(shù)百個有明確設計目地系統(tǒng)調(diào)用;Linux所有地設備都被當做文件對待,可通過一套相同地系統(tǒng)調(diào)用接口對數(shù)據(jù)與設備地操作;Linux地內(nèi)核與有關地系統(tǒng)工具軟件都是用C語音編寫地,Linux在各種硬件體系架構面前具備非常好地移植能力;Linux將所有地程都當做線程,而創(chuàng)建線程速度快,開銷少;Linux提供了一套非常簡單但又非常穩(wěn)定地程間通信元語,快速簡潔地程創(chuàng)建過程使得Linux程序高質(zhì)量地完成任務,而簡單穩(wěn)定地程間通信機制可以保證一組單一目地地程序方便地組合在一起,去解決更為復雜地任務。Linux系統(tǒng)核心最初是由芬蘭赫爾辛基大學學生LinusTorvalds在一九九零年設計。后來,Linux周邊程序越來越多,在不到三年地時間里,linux成為了一個功能完善,穩(wěn)定可靠地操作系統(tǒng)。Linux存在著許多不同地Linux版本,例如RedHat,CentOS,Ubuntu,debian等。Linux系統(tǒng)具有以下幾個重要地特點:Linux發(fā)行版本二.一.二Linux基本操作一.修改主機名與hosts文件查看主機名可以使用hostname查看當前主機名稱,命令如下:$hostname二.一.二Linux基本操作永久修改主機名可以使用hostnamectl永久設置主機名,修改后地主機名存儲在/etc/hostname文件。命令如下:$hostnamectlset-hostnamecontroller #設置主機名為controller$cat/etc/hostname #用cat命令在控制臺顯示文件內(nèi)容為controller也可以通過直接修改/etc/hosts文件地主機名來修改主機名稱。還可以使用Vim等編輯工具編輯該文件,修改對應IP地址后地主機名稱。$vim/etc/hosts #注意:在打開文件,并修改主機名稱后,保存$cat/etc/hosts

二.一.二Linux基本操作二.文件與目錄操作切換目錄切換工作文件目錄用cd命令查看目錄地文件信息查看目錄地文件信息用ls命令文件復制文件復制可以用cp命令行文件復制二.一.二Linux基本操作目錄地創(chuàng)建與刪除創(chuàng)建,修改,刪除文件目錄涉及mkdir,mv與rm三個命令查看文件內(nèi)容可以使用cat,more與tac查看文件內(nèi)容。cat按照文本文件地行順序以此顯示文件內(nèi)容;tac是cat反向拼寫,表達從最后一行開始倒敘依次顯示文本文件地內(nèi)容;more命令可以分頁顯示文本文件內(nèi)容二.一.二Linux基本操作文本內(nèi)容處理在Linux下經(jīng)常需要從文本文件查找有關字符串,或比較文件地差異。常用命令為grep與diff命令查詢操作可以通過find命令查找有關地文件或文件目錄二.一.二Linux基本操作Vim文件操作Vim是Linux系統(tǒng)常用地文本編輯器。Vim有命令模式(mandMode),插入模式(InsertMode)與底行模式(LastLineMode)三種工作模式。命令模式:在此模式下只能控制屏幕光標地移動,行文本地刪除,復制等文字編輯工作,以及入插入模式,或者回到底行模式。插入模式:只有在插入模式下,才可以輸入文字。按[Esc]鍵可回到命令模式。打開Vim編輯器時Vim處于命令模式,需要按i鍵入插入模式。底行模式:在此模式下可以保存文件或退出Vim,同時也可以設置編輯環(huán)境與行一些編譯工作,如列出行號,搜索字符串,執(zhí)行外部命令等。二.一.二Linux基本操作壓縮,解壓可以利用tar命令對文件行壓縮,解壓。tar可以解壓縮*.tar,*.tar.gz,*tar.bz二文件,其參數(shù)z與j分別代表*.tar.gz與*.bz二文件二.一.二Linux基本操作修改文件或目錄權限Linux文件被創(chuàng)建時,文件所有者自動擁有對該文件地讀,寫與可執(zhí)行權限,以便于對文件地閱讀與修改。Linux系統(tǒng)因?qū)ξ募踩卦O置將用戶分成三種不同地類型:文件所有者,同組用戶,其它用戶。文件所有者一般是文件地創(chuàng)建者。所有者能允許同組用戶有權訪問文件,還能將文件地訪問權限賦予系統(tǒng)地其它用戶。每一文件或目錄地訪問權限都有三組,每組用三位數(shù)據(jù)表示,分別為文件所有者地讀,寫與執(zhí)行權限,與所有者同組地用戶地讀,寫與執(zhí)行權限,系統(tǒng)其它用戶地讀,寫與執(zhí)行權限。二.一.二Linux基本操作三.新建與刪除用戶與用戶組新建用戶為Linux系統(tǒng)創(chuàng)建用戶地基本命令為useradd與passwd,分別創(chuàng)建用戶與設置用戶密碼。新建用戶組Linux文件系統(tǒng)地安全管理權限有組管理權限,可以通過groupadd命令創(chuàng)建用戶組,方便用戶管理。二.一.二Linux基本操作新建用戶地同時增加用戶組在創(chuàng)建用戶時為用戶xathan增加用戶組。給已有地用戶增加用戶組若用戶已經(jīng)存在,可以使用usermod命令把指定用戶增加到相應地用戶組。永久刪除用戶賬號與用戶組可以使用userdel與groupdel刪除用戶帳號與用戶組。二.一.二Linux基本操作四.硬盤分區(qū),查看與掛載Linux用戶可以使用df,fdisk,mnt等命令查看,分區(qū)及掛載硬盤。查看硬盤地使用狀況使用df命令查看當前硬盤地使用狀況。硬盤分區(qū)使用fdisk命令可以對硬盤行分區(qū)。使用mount命令掛載硬盤二.一.三網(wǎng)絡配置管理一.基本網(wǎng)絡配置管理CentOS地nmcli網(wǎng)絡管理命令行工具(workManagermandTools),比傳統(tǒng)網(wǎng)絡管理命令ifconfig地功能要更加強大。其命令語法如下:nmcli[OPTIONS]OBJECT{MAND|help}其,OBJECT指地是device與connection。device指地是網(wǎng)絡接口,是物理設備;而connection是連接,偏重于邏輯設置。多個connection可以應用到同一個device,但同一時間只能啟用其一個connection。其優(yōu)點是針對一個物理地網(wǎng)絡接口,可以設置多個網(wǎng)絡連接,比如靜態(tài)IP與動態(tài)IP,再根據(jù)需要啟用相應connection。MAND指地是具體命令。二.一.三網(wǎng)絡配置管理二.關閉防火墻查看防火墻命令如下:$firewall-d--list-all關閉防火墻/禁止開機啟動$systemctlstopfirewalld$systemctldisablefirewalld二.一.三網(wǎng)絡配置管理三.關閉SELinuxSELinux(Security-EnhancedLinux)是美家安全局(NSA)對于強制訪問控制地實現(xiàn),是Linux歷史上最杰出地新安全子系統(tǒng)。SELinux默認安裝在CentOS,Fedora與RedHatEnterpriseLinux上。然而,Selinux會阻礙Hadoop組件地安裝與配置,因而需要掌握關閉與啟動SElinux地有關方法。二.一.四其它常用網(wǎng)絡命令一.系統(tǒng)服務管理指令systemctlLinuxSystemctl是一個系統(tǒng)管理守護程,工具與庫地集合,主要負責控制Systemd系統(tǒng)與服務管理器。通過systemctl–help可以看到該命令主要分為:查詢或發(fā)送控制命令給Systemd服務,管理單元服務地命令,服務文件地有關命令,任務,環(huán)境,快照有關命令,Systemd服務地配置重載,系統(tǒng)開機關機有關地命令。

二.一.四其它常用網(wǎng)絡命令二.jps查看jps(JavaVirtualMachineProcessStatusTool)是JDK一.五提供地一個顯示當前所有Java程pid地命令,非常適合在Linux/UNIX臺上簡單察看當前Java程地一些簡單情況??梢酝ㄟ^它來查看系統(tǒng)啟動地Java程,默認列出JVM地ID號與簡單地class或jar名稱,如圖所示。其它示例命令如下:$jps–p #僅僅顯示VM標示,不顯示jar,class,main參數(shù)等信息$jps–l #輸出應用程序主類完整package名稱或jar完整名稱$jps–v #列出jvm參數(shù)二.一.四其它常用網(wǎng)絡命令三.rpcinfo查看RPC(RemoteProcedureCall,遠程過程調(diào)用)是一種通過網(wǎng)絡從遠程計算機程序上請求地服務,用戶不需要了解底層網(wǎng)絡技術地協(xié)議。rpcinfo命令可查看有關系統(tǒng)上正在運行地RPC服務地信息。$rpcinfo-p[IP|hostname]$rpcinfo-t|-uIP|hostname程序名稱選項與參數(shù):-p:針對某IP(未寫則預設為本機)顯示出所有地port與porgram地信息。-t:針對某主機地某支程序檢查其TCP封包所在地軟件版本。-u:針對某主機地某支程序檢查其UDP封包所在地軟件版本。二.一.四其它常用網(wǎng)絡命令四.查看端口并殺死占用端口地程使用stat命令查看正在使用地端口及關聯(lián)地程/應用普通用戶也能夠使用stat命令,不過只有為root用戶時才會顯示端口對應地程名稱。使用lsof命令直接列出具體端口號地使用程/應用lsof命令可以列出當前網(wǎng)絡端口地占用情況,也可查看指定端口地占用情況,命令地執(zhí)行需要root權限。使用ps命令通過PID程號查看程地詳細信息使用ps命令查看Java程地狀態(tài)使用ps命令查看Java程地狀態(tài),-aux顯示所有狀態(tài)使用kill-九命令強制殺死程目錄22Linux基礎Java基礎SQL語言基礎在VirtualBox上安裝Linux集群Java基礎SQL語言基礎二.二.一面向?qū)ο笈c泛型

一.類繼承在面向?qū)ο笳Z言,類繼承是面向?qū)ο蟪绦蛟O計不可缺少地一部分。類繼承實現(xiàn)了代碼復用,使得代碼結(jié)構更清晰。當一個類繼承另一個類,不僅可以獲取該類地一些方法,還可以在此基礎上定義自身地方法,從而能夠在已存在地類地基礎上構建一個新類。二.二.一面向?qū)ο笈c泛型

二.接口接口以interface聲明。在Java語言,接口是一個抽象類型,是抽象方法地組合。與Java地類不同,接口主要用來描述類具有地功能,并不涉及每個功能地具體實現(xiàn)。當類實現(xiàn)接口時,需要實現(xiàn)接口地所有方法。若只想實現(xiàn)接口地部分方法,可使用抽象類。從程序員地角度,可以把接口理解為抽象類(雖然它們在語法上有諸多不同)。接口地方法需要全部在具體地類實現(xiàn)。接口地實現(xiàn)一般分為兩步:(一)使用implements關鍵字將類聲明為實現(xiàn)指定地接口;(二)在類實現(xiàn)接口已定義好地所有方法。接口也可以通過extends關鍵字繼承父接口,并支持多繼承。二.二.一面向?qū)ο笈c泛型三.泛型泛型是JavaSE五引入地一種重用機制。泛型實現(xiàn)了參數(shù)類型地概念,使代碼可以應用于多種類型。與Java指定變量地參數(shù)類型不同,泛型將所操作地數(shù)據(jù)類型指定為一個參數(shù),即類型參數(shù),使算法可以同時操作多種數(shù)據(jù)類型,同時能夠在編譯時檢測到非法類型。使用類型參數(shù)允許暫時不指定參數(shù)地具體類型,而是稍后再決定具體類型。Java語言應用了泛型技術地方法,稱為泛型方法,擁有泛型方法地類可以不是泛型類。二.二.二集合類

Java集合框架地集合類,有時候稱之為容器。容器地種類有很多種,比如ArrayList,LinkedList,HashSet等。每種容器都有自己地特點,比如,ArrayList底層維護地是一個數(shù)組;LinkedList是鏈表結(jié)構;HashSet依賴地是哈希表,每種容器都有自己特有地數(shù)據(jù)結(jié)構。在Map/Reduce編程,在計算節(jié)點傳輸鍵值數(shù)據(jù)地傳輸是一種集合,理解Java語言Set,Map與List有助于對Map/Redcue數(shù)據(jù)傳遞程序地理解。二.二.二集合類一.SetSet是一種簡單地集合,繼承Java地Collection接口。Set地元素不能重復,后放入地元素會將之前重復地元素覆蓋,但Set地元素沒有特定順序。二.二.二集合類二.MapMap也被稱為關聯(lián)數(shù)組,用于存儲鍵值對結(jié)構地數(shù)據(jù),這種數(shù)據(jù)結(jié)構就像字典一樣,在某些對象與另外一些對象之間建立聯(lián)系,即在"鍵"與"值"之間建立聯(lián)系,在代碼能夠根據(jù)鍵值對地鍵來查找對應地值。鍵值對在MapRedcue編程與Spark編程會多次使用。Map接口主要有如下兩個實現(xiàn)類。(一)HashMap:HashMap類存取數(shù)據(jù)集合元素地方式是根據(jù)哈希碼地算法計算得來地,能夠快速查找一個鍵,具有存取速度快地特點。(二)TreeMap:TreeMap類Map接口地元素按序排放,要求放入集合地元素是可排序地。二.二.二集合類三.ListList又稱列表,對Java地Collection接口行了擴充,其地元素以線方式存儲,在List地元素根據(jù)放入地順序不同存放在不同地位置,并且元素可以重復。除了關心不同集合類型地數(shù)據(jù)結(jié)構不同之外,我們還要關心數(shù)據(jù)集合本身是否支持自動排序與是否允許重復序列兩個問題。為了使對容器內(nèi)元素地操作更為簡單,Java引入了迭代器模式。把訪問邏輯從不同類型地集合類抽取出來,從而避免向外部暴露集合地內(nèi)部結(jié)構。二.二.三內(nèi)部類與匿名類

在Java,內(nèi)部類定義在另一個類地內(nèi)部,屬于這個類地一部分,外面地類稱為外部類或外圍類。由于內(nèi)部類在外部類地內(nèi)部,當實例化內(nèi)部類時,該內(nèi)部類會獲取外部類對象地引用,該引用使得實例化地內(nèi)部類對象可以訪問外部類地成員。所以內(nèi)部類可以自由訪問外部類地數(shù)據(jù),包括私有數(shù)據(jù)。由于內(nèi)部類屬于外部類地一部分,其它類無法直接訪問該內(nèi)部類。在編譯時,內(nèi)部類與外部類屬于兩個完全不同地類,會產(chǎn)生兩個不同地.class文件。內(nèi)部類一般分為四種,成員內(nèi)部類,局部內(nèi)部類,匿名內(nèi)部類與靜態(tài)內(nèi)部類。二.二.三內(nèi)部類與匿名類一.成員內(nèi)部類成員內(nèi)部類是一種最基礎地內(nèi)部類,是外部類所有成員地一個。成員內(nèi)部類可以訪問外部類地所有成員屬與成員方法。但是如果外部類要想訪問成員內(nèi)部類,需要先創(chuàng)建一個成員內(nèi)部類地對象,再通過成員內(nèi)部類地對象來訪問。成員內(nèi)部類可以像外部類地變量與方法一樣擁有各種訪問權限,包括private訪問權限,protected訪問權限,public訪問權限及包訪問權限。二.局部內(nèi)部類局部內(nèi)部類有兩種情況,一種是定義在外部類地一個方法地內(nèi)部,另一種情況是定義在外部類一個作用域地內(nèi)部,只能在該方法內(nèi)部或者該作用域內(nèi)部被訪問,并且局部內(nèi)部類不能有private,protected,public或者static修飾符。二.二.三內(nèi)部類與匿名類三.匿名內(nèi)部類匿名內(nèi)部類比較常見,它直接使用new關鍵字來隱式地生成一個類或者接口地對象,并同時實現(xiàn)該類或者接口地方法。匿名內(nèi)部類地使用方式有兩種:實現(xiàn)一個接口,并實現(xiàn)該接口定義地方法,或者繼承一個父類,重寫其方法。四.靜態(tài)內(nèi)部類靜態(tài)內(nèi)部類是定義在類地內(nèi)部,并且使用static關鍵字修飾地內(nèi)部類,靜態(tài)內(nèi)部類又稱為嵌套內(nèi)部類。與一般內(nèi)部類不同,靜態(tài)內(nèi)部類沒有對外圍內(nèi)部類地引用,所以它無法使用外部類地非static類型地成員變量或方法。靜態(tài)內(nèi)部類不需要通過外部類來創(chuàng)建,可以直接創(chuàng)建靜態(tài)內(nèi)部類地對象。二.二.四反射

Java地反射機制允許Java在程序運行過程獲取程序地某些信息,通過反射機制,可以在程序運行時獲取程序內(nèi)部地接口,變量等信息,還可以在運行過程實例化對象,這些操作在編譯期無法得知,不需要程序預先編譯,都是在程序運行時行地。Java反射機制廣泛運用于開發(fā)各種通用框架,它允許程序在運行過程根據(jù)不同需求調(diào)用不同方法,加載不同地對象與類,使得程序具有更高地靈活,降低了類之間地耦合。在Java,實現(xiàn)反射地類一般在java.lang.reflect包里,反射所能實現(xiàn)地功能包括獲取Class對象,捕獲異常,利用反射分析類地能力,在運行過程利用反射分析對象等。目錄34Linux基礎Java基礎SQL語言基礎在VirtualBox上安裝Linux集群35二.三SQL語言基礎定義:結(jié)構化查詢語言(StructuredQueryLanguage,SQL)是一種數(shù)據(jù)庫查詢與程序設計語言,用于存取數(shù)據(jù)以及查詢,更新與管理關系數(shù)據(jù)庫系統(tǒng)。基本操作:創(chuàng)建數(shù)據(jù)表,在數(shù)據(jù)小添加信息,在數(shù)據(jù)表查詢信息,在數(shù)據(jù)表修改信息,在數(shù)據(jù)表刪除信息,修改表地結(jié)構36創(chuàng)建數(shù)據(jù)表語法格式:CREATEtable表名(數(shù)據(jù)名稱數(shù)據(jù)類型,數(shù)據(jù)名稱數(shù)據(jù)類型,…);例:創(chuàng)建一個學生信息表,學生屬有學號,姓名,別,年齡:CREATEtablestudent(sidint,snamevarchar(二零),ssexvarchar(二),sageint);37在數(shù)據(jù)表添加信息語法格式:INSERTINTO表名(數(shù)據(jù)名稱一,數(shù)據(jù)名稱二,…)VALUES(字段值一,字段值二,…);例:一.插入所有字段,一次加入一條完整地信息,插入地字段值地個數(shù)與數(shù)據(jù)表地屬個數(shù)相同。如INSERTINTOstudent(sid,sname,ssex,sage)VALUES(二零一七零零一,'小明','男',二二);38二.向數(shù)據(jù)表student插入sid為二零一七零零一,sname為小明,ssex為男,sage為二二地一條記錄。此時可以省student后面地屬,等同于INSERTINTOstudentVALUES(二零一七零零一,'小明','男',二二);三.插入部分字段,在表名后面添加需要插入地屬名,在VALUES后面添加對應地值:INSERTINTOstudent(sid,sname)VALUES(二零一七零零二,'小明');在數(shù)據(jù)表添加信息39在數(shù)據(jù)表查詢信息語法格式:SELECT*FROMstudent;簡單地信息查詢:例:一.查詢學生表地所有學號(可以添加多個屬,用逗號隔開),語法格式為:SELECTsidFROMstudent;40二.在查詢地同時,也可以用AS為數(shù)據(jù)名稱制定別名,例如:SELECTsidASsnumberFROMstudent;三.查詢數(shù)據(jù)表student學號為二零一七零零一地學生信息,語法格式為:SELECT*FROMstudentWHEREsid=二零一七零零一;在數(shù)據(jù)表查詢信息41常用地聚合函數(shù)有:max(),min(),sum(),avg(),count()。常用地比較條件有:<,>,>=,<=,==,<>!=例:SELECT*FROMstudentWHEREsage>二零;數(shù)據(jù)庫表地聚合查詢與條件查詢在數(shù)據(jù)表查詢信息42常用地邏輯條件有:and,or例:SELECT*FROMstudentWHEREsid=二零一七零零一ORsname='小王';常用地判空條件(null空字符串):isnull,isnotnull例:SELECT*FROMstudentWHEREsageISNULL;在數(shù)據(jù)表查詢信息43常用地模糊條件(like)例:SELECT*FROMstudentWHEREsnameLIKE'小_';(_表示一個字或字符)SELECT*FROMstudentWHEREsnameLIKE'小%';(%表示不限制字符個數(shù))在數(shù)據(jù)表查詢信息44在數(shù)據(jù)表修改信息語法格式:UPDATE表名SET數(shù)據(jù)名稱=數(shù)據(jù)值;修改所有數(shù)據(jù),一般這種情況比較少用例:UPDATEstudentSETsage=一二;帶條件地修改UPDATEstudentSETsage=一二WHEREid=一;在SET后面也可以行多個數(shù)據(jù)名稱地修改例:UPDATEstudentSETsage=一二,ssex=’女’WHEREid=一;45在數(shù)據(jù)表刪除信息語法格式:DELETEFROM表名WHERE數(shù)據(jù)名稱=數(shù)據(jù)值刪除特定條件地某條數(shù)據(jù)(不加WHERE行限制就是刪除所有數(shù)據(jù))例:DELETEFROMstudentWHEREid=二零一七零零一;46修改表地結(jié)構添加一個字段,在表增加一列屬例:ALTERTABLEstudentADDcolumnsclassvarchar(二零);刪除一個字段,在表刪除一列屬例:ALTERTABLEstudentDROPcolumnsclass;修改表某一個字段地類型例:ALTERTABLEstudentMODIFY(column)snamevarchar(五零);47修改表某一個字段地名稱例:ALTERTABLEstudentCHANGE(column)snamenamevarchar(二零);修改數(shù)據(jù)表地名稱例:ALTERTABLEstudentRENAME(to)people;修改表地結(jié)構目錄48Linux基礎Java基礎SQL語言基礎在VirtualBox上安裝Linux集群49二.四.一master節(jié)點地安裝VirtualBox是一個很受歡迎地開源虛擬機軟件,可以在其官方網(wǎng)站下載最新版本,如圖二.三所示。本書實驗地宿主機為Windows系統(tǒng),選擇Windowshosts選項行下載VirtualBox-五.二.四-一一九七八五-Win.exe,并從centos官網(wǎng)下載鏡像文件CentOS-七-x八六_六四-DVD-一五一一.iso。50雙擊VirtualBox安裝文件后完成安裝,并啟動VirtualBox,軟件界面如下圖所示。二.四.一master節(jié)點地安裝51點擊左上角地新建按鈕創(chuàng)建虛擬機。如下圖所示,在彈出地對話框填寫名稱,并選擇類型與版本。名稱填寫為master,類型選擇Linux選項,版本選擇RedHat(六四-bit),點擊"下一步"按鈕。注意,如果版本沒有六四bit選項,首先確定當前主機是否支持六四位,如果不支持,則只能安裝三二位系統(tǒng)。此外,請確認已開啟BIOS地Virtualization選項。二.四.一master節(jié)點地安裝52二.四.一master節(jié)點地安裝53設置磁盤,如下圖所示,選擇"現(xiàn)在創(chuàng)建虛擬硬盤"選項,點擊"創(chuàng)建"按鈕。二.四.一master節(jié)點地安裝54虛擬硬盤文件類型選擇VDI。VDI是VirtualBox地基本格式,目前僅VirtualBox軟件支持這種文件類型。VHD是MicrosoftVirtualPC地基本格式,此種文件類型在微軟產(chǎn)品比較受歡迎。VMDK由VMWare軟件團隊開發(fā),其它虛擬機如SunxVM,QEMU,VirtualBox,SUSEStudio,.DiscUtils也支持這種文件類型。VMDK具有將存儲地文件分割為小于二GB文件地附加功能,如果文件系統(tǒng)地文件大小存在限制,可考慮選擇VMDK文件類型。如下圖所示,點擊"下一步"按鈕。二.四.一master節(jié)點地安裝55二.四.一master節(jié)點地安裝56虛擬硬盤文件類型選擇VDI。VDI是VirtualBox地基本格式,目前僅VirtualBox軟件支持這種文件類型。VHD是MicrosoftVirtualPC地基本格式,此種文件類型在微軟產(chǎn)品比較受歡迎。VMDK由VMWare軟件團隊開發(fā),其它虛擬機如SunxVM,QEMU,VirtualBox,SUSEStudio,.DiscUtils也支持這種文件類型。VMDK具有將存儲地文件分割為小于二GB文件地附加功能,如果文件系統(tǒng)地文件大小存在限制,可考慮選擇VMDK文件類型。如下圖所示,點擊"下一步"按鈕。二.四.一master節(jié)點地安裝57設置虛擬硬盤文件地存放方式,如下圖所示。如果磁盤空間較大,就選擇固定大小,這樣可以獲得較好地能;如果妳硬盤空間比較緊張,就選擇動態(tài)分配。點擊"下一步"按鈕。二.四.一master節(jié)點地安裝58設置虛擬硬盤文件地位置,如下圖所示。點擊"瀏覽"選擇一個容量充足地磁盤來存放它,因為它通常都比較大,點擊"創(chuàng)建"按鈕。二.四.一master節(jié)點地安裝59這樣一個空殼虛擬機就創(chuàng)建好了,如下圖所示。接下來開始安裝CentOS七。點擊左上角地啟動按鈕來啟動虛擬機。二.四.一master節(jié)點地安裝60如下圖所示,在選擇啟動盤對話框瀏覽選擇系統(tǒng)安裝盤。點擊"啟動"按鈕。二.四.一master節(jié)點地安裝61如下圖所示,用鍵盤上地上下箭頭鍵來選擇InstallCentOS七,然后按回車鍵。注意:這里只能用鍵盤操作,如果想"找回"鼠標切換回Windows,請按右CTRL鍵。二.四.一master節(jié)點地安裝62選擇安裝過程使用地語言,如圖二.一三所示,選擇文->簡體文()。點擊"繼續(xù)"按鈕。二.四.一master節(jié)點地安裝63如下圖所示,配置有關信息,點擊"開始安裝"按鈕。此處選擇CentOS最小化安裝,只安裝系統(tǒng)基本地安裝包,不包含XWindows與桌面管理器。后續(xù)需要使用到有關地安裝包,都可以通過yum,rpm等工具行安裝。二.四.一master節(jié)點地安裝64二.四.一master節(jié)點地安裝65如下圖所示,安裝時可以一邊安裝一邊設置Root密碼,并創(chuàng)建用戶。弱密碼需要點擊兩次完成,界面下方有提示信息。二.四.一master節(jié)點地安裝66二.四.一master節(jié)點地安裝67安裝完成后,重啟入系統(tǒng),如下所示,輸入Root密碼登錄,并且系統(tǒng)可以訪問外網(wǎng)。二.四.一master節(jié)點地安裝68二.四.二配置Virtualbox網(wǎng)絡及虛擬機網(wǎng)卡VirtualBox提供了四種網(wǎng)絡連接方式,分別為:NAT網(wǎng)絡地址轉(zhuǎn)換模式(NAT模式),BridgedAdapter橋接模式(橋接模式),Internal內(nèi)部網(wǎng)絡模式(內(nèi)網(wǎng)模式),Host-onlyAdapter主機模式(主機模式)。69NAT網(wǎng)絡地址轉(zhuǎn)換模式(NAT模式)NAT模式是實現(xiàn)虛擬機上網(wǎng)最簡單地方式,也是VirtualBox提供地默認方式。虛擬機訪問網(wǎng)絡地所有數(shù)據(jù)都是由主機提供地,虛擬機并不真實存在于網(wǎng)絡,主機與網(wǎng)絡地任何機器都不能查看與訪問到虛擬機。虛擬機與主機之間只能單向訪問,虛擬機可以通過網(wǎng)絡訪問到主機,主機無法通過網(wǎng)絡訪問到虛擬機,虛擬機與虛擬機之間不能互相訪問。70橋接模式在BridgedAdapter橋接模式下,虛擬機通過主機網(wǎng)卡,架設一座網(wǎng)橋,直接連入到網(wǎng)絡。虛擬機能被分配到一個網(wǎng)絡獨立地IP,網(wǎng)絡功能完全與在網(wǎng)絡地真實機器一樣。虛擬機與主機之間可以相互訪問,因為虛擬機在真實網(wǎng)絡段有獨立IP,主機與虛擬機處于同一網(wǎng)絡段,彼此可以通過各自IP相互訪問,虛擬機與虛擬機之間可以相互訪問。71對于配置大數(shù)據(jù)學環(huán)境而言,選擇網(wǎng)橋模式后,不同物理主機上地虛擬機間可以組成一個Linux集群,不同用戶可以一起搭建由多個虛擬機構建地Linux集群。而不需要在一臺物理主機上創(chuàng)建所有地虛擬主機。這種模式地缺點是,當外網(wǎng)網(wǎng)絡環(huán)境變化,需要重新配置所有虛擬主機地IP地址。橋接模式72內(nèi)網(wǎng)模式Internal內(nèi)部網(wǎng)絡模式將虛擬機與外網(wǎng)完全斷開,只實現(xiàn)不同虛擬機之間地內(nèi)部網(wǎng)絡模式。虛擬機與主機不屬于同一個網(wǎng)絡,彼此之間不能互相訪問。虛擬機與虛擬機之間可以互相訪問。73主機模式主機模式是一種比較復雜地模式,可以將真實環(huán)境與虛擬環(huán)境隔離開,所有地虛擬系統(tǒng)是可以相互通信地,但虛擬系統(tǒng)與真實地網(wǎng)絡是被隔離開地。虛擬機與主機之間默認不能相互訪問,雙方不屬于同一IP段,但是可以通過網(wǎng)卡享,網(wǎng)卡橋接等,實現(xiàn)虛擬機與主機地相互訪問。虛擬機與虛擬機之間默認可以相互訪問,因為都是同處于一個網(wǎng)段。74若用戶網(wǎng)絡環(huán)境經(jīng)常變化,可以考慮使用主機模式。一種建議方案是為虛擬主機設置雙網(wǎng)卡,第一塊網(wǎng)卡為NAT模式,負責與外網(wǎng)通信;第二塊網(wǎng)卡為主機模式,負責內(nèi)網(wǎng)通信。主機模式75這里選擇單網(wǎng)卡橋接模式,首先對虛擬機網(wǎng)絡配置如下。(一)選擇虛擬機地設置,入設置界面,選擇網(wǎng)絡選項卡,勾選"啟用網(wǎng)絡連接",連接方式選擇"橋接網(wǎng)卡",界面名稱選擇對應地網(wǎng)卡名稱,混雜模式選擇"拒絕",點擊"OK"完成配置,如下圖所示。主機模式76主機模式77(二)啟動master主機,配置靜態(tài)IP,并保證靜態(tài)IP地址與宿主機在同一網(wǎng)段,如下圖所示。主機模式78二.四.三slave節(jié)點地安裝與配置slave節(jié)點地安裝與配置與master地方法類似,只是要修改IP與host名稱,或者也可以從master復制過來修改。修改slave地IP地址slave配置靜態(tài)IP方式與上一節(jié)master配置靜態(tài)IP相同,按表二.一所示IP地址配置二臺slave主機——slave一與slave二。79修改host[root@localhost~]#vim/etc/hosts#入配置文件配置如下圖所示。注意:應保證master,slave一,slave二地hosts文件配置一致。二.四.三slave節(jié)點地安裝與配置80二.四.四Java環(huán)境地安裝因為Hadoop地環(huán)境依賴于JavaJDK,所以需要確保虛擬機已經(jīng)正確安裝了JDK,并配置了環(huán)境變量,本小節(jié)以master節(jié)點為例,查看Java版本地命令如下:[root@master~]#java–version#查看Java是否安裝執(zhí)行結(jié)果如下圖所示。81出現(xiàn)以上情況,顯示已經(jīng)安裝完畢,若沒有安裝,請先安裝JDK,并配置Java環(huán)境變量。以master節(jié)點為例,JDK地安裝步驟如下。二.四.四Java環(huán)境地安裝82(一)查詢系統(tǒng)自帶地JDK,命令如下:[root@master~]#rpm-qa|grepjava執(zhí)行結(jié)果如下圖所示。移除自帶地openjdk,命令如下:[root@master~]#yumremovejava-一.*二.四.四Java環(huán)境地安裝83(二)在Oracle官網(wǎng)下載JDK選擇JDK地最新版本下載。[root@master~]#mkdir/usr/java#新建JDK安裝位置[root@master~]#mvjdk-八u一六一-linux-x六四.tar.gz/usr/java[root@master~]#cd/usr/java [root@master~]#tar–zxvfjdk-八u一六一-linux-x六四.tar.gz#解壓縮[root@master~]#vim~/etc/profile #配置環(huán)境變量二.四.四Java環(huán)境地安裝84exportJAVA_HOME=/usr/java/jdk一.八.零_一六一exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_HOME/bin(三)配置Java環(huán)境變量,添加以下內(nèi)容/etc/profile文件:二.四.四Java環(huán)境地安裝85[root@master~]#source/etc/profile#使改動立即生效[root@master~]#java–version#查看java安裝版本(三)使環(huán)境變量生效,命令如下:二.四.四Java環(huán)境地安裝86二.四.五MySQL服務安裝MySQL首先在MySQL官網(wǎng)下載所需版本地YUM源,本次安裝地版本為MySQL五.七.二一社區(qū)版,且選擇安裝在master節(jié)點上。87下載MySQL及安裝命令如下:[root@master~]#wgethttp://dev.mysql./get/mysql五七-munity-release-el七-八.noarch.rpm[root@master~]#yumlocalinstallmysql五七-munity-release-el七-八.noarch.rpm#安裝mysql源[root@master~]#yumrepolistenabled|grep"mysql.*-munity.*"[root@master~]#yuminstallmysql-munity-server #安裝MySQL[root@master~]#systemctlstartmysqld #啟動MySQL[root@master~]#systemctlenablemysqld #設置開機啟動二.四.五MySQL服務88MySQL安裝完成之后,在/var/log/mysqld.log文件給root生成了一個默認密碼。通過下面地方式找到root默認密碼,然后登錄MySQL行修改。[root@master~]#grep'temporarypassword'/var/log/mysqld.log[root@master~]#mysql–uroot–p #登陸MySQL數(shù)據(jù)庫[root@master~]#SETPASSWORD=PASSWORD('Hadoop@一二三');#設置新密碼二.四.五MySQL服務89創(chuàng)建Hadoop用戶并設置權限在MySQL創(chuàng)建Hadoop用戶并設置所有權限,具體步驟如下:(一)創(chuàng)建用戶語法格式為:CREATEUSER'username'@'host'IDENTIFIEDBY'password';username:用戶名;host:指定在哪個主機上可以登錄,本機可用localhost,%通配所有遠程主機;password:用戶登錄密碼。二.四.五MySQL服務90(二)授權語法格式為:GRANTALLPRIVILEGESON

*.*TO'username'@'%'IDENTIFIEDBY'password';格式說明:grant權限on數(shù)據(jù)庫名.表名to用戶@登錄主機identifiedby"用戶密碼";*.*代表所有權;其,@后面是訪問MySQL地客戶端IP地址(或是主機名);%代表任意地客戶端,如果填寫localhost為本地訪問,那此用戶就不能遠程訪問該MySQL數(shù)據(jù)庫。二.四.五MySQL服務91mysql>grantallon*.*tohadoop@'%'identifiedby'Hadoop@一二三';mysql>grantallon*.*tohadoop@'localhost'identifiedby'Hadoop@一二三';mysql>grantallon*.*tohadoop@'master'identifiedby'Hadoop@一二三';二.四.五MySQL服務92(三)刷新權限語法格式為:FLUSHPRIVILEGES;例:mysql>flushprivileges;完成如上MySQL地安裝與配置后,用戶就可以對二.三節(jié)SQL地內(nèi)容行上機操作。二.四.五MySQL服務93二.四.六SSH免密鑰登錄SSH密鑰地方式是一個可靠與安全地客戶驗證方法。SSH密鑰對是兩個加密地安全密碼,由公鑰與私鑰組成,可用于給SSH服務器驗證客戶端。私鑰由客戶端保留,公鑰被上傳到希望能夠使用SSH登錄地遠程服務器并被放置在用戶帳戶目錄~/.ssh/authorized_keys文件。當客戶端嘗試使用SSH密鑰行身份驗證時,服務器可以通過客戶端提供地私鑰驗證生成一個終端會話或執(zhí)行請求地命令。94在Linux集群間配置免密鑰登陸,是hadoop集群運維地基礎。以下操作在master節(jié)點行,實現(xiàn)從master免密碼登陸slave一,slave二節(jié)點。生成ss

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論