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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論