大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅 單元2-8 Linux常用命令- 大數(shù)據(jù)典型行業(yè)_第1頁
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅 單元2-8 Linux常用命令- 大數(shù)據(jù)典型行業(yè)_第2頁
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅 單元2-8 Linux常用命令- 大數(shù)據(jù)典型行業(yè)_第3頁
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅 單元2-8 Linux常用命令- 大數(shù)據(jù)典型行業(yè)_第4頁
大數(shù)據(jù)基礎(chǔ) 課件匯 胡堅 單元2-8 Linux常用命令- 大數(shù)據(jù)典型行業(yè)_第5頁
已閱讀5頁,還剩367頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

大數(shù)據(jù)基礎(chǔ)Unit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群2.1Linux簡介基礎(chǔ)Linux應(yīng)用2.1Linux簡介

UNIX操作系統(tǒng):UNIX支持多用戶和多任務(wù);頗具靈活性,可以很容易地被修改,從而使UNIX發(fā)展多樣化;在UNIX不斷發(fā)展的過程中,它的定位是一個大型操作系統(tǒng);隨著PC逐漸發(fā)展且功能日趨強大,人們開始著手開發(fā)UNIX的PC版本。UNIX的興起2.1Linux簡介

開源、自由的Linux1991年10月,LinusTorvalds使用了由AndrewTanenbaum教授的小型教學(xué)用操作系統(tǒng)Minix后,Linus自己開發(fā)出了他自稱為Linus版的Minix,后來命名為Linux。2.1Linux簡介

Linux從誕生之日起,創(chuàng)始人Linus明確Linux定位:所有人共享的自由軟件源代碼全部開源非盈利工具軟件開源、自由的Linux2.1Linux簡介

Linux是為Intel架構(gòu)的個人計算機和工作站設(shè)計的操作系統(tǒng)。

既有字符界面,又可提供像Windows和Macintosh那樣功能齊全的圖形用戶界面;Linux被定位為一個自由軟件,是免費的、開放源代碼的產(chǎn)品。Linux的誕生2.1Linux簡介Linux的特點開放性:所有源碼公開兼容性:與UNIX兼容自由軟件多用戶:秉承UNIX系統(tǒng)的多用戶特性多任務(wù):可同時處理若干任務(wù)移植性:90%的源代碼采用C語言編寫,移植性很高,便于定制和再開發(fā)內(nèi)存管理:未使用的內(nèi)存區(qū)域作為buffer,采取內(nèi)存保護模式來執(zhí)行程序

《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群大數(shù)據(jù)基礎(chǔ)Unit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群2.2.1Linux在虛擬機中的安裝2.2Linux操作系統(tǒng)安裝與使用2.2.2Linux文本編輯器Vi的使用大數(shù)據(jù)基礎(chǔ)基礎(chǔ)Linux應(yīng)用1Vmware中安裝CentOs本課程實驗環(huán)境為在VmwareWorkstation虛擬機中安裝CentOs:

2.2.1Linux在虛擬機中的安裝CentOs是Linux發(fā)行版之一VMwareWorkstation虛擬機是獨立運行主機操作系統(tǒng)的離散環(huán)境2.2.1Linux在虛擬機中的安裝2安裝

1)請自行下載VMwareWorkstation軟件及CentOs鏡像文件。

2)按照常規(guī)的軟件安裝流程安裝好VMwareWorkStation后,打開后如右圖所示。

3)選擇“創(chuàng)建虛擬機”。2.2.1Linux在虛擬機中的安裝2安裝

4)根據(jù)提示創(chuàng)建完成后,VmwareWorkStations中顯示了剛安裝的虛擬機。

5)點擊開啟此虛擬機。2.2.1Linux在虛擬機中的安裝2安裝

6)點擊啟動此虛擬機后,根據(jù)提示進行操作,出現(xiàn)右圖所示界面,點擊開始安裝即可。2.2.1Linux在虛擬機中的安裝2安裝

7)完成CentOs的安裝后,重新開機將進入系統(tǒng)的第一次啟動,只有當系統(tǒng)能正常啟動才說明安裝成功,否則需要排查故障或重新安裝。2.2.1Linux在虛擬機中的安裝3系統(tǒng)登錄

系統(tǒng)啟動后根據(jù)安裝時用戶的設(shè)置,系統(tǒng)登錄界面有所不同。共分為兩種模式:1)以文本模式登錄2)以圖形模式登錄若選擇系統(tǒng)啟動后是進入文本模式,則出現(xiàn)如下圖所示登錄界面,輸入用戶賬號和密碼,賬號驗證成功后登錄系統(tǒng)。本課程實驗在文本模式下進行。

若需要以圖形模式登入,則在安裝centos時需要額外安裝圖形界面程序包?!洞髷?shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群大數(shù)據(jù)基礎(chǔ)Unit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群2.2.1Linux在虛擬機中的安裝2.2Linux操作系統(tǒng)安裝與使用2.2.2Linux文本編輯器Vi的使用基礎(chǔ)Linux應(yīng)用2.2.2Linux文本編輯器Vi的使用1什么是vi(vim)文本編輯器vi:無論是一般的文本文件、數(shù)據(jù)文件,還是編寫的源程序文件,都能使用vi來建立、編輯、顯示和處理。文本編輯器可以執(zhí)行輸出、刪除、查找、替換、塊操作等眾多文本操作。vi開銷較小,功能卻較強,并且兼容各種Linux系統(tǒng)的特點這使得它歷經(jīng)數(shù)十年仍然被廣泛使用。2vi的使用

vi的3種工作模式:插入模式(insertmode)惟一的功能即是文字數(shù)據(jù)的輸入,按Esc鍵可以回到編輯模式。編輯模式(commandmode)這是進入vi時的默認模式,主要功能是控制光標的移動、刪除字符、

區(qū)段復(fù)制等。命令模式(lastlinemode)保存文件、退出vi,以及其他的設(shè)置,例如查找或替換字符串等。

2.2.2Linux文本編輯器Vi的使用2vi的使用vi3種工作模式之間的相互切換:編輯模式→插入模式:按a鍵:從當前光標所在位置的下一個字符開始輸入

按i鍵:從光標所在位置插入新輸入的字符按o鍵:新増加一行,并將光標移動到下一行的開頭注意:在編輯模式下輸入命令時,如a、i、o,字符并不會顯示出來2.2.2Linux文本編輯器Vi的使用2Vi的使用插入模式→編輯模式:

只需按下Esc鍵編輯模式→命令模式:輸入“:”鍵即可命令模式→編輯模式:輸入命令后回車即可2.2.2Linux文本編輯器Vi的使用3編輯模式和命令模式下的操作編輯模式中常用命令:

-插入文本命令-移動光標命令-剪貼板相關(guān)命令

-替換和刪除文字

2.2.2Linux文本編輯器Vi的使用命令說明i在光標前插入文本a在光標后插入文本I在當前行的前端插入文本A在當前行的末端插入文本O在當前行前插入一行o在當前行后插入一行…………3編輯模式和命令模式下的操作要使用命令模式,先按Esc鍵以確定回到編輯模式,然后再按“:”、“?”或“/”等都可進入命令模式2.2.2Linux文本編輯器Vi的使用命令說明:q不保存退出:w將文件保存:q!強制退出不保存:wq退出并保存:setnu在文件每行增加行號:n光標移至該行行首…………《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群大數(shù)據(jù)基礎(chǔ)Unit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群基礎(chǔ)Linux應(yīng)用2.3.1文件操作2.3Linux常用命令2.3.2目錄操作2.3.3用戶操作2.3.1文件操作1ls命令指令名稱:ls指令英文原義:list功能描述:顯示目錄文件語法:ls選項[-alF][文件或目錄]-a顯示所有文件,包括隱藏文件

-l使用長格式顯示

-F附加文件類別,符號在文件名最后執(zhí)行權(quán)限:AllUser2cp命令指令名稱:cp指令英文原義:copy功能描述:復(fù)制文件語法:cp選項[-afp][源文件或目錄][目的文件或目錄]

-a復(fù)制所有目錄并包含子目錄

-f強制復(fù)制文件

-p保留原文件的日期執(zhí)行權(quán)限:AllUser2.3.1文件操作3cat命令指令名稱:cat功能描述:顯示文件內(nèi)容語法:cat[文件名]執(zhí)行權(quán)限:AllUser

范例:

$cattest.txt

顯示出文件test.txt的內(nèi)容

2.3.1文件操作4more命令指令名稱:more功能描述:分頁顯示文件內(nèi)容語法:more[文件名]

f或(空格)顯示下一頁

Enter顯示下一行

q或Q退出more執(zhí)行權(quán)限:AllUser范例:$moretest.txt分頁顯示出文件test.txt的內(nèi)容

2.3.1文件操作5rm命令指令名稱:rm指令英文原義:remove功能描述:刪除文件語法:rm選項[-irf][文件或目錄]

-i交互方式,詢問是否刪除

-r遞歸刪除目錄 -f強制刪除,不需詢問執(zhí)行權(quán)限:AllUser2.3.1文件操作范例:

$rmfile

刪除文件

$rm-rfdir

強制刪除整個目錄注意:rm刪除文件沒有提示且無法恢復(fù),所以線上使用rm命令時特別小心。2.3.1文件操作范例:

$rm-ifile

刪除文件前進行確認

6mv命令指令名稱:mv指令英文原義:move功能描述:移動文件語法:mv選項[-ifb][源文件或目錄][目的文件或目錄]

-i交互方式,詢問是否覆蓋-f強制移動,不詢問是否覆蓋 -b刪除先前的備份執(zhí)行權(quán)限:AllUser2.3.1文件操作《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群大數(shù)據(jù)基礎(chǔ)Unit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群基礎(chǔ)Linux應(yīng)用2.3.1文件操作2.3Linux常用命令2.3.2目錄操作2.3.3用戶操作2.3.2目錄操作1cd命令指令名稱:cd指令英文原義:changedirectory功能描述:切換目錄語法:cd[目錄]執(zhí)行權(quán)限:AllUser范例:$cd..回到上一級目錄$cd~回到用戶的宿主目錄$cd/切換到根目錄$cd../usr切換到上一層目錄的usr目錄

2pwd命令指令名稱:pwd指令英文原義:printworkdirectory功能描述:顯示目前所在的工作目錄語法:pwd執(zhí)行權(quán)限:AllUser范例:

在根目錄下輸入以下命令:$pwd

顯示當前工作目錄為/

2.3.2目錄操作3mkdir命令指令名稱:mkdir功能描述:建立目錄語法:mkdir選項[-p][目錄名]

-p依次創(chuàng)建目錄執(zhí)行權(quán)限:AllUser范例:

$mkdirdir1

$mkdir-pdir2/dir3/

2.3.2目錄操作4rmdir命令指令名稱:rmdir功能描述:刪除空目錄語法:rmdir選項[目錄名]執(zhí)行權(quán)限:AllUser范例:

$rmdirdir1當dir1為空的時候,刪除dir1

2.3.2目錄操作5tar命令指令名稱:tar功能描述:壓縮文件目錄語法:tar選項[-zcvf][文件或目錄]

-z

如果配合選項c使用是壓縮,配合x使用是解壓縮

-c建立一個壓縮文件

-v顯示處理的文件信息

-f指定包的文件名

執(zhí)行權(quán)限:AllUser2.3.2目錄操作范例:$tar-cfall.tar*.txt將所有txt文件壓縮成一個名為all.tar的壓縮文件

6tar命令tar的解壓縮語法:tar選項[-xtzvf]tarfile.tar.gz(或.tgz)

-x將壓縮文件解壓

-t

查看壓縮包中的內(nèi)容

-z如果配合選項c使用是壓縮,配合x使用是解壓縮

-v將解壓縮的過程顯示在屏幕上

-f指定解壓對象,最后一個參數(shù),后面接檔案名范例:

$tar-xzvffile.tar.gz

解壓

tar.gz

2.3.2目錄操作《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群大數(shù)據(jù)基礎(chǔ)Unit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群2.3.1文件操作2.3Linux常用命令2.3.2目錄操作基礎(chǔ)Linux應(yīng)用2.3.3用戶操作2.3.3用戶操作1useradd命令指令名稱:useradd功能描述:新建用戶語法:useradd選項[-udcgG]用戶名

-u指定用戶ID

-d指定用戶登入時的起始目錄

-c加上備注文字-g指定用戶所屬的群組執(zhí)行權(quán)限:AllUser范例:

$useradduser1

添加一般用戶

$useradd-d/home/mydiruser1

為新添加的用戶指定home目錄2.3.3用戶操作范例:

$useradduser2-u555

建立用戶且指定ID

2passwd命令指令名稱:passwd指令英文原義:password功能描述:配置密碼語法:passwd

選項[-Slud]用戶名

-S顯示密碼信息

-l停止賬號使用

-u啟動已被停止的賬戶-d刪除密碼執(zhí)行權(quán)限:AllUser2.3.3用戶操作3su命令指令名稱:su功能描述:用戶切換命令語法:su選項[-lpc]用戶名

-切換用戶和工作環(huán)境

-l同-類似

但需添加欲切換的用戶

-p切換用戶,不改變工作環(huán)境-c切換用戶執(zhí)行命令后切換回來執(zhí)行權(quán)限:AllUser

2.3.3用戶操作《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群訓(xùn)練

2-1單元2Linux常用命令Linux數(shù)據(jù)文件管理訓(xùn)練同步BigdataHadoop大數(shù)據(jù)基礎(chǔ)pythonUnit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群訓(xùn)練

2-1:Linux數(shù)據(jù)文件管理案例目標能熟練使用和掌握Linux操作系統(tǒng)的ls、cp、rm、mv、cat等文件操作命令及pwd、mkdir、rmdir、tar、cd等目錄操作命令。案例解釋本案例通過在/home目錄下進行創(chuàng)建自己的子目錄、復(fù)制文件等一系列目錄操作及文件操作,達到使學(xué)生熟練掌握在Linux操作系統(tǒng)中使用各種常用命令管理數(shù)據(jù)文件的目標。實現(xiàn)思路基本步驟

1.在Linux下完成以下目錄操作(1)在/home下建立自己的子目錄,子目錄名自己取,然后在自已的

子目錄下再創(chuàng)建子目錄,可以多建幾個(2)進入/home查看創(chuàng)建的子目錄。(3)刪除一部分自己子目錄下的子目錄(4)再回自己的子目錄,顯示當前目錄清單(5)顯示當前目錄所處的路徑訓(xùn)練2-1:Linux數(shù)據(jù)文件管理運行效果實現(xiàn)思路基本步驟2.在Linux下完成以下文件操作(1)復(fù)制一部分文件到當前目錄cp/usr/src/kernel/*.c.注意:命令最后有一個小數(shù)點,表示目標地址為當前目錄,后面的命令中也要注意(2)將test1.c改名為test3.c(3)査看當前目錄中是否有test3.c文件,是否還有test1.c文件。(4)按頁顯示文件test3.c的內(nèi)容(5)將當前目錄下的所有文件打包,并壓縮生成doc.tar文件訓(xùn)練2-1:Linux數(shù)據(jù)文件管理運行效果《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群訓(xùn)練

2-2單元2Linux常用命令Linux系統(tǒng)日志采集訓(xùn)練同步BigdataHadoop大數(shù)據(jù)基礎(chǔ)pythonUnit2《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群訓(xùn)練

2-2:Linux系統(tǒng)日志采集案例目標案例解釋通過本案例的學(xué)習,能熟練掌握Linux系統(tǒng)日志文件、配置文件的相關(guān)知識,并學(xué)會查看、采集、配置系統(tǒng)日志信息,學(xué)會根據(jù)需求查看、配置系統(tǒng)的配置文件。本案例通過編輯修改系統(tǒng)日志的配置文件,達到采集Linux系統(tǒng)日志的目標。運行效果實現(xiàn)思路基本步驟編輯配置文件:

命令:vi/etc/rsyslog.conf2.在配置文件中添加配置:*.*/var/log/test2.log3.重啟日志服務(wù),使配置生效:

systemctlrestartrsyslog.service4.做系統(tǒng)操作,使產(chǎn)生日志5.查看日志是否生成:cat/var/log/test2.log訓(xùn)練2-2:Linux系統(tǒng)日志采集運行效果實現(xiàn)思路運行結(jié)果訓(xùn)練2-2:Linux系統(tǒng)日志采集《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群儲與計算大數(shù)據(jù)存大數(shù)據(jù)基礎(chǔ)Unit3《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群3.1.1分布式存儲概述3.1.2HDFS工作原理3.1.3HDFS基礎(chǔ)命令3.1分布式存儲3.1.1分布式存儲概述1集中式存儲和分布式存儲集中式存儲就是指由一臺或多臺主計算機組成中心節(jié)點,數(shù)據(jù)集中存儲于這個中心節(jié)點中,并且整個系統(tǒng)的所有業(yè)務(wù)單元都集中部署在這個中心節(jié)點上,系統(tǒng)所有的功能均由其集中處理。

集中式存儲系統(tǒng)最大的特點就是部署結(jié)構(gòu)簡單,由于集中式系統(tǒng)往往基于底層性能卓越的大型主機,因此無需考慮如何對服務(wù)進行多個節(jié)點的部署,也就不用考慮多個節(jié)點之間的分布式協(xié)作問題。3.1.1分布式存儲概述1集中式存儲和分布式存儲分布式存儲,是相對于集中式存儲來說的,是將數(shù)據(jù)分散存儲在多臺獨立的網(wǎng)絡(luò)服務(wù)器上,這些服務(wù)器在空間部署上可以隨意分布,可能被放在不同的機柜上,也可能在不同的機房中,甚至分布在不同的城市。分布式存儲系統(tǒng)采用可擴展的系統(tǒng)結(jié)構(gòu),滿足了大數(shù)據(jù)應(yīng)用存儲的需要,能夠利用多臺存儲服務(wù)器分擔存儲負荷,利用位置服務(wù)器定位存儲信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴展。3.1.1分布式存儲概述2分布式存儲系統(tǒng)的特性分布式系統(tǒng)可以方便的擴展到幾百臺到幾千臺的集群規(guī)模,而且,隨著集群規(guī)模的增長,系統(tǒng)整體性能表現(xiàn)為線性增長??蓴U展分布式存儲系統(tǒng)的自動容錯、自動負載均衡機制使其可以構(gòu)建在普通PC機之上。另外,線性擴展能力也使得增加、減少機器非常方便,可以使用較低的成本實現(xiàn)自動運維。低成本無論整個集群還是單機服務(wù),都要求分布式系統(tǒng)具備高性能。高性能分布式存儲系統(tǒng)需要提供易用的對外接口,另外也要求具備完善的監(jiān)控、運維工具,并能夠方便地與其它系統(tǒng)集成。易用3.1.1分布式存儲概述

CAP理論加州大學(xué)伯克利分校的計算機教授EricBrewer在2000年提出,其核心思想是任何基于網(wǎng)絡(luò)的數(shù)據(jù)共享系統(tǒng)最多只能滿足數(shù)據(jù)一致性(Consistency)、可用性(Availability)和分區(qū)容忍性(PartitionTolerance)三個特性中的兩個。3分布式存儲系統(tǒng)面臨的挑戰(zhàn)3.1.1分布式存儲概述3分布式存儲系統(tǒng)面臨的挑戰(zhàn)是指保證系統(tǒng)中多個副本的數(shù)據(jù)完全一致的性質(zhì)。數(shù)據(jù)一致性(Consistency)是指在系統(tǒng)中的一部分節(jié)點出現(xiàn)故障之后,系統(tǒng)的整體不影響客戶端的讀/寫請求。可用性(Availability)是指容忍系統(tǒng)的網(wǎng)絡(luò)出現(xiàn)分區(qū),分區(qū)之間網(wǎng)絡(luò)不可達。分區(qū)容忍性(PartitionTolerance)3.1.1分布式存儲概述

分區(qū)容忍性一個分布式系統(tǒng)里面,節(jié)點組成的網(wǎng)絡(luò)本來應(yīng)該是連通的。然而可能因為一些故障,使得有些節(jié)點之間不連通了,整個網(wǎng)絡(luò)就分成了幾塊區(qū)域。數(shù)據(jù)就散布在了這些不連通的區(qū)域中。這就叫分區(qū)。當你一個數(shù)據(jù)項只在一個節(jié)點中保存,那么分區(qū)出現(xiàn)后,和這個節(jié)點不連通的部分就訪問不到這個數(shù)據(jù)了。這時分區(qū)就是無法容忍的。

提高分區(qū)容忍性的辦法就是一個數(shù)據(jù)項復(fù)制到多個節(jié)點上,那么出現(xiàn)分區(qū)之后,這一數(shù)據(jù)項就可能分布到各個區(qū)里,容忍性就提高了。3分布式存儲系統(tǒng)面臨的挑戰(zhàn)3.1.1分布式存儲概述

一致性和可用性的矛盾由于當前的網(wǎng)絡(luò)硬件肯定會出現(xiàn)延遲丟包等問題,所以分區(qū)容忍性是我們必須需要實現(xiàn)的。根據(jù)CAP理論,我們只能在一致性和可用性之間進行權(quán)衡??傊?,數(shù)據(jù)存在的節(jié)點越多,分區(qū)容忍性越高,這就要求復(fù)制更新的數(shù)據(jù)就越多,一致性就越難保證。為了保證一致性,每次寫操作就都要等待全部節(jié)點寫成功,更新所有節(jié)點數(shù)據(jù)所需要的時間就越長,可用性就會降低。3分布式存儲系統(tǒng)面臨的挑戰(zhàn)3.1.1分布式存儲概述4分布式存儲系統(tǒng)的分類

數(shù)據(jù)分類由于分布式存儲系統(tǒng)所面臨的數(shù)據(jù)需求相對復(fù)雜,大致可以分為三類:如所有格式的辦公文檔、文本、圖片、圖像、音頻和視頻信息等(1)非結(jié)構(gòu)化數(shù)據(jù)一般存儲在關(guān)系型數(shù)據(jù)庫中,可以用二維關(guān)系表結(jié)構(gòu)表示(2)結(jié)構(gòu)化數(shù)據(jù)介于非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)之間,如HTML,一般是自描述的(3)半結(jié)構(gòu)化數(shù)據(jù)3.1.1分布式存儲概述4分布式存儲系統(tǒng)的分類互聯(lián)網(wǎng)應(yīng)用中,需要存儲大量的圖片、照片、視頻等非結(jié)構(gòu)化的數(shù)據(jù),這類數(shù)據(jù)以對象的形式組織,對象之間沒有關(guān)聯(lián)。如Google的GFS和Hadoop的HDFS(1)分布式文件系統(tǒng)存儲簡單的半結(jié)構(gòu)化數(shù)據(jù),它只提供基于主鍵的CRUD功能,即根據(jù)主鍵創(chuàng)建、讀取、更新或者刪除一條鍵值記錄。如Amazon的Dynamo以及Taobao的Tair。(2)分布式鍵值系統(tǒng)存儲關(guān)系較為復(fù)雜的半結(jié)構(gòu)化數(shù)據(jù),與分布式鍵值系統(tǒng)相關(guān),分布式表格系統(tǒng)不僅僅支持簡單的CRUD操作,而且支持掃描某個主鍵范圍.如Google的Bigtable。(3)分布式表格系統(tǒng)用于存儲結(jié)構(gòu)化數(shù)據(jù)。分布式數(shù)據(jù)庫采用二維表格組織數(shù)據(jù),并且提供SQL關(guān)系查詢語言,支持多表關(guān)聯(lián),嵌套子查詢等復(fù)雜的操作,并提供數(shù)據(jù)庫事務(wù)以及并發(fā)控制。如MySQL數(shù)據(jù)庫分片集群。(4)分布式數(shù)據(jù)庫分布式存儲按照處理不同類型的數(shù)據(jù),大致可分為以下四類:《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群儲與計算大數(shù)據(jù)存大數(shù)據(jù)基礎(chǔ)Unit3《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群3.1.1分布式存儲概述3.1.2HDFS工作原理3.1.3HDFS基礎(chǔ)命令3.1分布式存儲3.1.2HDFS工作原理2003年至2006年,Google發(fā)布了著名的三大論文,分別是:2003年發(fā)布的分布式文件系統(tǒng)GoogleFileSystem,2004年發(fā)布的分布式并行計算框架MapReduce,2006年發(fā)布的大型的分布式數(shù)據(jù)庫Bigtable。

以三大論文為基礎(chǔ),演化出了開源項目Hadoop,Hadoop的核心是分布式文件存儲系統(tǒng)HDFS和分布式并行計算框架MapReduce。3.1.2HDFS工作原理1HDFS概述

HDFS(HadoopDistributedFileSystem)HDFS全稱Hadoop分布式文件系統(tǒng),是由Google在2003年發(fā)布的分布式文件系統(tǒng)GoogleFileSystem論文基礎(chǔ)上演化而來的開源版本。HDFS是Hadoop生態(tài)系統(tǒng)中非常重要的一環(huán),它為管理大數(shù)據(jù)資源池和支撐相關(guān)大數(shù)據(jù)分析應(yīng)用提供了一個具有高可靠性的工具。

3.1.2HDFS工作原理1HDFS概述

HDFS的優(yōu)缺點

HDFS的優(yōu)點:高容錯性,數(shù)據(jù)自動保存多份;被設(shè)計為能夠部署在低廉的硬件上;提供高吞吐量來訪問應(yīng)用程序的數(shù)據(jù),適合處理大數(shù)據(jù);流式文件訪問,允許一次寫入,多次讀??;適合進行批處理。HDFS的缺點:不善于處理低延遲數(shù)據(jù)訪問;不善于處理小文件存?。徊恢С植l(fā)寫入,一個文件同時只能被一個寫入者修改。3.1.2HDFS工作原理2HDFS中的基礎(chǔ)概念HDFS中的存儲單元是數(shù)據(jù)塊,它的默認大小是64M,也就是HDFS中的文件是被分成一塊塊的64M的數(shù)據(jù)塊存儲的。數(shù)據(jù)塊(Block)維護著文件系統(tǒng)樹及整棵樹內(nèi)所有的文件和目錄,并以兩個文件形式永久保存在本地磁盤上:命名空間鏡像和編輯日志。該節(jié)點也記錄著每個文件中各個數(shù)據(jù)塊所在的數(shù)據(jù)節(jié)點信息。元數(shù)據(jù)節(jié)點(NameNode)是真正存儲數(shù)據(jù)的地方??蛻舳耍╟lient)和元數(shù)據(jù)節(jié)點可以向數(shù)據(jù)節(jié)點請求寫入或者讀出數(shù)據(jù)塊。該節(jié)點也需要周期性的向元數(shù)據(jù)節(jié)點匯報其存儲的數(shù)據(jù)塊信息。數(shù)據(jù)節(jié)點(DataNode)主要功能是周期性的將元數(shù)據(jù)節(jié)點的命名空間鏡像和編輯日志合并,以防日志文件過大;合并后的命名空間鏡像也會在該節(jié)點保存一份。從元數(shù)據(jù)節(jié)點(SecondaryNameNode)3.1.2HDFS工作原理3HDFS中文件寫入操作流程客戶端(HDFSClient)元數(shù)據(jù)節(jié)點(NameNode)數(shù)據(jù)節(jié)點(DataNode)3.1.2HDFS工作原理4HDFS中文件讀取操作流程客戶端(HDFSClient)元數(shù)據(jù)節(jié)點(NameNode)數(shù)據(jù)節(jié)點(DataNode)《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群儲與計算大數(shù)據(jù)存大數(shù)據(jù)基礎(chǔ)Unit3《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群3.1.1分布式存儲概述3.1.2HDFS工作原理3.1.3HDFS基礎(chǔ)命令3.1分布式存儲3.1.3HDFS基礎(chǔ)命令1HDFS命令概述

HDFS提供了相當多的Shell操作命令,大大方便了程序員和系統(tǒng)管理員查看、修改HDFS上的文件。比如文件操作命令hdfsdfs、管理命令hdfsdfsadmin等。進一步,HDFS的操作命令和Unix/Linux的命令名稱和格式相當一致,因而學(xué)習HDFS命令的成本也大為縮小。3.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令HDFS文件操作命令是hdfsdfs起始的高度類似linux文件操作的命令集??梢允褂眠@些命令查看HDFS上的目錄結(jié)構(gòu)、上傳和下載文件、創(chuàng)建文件夾、復(fù)制文件等。

查看目錄結(jié)構(gòu)命令lshdfsdfs-ls文件夾路徑

功能:列出文件夾內(nèi)的一層目錄hdfsdfs-ls-R文件夾路徑

功能:列出文件夾內(nèi)的多層的所有目錄例如:hdfsdfs-ls/home/zjiet例如:hdfsdfs-ls–R/home/zjiet3.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令hdfsdfs–mkdir文件夾路徑功能:創(chuàng)建一個文件夾。如果路徑中間的文件夾不存在,無法創(chuàng)建。hdfsdfs–mkdir-p文件夾路徑功能:創(chuàng)建多層的文件夾。如果路徑中間的文件夾不存在,多層的文件夾都會創(chuàng)建。

創(chuàng)建文件夾命令mkdir例如:hdfsdfs-mkdir/home/zjiet例如:hdfsdfs–mkdir-p/home/zjiet3.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令hdfsdfs–touchz文件路徑

功能:創(chuàng)建一個文件。如果文件本就存在就失敗。hdfsdfs–cat文件路徑功能:查看文件內(nèi)容。

創(chuàng)建文件命令touchz

查看文件內(nèi)容命令cat例如:hdfsdfs-touchz/home/zjiet/news.txt例如:hdfsdfs-cat/home/zjiet/news.txt3.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令hdfsdfs-cp文件路徑文件夾路徑功能:復(fù)制一個文件到另一個文件夾內(nèi)。

復(fù)制文件命令cp例如:hdfsdfs-cp/home/zjiet/news.txt

/home/zjiet23.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令hdfsdfs–rm文件功能:刪除文件。

刪除文件和目錄命令rmhdfsdfs–rm–r文件夾路徑功能:刪除文件或文件夾內(nèi)所有內(nèi)容。例如:hdfsdfs-rm/home/zjiet/news.txt例如:hdfsdfs-rm–r/home/zjiet3.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令hdfsdfs–put本地路徑HDFS系統(tǒng)路徑功能:本地路徑的文件上傳到HDFS目錄。

上傳文件或目錄命令put例如:hdfsdfs-put/centos/news.txt

/home/zjiet3.1.3HDFS基礎(chǔ)命令2HDFS文件操作命令hdfsdfs–getHDFS系統(tǒng)路徑本地路徑功能:HDFS目錄下的文件下載到本地路徑

下載文件或目錄命令get例如:hdfsdfs-get/home/zjiet/news.txt/centos《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群儲與計算大數(shù)據(jù)存大數(shù)據(jù)基礎(chǔ)Unit3《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群3.2.1分布式計算概述3.2.2MapReduce計算框架3.2分布式計算3.2.1分布式計算概述1分布式計算的定義分布式計算技術(shù)是一門計算機科學(xué),它研究如何把一個需要非常巨大的計算能力才能解決的問題分成許多小的部分,然后把這些部分分配給許多計算機進行處理,最后把這些計算結(jié)果綜合起來得到最終的結(jié)果。3.2.1分布式計算概述2分布式計算的分類-批處理和流處理批處理流處理12按照對數(shù)據(jù)的處理時效分類實時產(chǎn)生的新的數(shù)據(jù)先被存儲起來,在未來的某個時間一批批的處理。

它可以基于預(yù)定的時間間隔如每五分鐘、或每天等處理一次,或在某些觸發(fā)的條件下如新的數(shù)據(jù)容量達到預(yù)定規(guī)模等。實時產(chǎn)生的新的數(shù)據(jù)會被實時的一條條的處理,而不會等待到未來的某個時刻一批處理。

如今,越來越多的系統(tǒng)設(shè)計用于流處理,以支持近乎實時的事件處理。3.2.1分布式計算概述2分布式計算的分類-批處理和流處理

批處理和流處理之間差異的含義盡管流處理和批處理之間的差異似乎只是時間差異的問題。

但它們實際上對數(shù)據(jù)處理系統(tǒng)的體系結(jié)構(gòu)和使用它們的應(yīng)用程序都有著根本的影響。

流處理系統(tǒng)的設(shè)計是為了在數(shù)據(jù)到達時對其進行響應(yīng)。這就要求它們實現(xiàn)一個由事件驅(qū)動的體系結(jié)構(gòu),即系統(tǒng)的內(nèi)部工作流設(shè)計為在接收到數(shù)據(jù)后立即連續(xù)監(jiān)視新數(shù)據(jù)和調(diào)度處理。

批處理系統(tǒng)中的內(nèi)部工作流只定期檢查新數(shù)據(jù),并且只在下一個批處理窗口發(fā)生時處理該數(shù)據(jù)。3.2.1分布式計算概述2分布式計算的分類-批處理和流處理處理場景批處理通常適用于具有最新數(shù)據(jù)并不重要的用例,以及容忍較慢響應(yīng)時間的情況。例如,對歷史數(shù)據(jù)進行離線分析以計算結(jié)果或識別相關(guān)性是一種常見的批處理用例。流處理對于需要實時交互和實時響應(yīng)的情況是必需的。金融交易處理,實時欺詐檢測和實時定價是最適合流處理的示例。分布式計算概述3分布式計算常用框架

MapReduceHadoop的MapReduce是Google在2004年發(fā)布的分布式并行計算框架MapReduce論文的開源實現(xiàn),是適合處理大級別量的離線數(shù)據(jù)批處理的分布式計算框架。它不適合處理大量的小文件和有實時性要求的任務(wù)。

目前市面上有很多大數(shù)據(jù)框架,有突出代表性的如批處理計算框架MapReduce,流處理計算框架Storm,以及混合處理型計算框架Spark。分布式計算概述3分布式計算常用框架

StormStorm是由類Lisp語言開發(fā)的一個用來處理實時的大數(shù)據(jù)的基于流處理的分布式計算框架。

它的出現(xiàn)在一定程度上結(jié)束了Hadoop的MapReduce的延遲比較大,后期程序運維復(fù)雜等特點,而且它還有MapReduce所不能支持的實時性、流式計算等特點。對一些實時性的數(shù)據(jù)分析,Storm具有非常高的效率。分布式計算概述3分布式計算常用框架

SparkSpark是使用Scala編寫、基于RDD(ResilientDistributedDatasets)彈性分布式內(nèi)存數(shù)據(jù)集的批處理的分布式計算框架。同時,Spark生態(tài)系統(tǒng)中還包括很多附加庫,其中的SparkStreaming基于微批量方式的計算和處理,可以用于處理實時的流數(shù)據(jù)。

該框架基于內(nèi)存計算,解決了在Hadoop的MapReduce計算框架中,執(zhí)行迭代性質(zhì)的任務(wù)效率比較低的弊端,除此之外該框架還提供了任務(wù)執(zhí)行期間的交互查詢,增加了任務(wù)的可控性。相比Hadoop,Spark除了提供計算的方法調(diào)用之外,還提供了更多的操作?!洞髷?shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群儲與計算大數(shù)據(jù)存大數(shù)據(jù)基礎(chǔ)Unit3《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群3.2.1分布式計算概述3.2.2MapReduce計算框架3.2分布式計算3.2.2MapReduce計算框架1MapReduce計算框架簡介

MapReduce最早是由Google公司研究提出的一種面向大規(guī)模數(shù)據(jù)處理的并行計算模型和方法。設(shè)計初衷主要是為了解決其搜索引擎中大規(guī)模網(wǎng)頁數(shù)據(jù)的并行化處理。

但由于MapReduce可以普遍應(yīng)用于很多大規(guī)模數(shù)據(jù)的計算問題,Google公司內(nèi)部進一步將其廣泛應(yīng)用于很多大規(guī)模數(shù)據(jù)處理問題。

2004年,Google公司在國際會議上發(fā)表了MapReduce的論文,公布了基本原理和主要設(shè)計思想。3.2.2MapReduce計算框架1MapReduce計算框架簡介在Google的MapReduce論文基礎(chǔ)上,基于Java設(shè)計開發(fā)了開源MapReduce并行計算框架,和HDFS構(gòu)成了Hadoop的核心。MapReduce極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。

Hadoop成為Apache開源組織下最重要的項目,自其推出后很快得到了全球?qū)W術(shù)界和工業(yè)界的普遍關(guān)注,并得到推廣和普及應(yīng)用。

3.2.2MapReduce計算框架2HadoopMapReduce的計算原理

MapReduce設(shè)計思想

MapReduce源于函數(shù)式語言中的內(nèi)置函數(shù)map和reduce,把一個計算分成map與reduce兩個計算過程,采用“分而治之”的設(shè)計思想。

它把一個大的計算任務(wù)劃分為多個小的計算任務(wù),然后把每個小的計算任務(wù)分配給集群的每個計算節(jié)點,并一直跟蹤每個計算節(jié)點的進度決定是否重新執(zhí)行該任務(wù),最后收集每個節(jié)點上的計算結(jié)果并輸出。3.2.2MapReduce計算框架2HadoopMapReduce的計算原理

MapReduce計算過程

MapReduce計算過程可以分為Map階段和Reduce階段。Map是映射,負責數(shù)據(jù)的過濾分發(fā);Reduce是規(guī)約,負責數(shù)據(jù)的計算歸并。

更詳細的,一個Map/Reduce作業(yè)(job)在輸入數(shù)據(jù)、輸出結(jié)果之間還經(jīng)歷了Split、Map、Shuffle、Reduce等階段。MapReduce計算過程所處理的數(shù)據(jù)都是按鍵值對(<key,value>)存儲和使用的。3.2.2MapReduce計算框架2HadoopMapReduce的計算原理MapReduce流程:Input->split->map->shuffle->reduce->resultSplit階段每個輸入文件進行切分,分片輸入到map。3.2.2MapReduce計算框架2HadoopMapReduce的計算原理MapReduce流程:Input->split->map->shuffle->reduce->resultMap階段執(zhí)行map任務(wù),任務(wù)的數(shù)量由分片決定。提供Map接口,可以由開發(fā)者對輸入的數(shù)據(jù)進行處理,得到計算需要的map階段的輸出數(shù)據(jù)。3.2.2MapReduce計算框架2HadoopMapReduce的計算原理MapReduce流程:Input->split->map->shuffle->reduce->resultShuffle階段MapReduce的核心,是奇跡發(fā)生的地方。描述著數(shù)據(jù)從map任務(wù)的輸出到reduce任務(wù)的輸入之間這段過程,也稱為“混洗”。分為map端操作和reduce端操作。3.2.2MapReduce計算框架2HadoopMapReduce的計算原理一個map的輸出先寫入緩存,當每次緩存快滿時,由緩存溢寫至磁盤,每次溢寫都先進行分區(qū),并對每個分區(qū)的數(shù)據(jù)進行排序(sort)和合并(combine)。最后,通知reduce任務(wù)來領(lǐng)取自己的分區(qū)。Shuffle的Map端操作每個reduce任務(wù)會從多個map任務(wù)領(lǐng)取分區(qū),然后將這些文件進行歸并(merge),交給reduce任務(wù)。Shuffle的Reduce端操作注意:設(shè)兩個鍵值對<“a”,1>和<“a”,1>,如果合并(combine),會得到<“a”,2>,如果歸并(merge),會得到<“a”,<1,1>>。3.2.2MapReduce計算框架2HadoopMapReduce的計算原理MapReduce流程:Input->split->map->shuffle->reduce->resultReduce階段執(zhí)行reduce任務(wù),reduce數(shù)量由分區(qū)數(shù)決定,結(jié)果文件的數(shù)量也由此決定。提供Reduce接口,可以由開發(fā)者對來自shuffle端的數(shù)據(jù)進行處理,得到理想的reduce階段的輸出數(shù)據(jù)。《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群Bigdata訓(xùn)練3-1單元3大數(shù)據(jù)存儲與計算新聞詞頻統(tǒng)計訓(xùn)練同步eclipseeclipse大數(shù)據(jù)基礎(chǔ)pythonUnit3《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群訓(xùn)練3-1:新聞詞頻統(tǒng)計訓(xùn)練目標在Hadoop系統(tǒng)運行MapReduce示例程序wordcount,對英文新聞稿進行詞頻統(tǒng)計訓(xùn)練解釋將英文新聞文件上傳到Hadoop系統(tǒng)的某個路徑下,作為wordcount程序執(zhí)行的輸入數(shù)據(jù),實現(xiàn)詞頻統(tǒng)計并輸出結(jié)果案例效果實現(xiàn)思路基本步驟準備一份英文新聞稿文件news.txt存放在CentOS系統(tǒng)的某個目錄。打開CentOS的控制臺,使用命令行模式進行后續(xù)的任務(wù)。執(zhí)行start-dfs.sh,啟動Hadoop系統(tǒng):在Hadoop系統(tǒng)的用戶文件夾/zjiet下創(chuàng)建級聯(lián)目錄data/wordcount在Hadoop系統(tǒng)的用戶文件夾/zjiet下創(chuàng)建目錄output將英文新聞文件news.txt從本地系統(tǒng)CentOS上傳到Hadoop系統(tǒng)的wordcount文件夾內(nèi)通過hadoopjar命令執(zhí)行wordcount示例程序,以文件夾wordcount內(nèi)的news.txt文件為輸入數(shù)據(jù),以文件夾output為輸出結(jié)果存放路徑,實現(xiàn)新聞詞頻統(tǒng)計新聞詞頻統(tǒng)計結(jié)果存放在output文件夾內(nèi)的part-r-00000文件內(nèi),打開查看詳細內(nèi)容案例3-1:新聞詞頻統(tǒng)計《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群浙江《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群4.1.1Python語言簡介4.1Python概述4.1.2Python的安裝與使用語言Python大數(shù)據(jù)基礎(chǔ)Unit44.1.1Python語言簡介Python的創(chuàng)始人:荷蘭的Guido

1989年,Guido為了打發(fā)圣誕節(jié)的無趣,決心開發(fā)一個新的腳本解釋程序,做為ABC語言的一種繼承。之所以選中Python作為該編程語言的名字,是因為他是一個叫MontyPython的喜劇團體的愛好者。

Python語言概況Python是一種解釋型、面向?qū)ο蟮木幊陶Z言;是一個開源語言,擁有大量的庫,可以高效地開發(fā)各種應(yīng)用程序。Python目前包含兩個主要版本:Python2和Python3Python2與Python3并不兼容,本課程的代碼基于Python3版本進行編寫。4.1.1Python語言簡介

Python語言特點4.1.1Python語言簡介簡單易學(xué)開源高級語言可移植性解釋性面向?qū)ο罂蓴U展豐富的庫代碼規(guī)范

Python應(yīng)用領(lǐng)域4.1.1Python語言簡介Python人工智能自動化運維云計算Web開發(fā)大數(shù)據(jù)

Python的大數(shù)據(jù)應(yīng)用數(shù)據(jù)采集數(shù)據(jù)清洗數(shù)據(jù)挖掘數(shù)據(jù)展現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)抓取可以通過requests、BeautifulSoup等很方便地實現(xiàn)Pandas庫可以勝任重復(fù)值、缺失值、異常值、格式轉(zhuǎn)換、數(shù)據(jù)分組、數(shù)據(jù)拆分等處理NumPy、SciPy、Scikit-learn、TensorFlow庫等簡化了數(shù)據(jù)挖掘算法的實現(xiàn)Matplotlib等庫可以直觀地觀察或展示數(shù)據(jù)4.1.1Python語言簡介《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群浙江《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群4.1.1Python語言簡介4.1Python概述4.1.2Python的安裝與使用語言Python大數(shù)據(jù)基礎(chǔ)Unit44.1.2Python的安裝與使用Python軟件安裝包選擇Anaconda是Python的一個集成管理工具,是數(shù)據(jù)領(lǐng)域應(yīng)用首選軟件。Anaconda里面包含了諸多數(shù)據(jù)科學(xué)相關(guān)的開源包,可以方便應(yīng)用于大數(shù)據(jù)。安裝Anaconda可以省去大量下載和安裝模塊包的時間,并且解決了軟件包之間的依賴和版本兼容問題。4.1.2Python的安裝與使用1)瀏覽器訪問anaconda下載網(wǎng)站,下載匹配的安裝包:操作系統(tǒng):Windows軟件版本:Python3.x版本機器型號:64位或32位2)使用默認配置安裝Anaconda

Windows上安裝Anaconda

編寫最簡Python程序編寫一個最簡單的Python程序,Python程序代碼保存在后綴為.py的源文件中。以IDLE為例,py文件的創(chuàng)建可以通過File菜單下的NewFile選項進行創(chuàng)建。源文件創(chuàng)建完成后,在源文件中編寫代碼,往屏幕打印一句話“這是我的第一個Python程序!”。#第一個Python程序first.pyprint('這是我的第一個Python程序!')4.1.2Python的安裝與使用

最簡Python程序剖析第一行代碼是#號開頭的,該符號用于注釋程序,即#號后面的內(nèi)容編譯器將忽略,對程序的運行不會有影響。使用注釋,基本上有以下兩個用途:1)解釋代碼功能,2)調(diào)試程序。第二行代碼有一個關(guān)鍵詞print,中文意思是打印,用于往控制臺上打印文本內(nèi)容。打印內(nèi)容通過一對引號來包含,單引號和雙引號均可。其基本格式為:print(需要打印的內(nèi)容)#第一個Python程序first.pyprint('這是我的第一個Python程序!')4.1.2Python的安裝與使用

運行最簡Python程序代碼內(nèi)容鍵入后,保存源文件。然后通過Run菜單下的RunModule選項或F5快捷鍵運行第一個程序。當IDLE的Shell窗口成功打印出“這是我的第一個Python程序!”時,說明你的Python程序正確無誤。4.1.2Python的安裝與使用《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群浙江《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群4.2.1數(shù)據(jù)類型與變量4.2.3分支控制結(jié)構(gòu)4.2.4循環(huán)控制結(jié)構(gòu)4.2Python基礎(chǔ)4.2.2運算符與表達式語言Python大數(shù)據(jù)基礎(chǔ)Unit44.2.1數(shù)據(jù)類型與變量

變量數(shù)據(jù)存放在內(nèi)存開辟的空間中,通過變量引用之后數(shù)據(jù)才能夠被訪問。Python中的變量不需要獨立聲明,變量的引用操作既是變量聲明和定義的過程。>>>student_id=1001#整型變量>>>name="張三"#字符串變量>>>average_score=95.3#浮點型變量>>>print(student_no,name,average_score)1001張三95.3數(shù)字數(shù)據(jù)類型用于存儲數(shù)值,Python中的數(shù)字類型有整型int、浮點型float和復(fù)數(shù)型complex。情形1數(shù)字類型范例>>>num_int=10#定義整型變量>>>num_float=9.5#定義浮點型變量>>>num_complex=3+4j#定義復(fù)數(shù)型變量>>>print(num_int,num_float,num_complex)109.5(3+4j)4.2.1數(shù)據(jù)類型與變量字符串是用單/雙引號對括起來的若干有效字符構(gòu)成的字符序列,用于表示文本數(shù)據(jù)。字符串里的字符可以是英文、中文及其它國家文字字符。情形范例2字符串類型>>>s="Hello中國!">>>print(s)#輸出完整字符串Hello中國!>>>print(type(s))#輸出變量s的類型名<class'str'>4.2.1數(shù)據(jù)類型與變量下標101234567891011字符串sHelloworld!下標2-12-11-10-9-8-7-6-5-4-3-2-1

字符串索引Python的字符串列表中的字符索引有2種取值順序:(1)從左到右索引默認0開始的,最大范圍是字符串長度少1。(2)從右到左索引默認-1開始的,最大范圍是字符串開頭。4.2.1數(shù)據(jù)類型與變量可以通過字符串的索引獲取字符串子串,其中又分為獲取單個字符和獲取多個字符兩種情形。情形格式變量名[下標]#獲取字符串的單個字符變量名[頭下標:尾下標]#獲取字符串的多個連續(xù)字符的子串獲取子串時,截取的子串為頭下標到尾下標之間的字符,不包含尾下標。4.2.1數(shù)據(jù)類型與變量>>>s='HelloWorld!'>>>print(s[0])H>>>print(s[6:11])World>>>print(s[6:-1])World>>>print(s[6:])World!下標101234567891011字符串sHelloWorld!下標2-12-11-10-9-8-7-6-5-4-3-2-14.2.1數(shù)據(jù)類型與變量《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群浙江《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群4.2.1數(shù)據(jù)類型與變量4.2.3分支控制結(jié)構(gòu)4.2.4循環(huán)控制結(jié)構(gòu)4.2Python基礎(chǔ)4.2.2運算符與表達式語言Python大數(shù)據(jù)基礎(chǔ)Unit4列表是指一組存在聯(lián)系數(shù)據(jù)的有序集合,可以用一個統(tǒng)一的列表名和下標來唯一地確定列表中的元素,其元素支持字符、數(shù)字、字符串、列表等類型。列表用[]將元素有序組織起來,元素之間以逗號分隔。情形列表名=[元素1,元素2,…,元素n]格式3列表類型>>>list1=[1001,'張三',95.3]>>>print(list1)#輸出完整列表[1001,'張三',95.3]4.2.1數(shù)據(jù)類型與變量可以通過列表的索引來訪問列表,其中又分為訪問單個元素和子列表兩種情形。情形格式列表名[下標]#訪問列表元素列表名[頭下標:尾下標]#訪問子列表訪問子列表時,截取的子列表為頭下標到尾下標之間的元素,不包含尾下標元素。4.2.1數(shù)據(jù)類型與變量>>>list1=[1001,'張三',95.3]>>>print(list1[0])#輸出列表的第一個元素1001>>>print(list1[-1])#輸出列表的倒數(shù)第一個元素95.3>>>list1=[1001,'張三',95.3]>>>print(list1[1:3])#輸出第二個至第三個的元素['張三',95.3]>>>print(list1[2:])#輸出從第三個開始至列表末尾的所有元素[95.3]4.2.1數(shù)據(jù)類型與變量列表是一個動態(tài)的有序序列,可以進行元素的添加和刪除操作。通過append方法可以在列表尾部添加新元素,pop方法用于從列表刪除元素,可以通過元素下標指定彈出的元素,無參數(shù)時默認彈出最后一個元素。情形格式列表名.append(新元素)#在列表末尾添加新元素列表名.pop([下標])#彈出列表中指定下標的元素,默認為-14.2.1數(shù)據(jù)類型與變量>>>list3=['張三','李四']>>>list3.append('王五')>>>print(list3)['張三','李四','王五']>>>list3.pop()'王五'>>>print(list3)['張三','李四']>>>list3.pop(0)'張三'>>>print(list3)['李四']4.2.1數(shù)據(jù)類型與變量布爾類型包含兩個值:True(真)或False(假),當某個表達式判斷條件成立時,其布爾值為True,反之為False。以下數(shù)值會被認為是False:數(shù)值0、空值None、空組合(如""、[])情形范例4布爾類型數(shù)據(jù)0-1None[]"False"[0]布爾值FalseTrueFalseFalseTrueTrue4.2.1數(shù)據(jù)類型與變量《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群浙江《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群4.2.1數(shù)據(jù)類型與變量4.2.3分支控制結(jié)構(gòu)4.2.4循環(huán)控制結(jié)構(gòu)4.2Python基礎(chǔ)4.2.2運算符與表達式語言Python大數(shù)據(jù)基礎(chǔ)Unit4算術(shù)運算符通常是為實現(xiàn)數(shù)學(xué)表達式的四則運算,其用法和功能與數(shù)學(xué)基本一樣,此外還引入了求余運算、冪運算、取整運算等。情形運算對象1基本算術(shù)運算符運算對象2格式1算術(shù)運算假設(shè)變量a為10,變量b為21則a+b的結(jié)果為它們的和314.2.2運算符與表達式運算符描述實例(a=10,b=21)+加-兩個對象相加a+b輸出結(jié)果31-減-得到負數(shù)或是一個數(shù)減去另一個數(shù)a-b輸出結(jié)果-11*乘-兩個數(shù)相乘a*b輸出結(jié)果210/除-x除以yb/a輸出結(jié)果2.1%取模-返回除法的余數(shù)b%a輸出結(jié)果1**冪-返回x的y次冪a**b為10的21次方//取整除-返回商的整數(shù)部分b//a輸出結(jié)果24.2.2運算符與表達式#代碼功能:求成績的總分和平均分score_java=int(input(‘Java成績:’))#獲取鍵盤輸入的分數(shù)score_cpp=int(input('C++成績:'))score_python=int(input('Python成績:'))total=score_java+score_cpp+score_pythonprint('總成績?yōu)椋?,total)average1=total/3#算術(shù)除法print('算術(shù)除法求得平均成績:{0:.2f}'.format(average1))#保留兩位小數(shù)average2=total//3#整除print('整除除法求得平均成績:',average2)4.2.2運算符與表達式關(guān)系運算符是對兩個運算對象之間進行比較的運算符。由關(guān)系運算符和兩個運算對象構(gòu)成的表達式稱為是關(guān)系表達式。情形運算對象1關(guān)系運算符運算對象2格式2關(guān)系運算關(guān)系表達式的運算結(jié)果是bool類型,只有兩個結(jié)果True或False。4.2.2運算符與表達式運算符描述實例(a=10,b=20)==等于-比較對象是否相等(a==b)返回False。!=不等于-比較兩個對象是否不相等(a!=b)返回True.>

大于-返回a是否大于b(a>b)返回False。<

小于-返回a是否小于b。(a<b)返回True。>=大于等于-返回a是否大于等于b。(a>=b)返回False。<=小于等于-返回a是否小于等于b。(a<=b)返回True。4.2.2運算符與表達式>>>student=[215,'張三',18,'男','浙江']>>>student[0]>=201True>>>student[0]<301True>>>student[2]>=18True>>>student[3]=='男'True>>>student[-1]!='浙江'False4.2.2運算符與表達式邏輯運算符是另一種可以產(chǎn)生邏輯值結(jié)果的運算符,但參與邏輯運算的運算對象都應(yīng)該是邏輯值。在Python語言中,邏輯運算符有3個,分別是雙目運算符的與運算“and”和或運算“or”,單目運算符的非運算“not”。情形運算對象1and運算對象2運算對象1or運算對象2not運算對象格式3邏輯運算4.2.2運算符與表達式運算符描述實例(a=10,b=20)and與運算

-如果運算對象1和運算對象2都為True,則返回True,否則返回False。(aandb)返回True。or或運算-如果運算對象1和運算對象2都為False,則返回False,否則返回True。(aorb)返回True。not非運算-如果運算對象為True,返回False,反之返回True。nota返回False。4.2.2運算符與表達式>>>student=[20180215,'張三',95,88,91]>>>student[-3]>=90orstudent[-2]>=90orstudent[-1]>=90#是否至少有一個科目高于90分True>>>student[-3]>=60andstudent[-2]>=60andstudent[-1]>=60#是否所有科目都高于60分True>>>not(student[-3]>=45orstudent[-2]>=45orstudent[-1]>=45)#是否所有科目都低于45分False4.2.2運算符與表達式《大數(shù)據(jù)基礎(chǔ)》在線開放課程組《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群浙江《大數(shù)據(jù)基礎(chǔ)》.移動商務(wù)營銷課程群4.2.1數(shù)據(jù)類型與變量4.2.3分支控制結(jié)構(gòu)4.2.4循環(huán)控制結(jié)構(gòu)4.2Python基礎(chǔ)4.2.2運算符與表達式語言P

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論