




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
物聯網數據處理…實驗指導書
(完整版)資料
(可以直接使用,可編輯優秀版資料,歡迎下載)
《物聯網數據處理》
實驗指導書
實驗一:熟悉常用的Linux操作(2學時)
一、實驗目的與要求
L熟悉安裝和配置Linux。
2、熟悉常用的Linux操作。
6、總結在調試過程中的錯誤。
二、實驗類型
驗證型
三、實驗原理及說明
通過實際操作,使學生對Linux的使用有一個更深刻
的理解;熟悉Linux的開發環境及程序結構。
四、實驗儀器
安裝操作系統:Linux
五、實驗內容和步驟
熟悉常用的Linux操作
請按要求上機實踐如下linux基本命令。
cd命令:切換目錄
(1)切換到目錄/usr/local
(2)去到目前的上層目錄
(3)回到自己的主文件夾
Is命令:查看文件與目錄
(4)查看目錄/usr下所有的文件
mkdir命令:新建新目錄
(5)進入/tmp目錄,創建一個名為a的目錄,并查看有
多少目錄存在
(6)創建目錄al/a2/a3/a4
rmdir命令:刪除空的目錄
(7)將上例創建的目錄a(/tmp下面)刪除
(8)刪除目錄al/a2/a3/a4,查看有多少目錄存在
cp命令:復制文件或目錄
(9)將主文件夾下的.bashrc復制到/usr下,命名為
bashrcl
(10)在/tmp下新建目錄test,再復制這個目錄內容
到/usr
mv命令:移動文件與目錄,或更名
(11)將上例文件bashrcl移動到目錄/usr/test
(12)將上例test目錄重命名為test2
rm命令:移除文件或目錄
(13)將上例復制的bashrcl文件刪除
(14)rm-rf將上例的test2目錄刪除
cat命令:查看文件內容
(15)查看主文件夾下的.bashrc文件內容
tac命令:反向列示
(16)反向查看主文件夾下.bashrc文件內容
more命令:一頁一頁翻動查看
(17)翻頁查看主文件夾下.bashrc文件內容
head命令:取出前面幾行
(18)查看主文件夾下.bashrc文件內容前20行
(19)查看主文件夾下.bashrc文件內容,后面50行不
顯K,只顯小刖面幾行
tail命令:取出后面幾行
(20)查看主文件夾下.bashrc文件內容最后20行
(21)蟄看主文件夾下.bashrc文件內容,只列出50
行以后的數據
touch命令:修改文件時間或創建新文件
(22)在/tmp下創建一個空文件hello并查看時間
(23)修改hello文件,將日期調整為5天前
chown命令:修改文件所有者權限
(24)將hello文件所有者改為root帳號,并查看屬性
find命令:文件查找
(25)找出主文件夾下文件名為.bashrc的文件
tar命令:壓縮命令
(27)解壓縮到/tmp目錄
grep命令:查找字符串
(28)從~/上25卜"文件中查找字符串'examples'
(29)配置Java環境變量,在~/.bashrc中設置
(30)查看JAVA_HOME變量的值
六、注意事項
命令的名稱。
七、預習與思考題
1、Linux操作系統的安裝和使用
2、常用的命令
實驗二:安裝Hadoop開發環境(2學時)
一、實驗目的與要求
1,掌握Linux虛擬機安裝方法或者雙操作系統安裝方
法。Hadoop在Linux操作系統上運行可以發揮最佳性
能,鑒于目前很多讀者可能正在使用Windows操作系
統,因此,為了完成本書的后續實驗,這里有必要通過
本實驗讓讀者掌握在Windows操作系統上搭建Linux
虛擬機的方法,以及安裝雙操作系統的方法(同時安裝
Windows和Linux系統,電腦開機時,可以選擇登錄哪
個系統入
2.掌握Hadoop的偽分布式安裝方法。很多讀者并不
具備集群環境,需要在一臺機器上模擬一個小的集群,
因此,需要通過本實驗讓讀者掌握在單機上進行
Hadoop的偽分布式安裝方法。
二、實驗類型
綜合型
三、葺驗原理及說明
通過實際操作,使學生對Hadoop的使用有一個更
深刻的理解;熟悉Hadoop的開發環境及程序結構。
四、實驗儀器
操作系統:Windows系統或者Ubuntu(推薦)。
虛擬機軟件:推薦使用的開源虛擬機軟件為
VirtualBox。VirtualBox是一款功能強大的免費虛擬機
軟件,它不僅具有豐富的特色,而且性能也很優異,簡單
易用,可虛擬的系統包括Windows、MacOSX、Linux、
OpenBSD.Solaris、IBMOS2甚至Android4.0系統等
操作系統。讀者可以在Windows系統上安裝VirtualBox
軟件,然后在VirtualBox上安裝并且運行Linux操作系
統。本次實驗默認的發行版為
LinuxUbuntul4.04o
五、實驗內容和步驟
共享文件夾設置
virtualbox中ubuntu和windows共享文件夾設置
*OracleVM'/irtualBox
a函盒一
a靠加
設mt選o<0利)
先關閉ubuntu,在virtualbox〃設置〃中找到〃共
享文件夾〃,點擊進入,點擊右邊添加目錄按鈕,添加
windows中要共享的目錄,取一個名。比如我在D盤建
一個名為share的文件夾,如下圖:
重啟ubuntu,在ubuntu系統最上端〃設備〃中找
到〃共享文件夾〃,點擊進入,點擊右邊添加目錄按鈕,
添加第二步操作的共享目錄,如
nubuntu12.04(正行卜OracleVMVirtualBox
Ubunt文件的2I(V)U?(C)借助<H)
ubuntu12.04設置
s??共享文件實
J]
&環
房部》
g0網珞憲全
偽*□
0USy"
。共享文杵突
進入虛擬Ubuntu,在命令行終端下輸入:
sudomkdir/mnt/shared
sudomount-tvboxsfshare/mnt/shared
其中”share”是之前創建的共享文件夾的名字。OK,
現在Ubuntu和主機可以互傳文件了。
要想自動掛載的話,可以在/etc/fstab中添加一項
share/mnt/sharedvboxsf
rw,gid=100,uid=1000,aut。00
Java安裝
第一步獲取安裝包。到oracle官方去下載jdk安裝
包,選擇版本時注意選擇自己的系統的版本。
第二步:解壓安裝
cd/usr/lib/jvm
第三步:修改環境變量
vi-/.bashrc
添加:
exportJAVA_HOME=/usr/lib/jvm/java-7-sun
exportJRE_HOME=${JAVA_HOME}/jre
export
CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
exportPATH=${JAVA_HOME}/bin:$PATH
保存退出,輸入以下命令使之立即生效。
source-/.bashrc
第四步:配置默認JDK版本由于ubuntu中可能會
有默認的JDK,如openjdk,所以,為了將我們安裝的
JDK設置為默認JDK版本,還要進行如下工作。
執行代碼:
sudoupdate-alternatives-install/usr/bin/java
java/usr/lib/jvm/java-7-sun/bin/java300
sudoupdate-alternatives--install
/usr/bin/javacjavac
/usr/lib/jvm/java-7-sun/bin/javac300
sudoupdate-alternatives—install/usr/bin/jar
jar/usr/lib/jvm/java-7-sun/bin/jar300
sudoupdate-alternatives--install
/usr/bin/javahjavah
/usr/lib/jvm/java-7-sun/bin/javah300
sudoupdate-alternatives-install
/usr/bin/javapjavap
/usr/lib/jvm/java-7-sun/bin/javap300
執行代碼:
sudoupdate-alternatives—configjava
系統會列出各種JDK版本,如下所示:
baidu@baidu:~$sudoupdate-alternatives
—configjava
有3個候選項可用于替換java(提供
/usr/bin/java)o
選擇路徑
優先級狀態
*0
/usr/lib/jvm/java-6-openjdk/jre/bin/java1061
自動模式
1
/usr/lib/jvm/java-6-openjdk/jre/bin/java1061
手動模式
2
/usr/lib/jvm/java-6-sun/jre/bin/java63
手動模式
3
/usr/lib/jvm/java-7-sun/bin/java300
手動模式
要維持當前值[*]請按回車鍵,或者鍵入選擇的編號:
3
update-alternatives:使用
/usr/lib/jvm/java-7-sun/bin/java來提供
于手動模式中。
/usr/bin/Java(java)z
第五步:測試
baidu@baidu:-$java-version
JavaHotSpot(TM)ServerVM(build21.0-bl7,
mixedmode)
Hadoop安裝
L創建hadoop用戶
安裝Ubuntu的時候不是用的〃hadoop〃用
戶,那么需要增加一個名為hadoop的用戶。
首先按ctrl+alt+t打開終端窗口,輸入如下命令創
建新用戶:
sudouseradd-mhadoop-s/bin/bash
接著使用如下命令設置密碼,可簡單設置為
hadoop,按提示輸入兩次密碼:
sudopasswdhadoop
可為hadoop用戶增加管理員權限,方便部署,避
免一些對新手來說比較棘手的權限問題:
sudoadduserhadoopsudo
最后注銷當前用戶(點擊屏幕右上角的齒輪,選擇注
銷),返回登陸界面。在登陸界面中選擇剛創建的
hadoop用戶進行登陸。
2.安裝SSH、配置SSH無密碼登陸
集群、單節點模式都需要用到SSH登陸(類似于遠
程登陸,你可以登錄某臺Linux主機,并且在上面運行
命令),Ubuntu默認已安裝了SSHclient,此外還需
要安衰SSHserver:
安裝后,可以使用如下命令登陸本機:
sshlocalhost
利用ssh-keygen生成密鑰,并將密鑰加入到授
權中:
$exit#退出剛才
的sshlocalhost
$cd~/.ssh/#若沒有該
目錄,請先執行一次sshlocalhost
$ssh-keygen-trsa#會有提
示,都按回車薪可以
$cat./id_rsa.pub>>./authorized_keys#力口
入授權
$cd/usr/local/
$sudochown-Rhadoop./hadoop#
修改文件權限
$cd/usr/local/hadoop
$./bin/hadoopversion
六、注意事項
七、預習與思考題
1、在Linux環境下完成偽分布式環境的搭建,并運
行Hadoop自帶的WordCount實例檢測是否運行正常。
實驗三:熟悉Hadoop平臺(2學時)
一、實驗目的與要求
L理解Hadoop平臺運行原理。
2、熟悉Hadoop的操作
二、實驗類型
設計型
三、實驗原理及說明
通過實際操作,使學生對Hadoop的使用有一個更
深刻的理解;熟悉Hadoop的開發環境及程序結構。
四、實驗儀器
安裝Ubuntu系統的計算機若干臺
五、實驗內容和步驟
1.Hadoop單機酉己置(三卜分布式)
Hadoop默認模式為非分布式模式(本地模式),
無需進行其他配置即可運行。非分布式即單Java進程,
方便進行調試。
Hadoop附帶了豐富的例子(運行.可以看到所有
例子),包括wordcount,terasort,join、grep等。
在此我們選擇運行grep例子,我們將input文件
夾中的所有文件作為輸入,篩選當中符合正則表達式
dfs[a-z.]+的單詞并統計出現的次數,最后輸出結果到
output文件夾中。
SheU命令
$cd/usr/local/hadoop
$mkdir./input
$cp./etc/hadoop/*.xml./input
$./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-exatnples-*.jargrep./input./o
utput'dfs[a-z.]+'
$cat./output/*
執行成功后如下所示,輸出了作業的相關信息,輸
出的結果是符合正則的單詞dfsadmin出現了1次
fhadoop(9>DBLab-XMU:/usr/local/hadoop
IO_ERROR=0
WRONG.LENCTHsO
WRONC2MAP-O程R
WR0NG_REDUCE-0
FileInputFornatCounters
BytesRedd^i23
FileOutputFornatCounters
hadoop@DBLdb-XMU:/usr/local/hadoop$cat./outpjt/*
[1dfadMn
Hadoop單機模式運行grep?檢出結室
注意,Hadoop默認不會覆蓋結果文件,因此再次運行
上面實例會提示出錯,需要先將./output刪除。
2.Hadoop偽分布式配置
Hadoop可以在單節點上以偽分布式的方式運行,
Hadoop進程以分離的Java進程來運行,節點既作為
NameNode也作為DataNode,同時,讀取的是
HDFS中的文件。
Hadoop的配置文件位于
/usr/local/hadoop/etc/hadoop/中,偽分布式需要修
改2個配置文件core-site.xml和hdfs-site.xmlo
Hadoop的配置文件是xml格式,每個配置以聲明
property的name和value的方式來實現。
修改配置文件core-site.xml(誦過aedit編輯會
比較方便:)將當中
gedit./etc/hadoop/core-site.xmlz
的
XMLL?</>
.〈configuration)
修改為下面配置:
XML(?]</>
1<configuration>
2<property>
3<name>hadoop.tmp.dir</name>
4<v£xue>file:/usr/local/hadoop/tmo:/value>
5<de£crip-Abaseforothertemoorarydirectories.<de-ciprion>
6</property>
7<property>
8<nefs.defaultFS
9<value>hdfs://localhost:9000</value>
10</property>
11</configuration>
同樣的,修改配置文件hdfs-site.xml:
XML
1.〈configuration)
2?〈property》
3.<narredfs.replication:/name>
<value>l</value>
5.</property>
6.<property>
dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name
10.<property>
randfs.datanode.data.dir</rare>
file:/usr/local/hadoop八mp/dfs/data
Hadoop配置文件說明
Hadoop的運行方式是由配置文件決定的(運行
Hadoop時會讀取配置文件),因此如果需要從偽分布
式模式切換回非分布式模式,需要刪除core-site.xml
中的配置項。
配置完成后,執行NameNode的格式化:
Shell命令
$./bin/hdfsnamenode-format
成功的話,會看到"successfullyformatted”和
“Exittingwithstatus0〃的提示,若為"Exitting
withstatusV則是出錯。
?魯@hadoop@)DBLab-XMU:/usr/local/hadoop
15/12/1718:35:26INFOnamenode.FSImage:AllocatednewBlockPo
--1450348526600
15/12/17二駐3舁跖。/oragedirectory/usr/
fs/namehasbeensuccessfullyformatted.
15/12/171873027INFOTiamenodeTNNSforageRetentionManager:Goii
geswithtxtd>=0二一
15/12/1718:35:27INFOutil.ExttUttl:|fxlttngwithstatuT@
15/12/1718:35:27INFOnamenode.NameNode7-SHUTDOWN_MSGl-
/******★★★★★★*★*****★**********★*****★****?**********★★★*★★*★
SHUTDOWN_MSG:ShuttingdownNameNodeatDBLab-XMU/
************************************************************y
如果在這一步時提示Error:JAVA.HOMEisnot
setandcouldnotbefound.的錯誤,則說明之前設
置JAVA.HOME環境變量那邊就沒設置好,請先設置
好JAVA.HOME變量,否則后面的過程都是進行不下
去的。
接著開啟NameNode和DataNode守護進程。
Shell命令I的</>
$./sbin/start-dfs.sh^start-dfs.sh/.
若出現如下SSH提示,輸入yes即可。
hadoop@DBLab-XMU:/usr/local/hadoopSsbtn/start-dfs.sh
Startingnamenodeson[localhost]
localhost:startingnamenode,loggingto/usr/local/hadoop/logs/hadoop-hadoop-na
localhost:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-hadoop-da
Startingsecondarynanenodes[]
Theauthenticityofhost'e.e.O.e(e.O.e.O)'can'tbeestablished.
ECDSAkevfinoerprintisa9:28:e6:4e:89:40:a4:cd:75:8f:6b:8b:57:79:67:86.
,reyousureyouwanttocontinueconnecting(yes/no)?yes
啟動時可能會出現如下WARN提示:WARN
util.NativeCodeLoader:Unabletoload
native-hadooplibraryforyourplatform...using
builtin-javaclasseswhereapplicableWARN提示擊
以忽略,并不會影響正常使險
啟動Hadoop時提示Couldnotresolve
hostname
如果啟動Hadoop時遇到輸出非常多Mssh:
Couldnotresolvehostnamexxx〃的異常情況,如下
圖所示:
?cGhadoopt^vm:/usr/local/hadoop
library:ssh:Couldnotresolvehostnamelibrary:Nameorservt
cenotknown
which:ssh:Couldnotresolvehostnamewhich:Nameorservicen
otknown
disabled:ssh:Couldnotresolvehostnamedisabled:Nameorser
vicenotkncwn
warning::ssh:Couldnotresolvehostnamewarning::Nameorser
vicenotkncwn
stack:ssh:Couldnotresolvehostnamestcick:Nameorservicen
otknown
啟動Hadoop時的異常提示
這個并不是ssh的問題,可通過設置Hadoop環
境變量來解決。首先按鍵盤的Ctrl+c中斷啟動,然后
在-/.bashrc中,增加如下兩行內容(設置過程與
JAVA.HOME變量一樣,其中HADOOP_HOME為
Hadoop的安裝目錄):
Shell
exportHADOOP_HOME=/usr/local/hadoop
2.exportHADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
保存后,務必執行source~/.bashrc使變量設置
生效,然后再次執行./sbin/start-dfs.sh啟動
Hadoopo
啟動完成后,可以通過命令jps來判斷是否成功啟
動,若成功啟動則會列出如下進程:
〃NameNode〃、"DataNodez,和
/ySecondaryNameNoden(如果
SecondaryNameNode沒有啟動,請運行
sbin/stop-dfs.sh關閉進程,然后再次嘗試啟動嘗試\
如果沒有NameNode或DataNode,那就是配置不
成功,請仔細檢查之前步驟,或通過查看啟動日志排查
原因。
|hadoop@powerxing-Ml:/usr/local/hadoop$jps
7100Jps
6867SecondaryNameNode
6445NameNode
I_6_5_9_4__D_a_t_a_N_o_de___________________________■__
通過jps查看啟動的Hadoop進程
成功啟動后,可以訪問Web界
面://localhost:50070查看NameNode和
Datanode信息,上可以在線查看HDFS中的文件。
Namenodeinformationx|
K.)?iMiiBWtSOOTC/dfih—ItKhtmlMtbovtrvltw▼
HadoopOverviewDatanodesSnapshotStartupProgressUtilities
Overview1ocalhost:9000,(active)
Started:ThuAug0710:33:16CST2014
Version:2.4.1.r1604318
Comptlexl:2014*06-21T05:43ZbyJenkinsfrombrarxh*2.4.1
ClusterID:a0-7a8af(to-c5<M-46b0-873f-68c7e843474c
六、注意事項
熟悉Hadoop的配置文件。
七、預習與思考題
單機版與偽分布式的配置。
實驗四:Hadoop初級實踐(2學時)
一、實驗目的與要求
L理解Hadoop平臺運行原理。
2、熟悉wordcount程序。
二、實驗類型
設計型
三、實驗原理及說明
通過實際操作,使學生對Hadoop的使用有一個更
深刻的理解;熟悉Hadoop的開發環境及程序結構。
四、實驗儀器
安裝Ubuntu系統的計算機若干臺
五、實驗內容和步驟
單詞計數是最簡單也是最能體現MapReduce思想
的程序之一,可以稱為版
MapReduce“HelloWorld"z
該程序的完整代碼可以在Hadoop安裝包的
“src/examples”目錄下找到。單詞計數主要完成功能是:
統計一系列文本文件中每個單詞出現的次數,如下圖所
示。以“hadoop”用戶登錄Hadoop服務器。
2
Hello1
World
Hadoop
1.創建本地的示例數據文件:
homeF主文件夾hadoop-1.2.1file
HelloHella
myTest1.txtmyTest2.txt
并在這個目錄下創建2個文件分別命名為【myTestl.tx
t]和[myTest2.txt]或者你想要的任何文件名。
分別在這2個文件中輸入下列示例語句:
myTest1.txtX
HelloworldHellomel|
「myTest2.txtX
HelloHadoopHelloYou!
2.在HDFS上創建輸入文件夾
調出終端,輸入下面指令:
$cd/usr/local/hadoop
$./bin/hadoopfs-mkdirhdfslnput
執行這個命令時可能會提示類似安全的問題,如果提示
了,請使用
$./bin/hadoopdfsadmin-safemodeleave
來退出安全模式。
當分布式文件系統處于安全模式的情況下,文件系統中
的內容不允許修改也不允許刪除,直到安全模式結束。
安全模式主要是為了系統啟動的時候檢查各個
DataNode上數據塊的有效性,同時根據策略必要的復
制或者刪除部分數據塊。運行期通過命令也可以進入安
全模式。
3.上傳本地file中文件到集群的hdfslnput目錄下
在終端依次輸入下面指令:
$./bin/hadoopfs-putfile/myTest*.txthdfslnput
c~~>/h?doop-1.2.1
hadoop0Node3:-$cdhadoop-1.2.1
hadoop^Node3:-/hadoop-1.2.1$btn/hadoopfs-putftle/RyTest*.txthdfslnput
hadoop9Node3:>/hadoop*1.2.1$
4.運行例子:
在終端輸入下面指令:
$./bin/hadoop
$./bin/hadoopjarhadoop-examples-*.jar
wordcounthdfslnputhdfsOutput
應該出現下面結果:
hxfooHMode):-$cdhadeop-1.2.1
hAdoop*Mode>:-/h4doop-!.2.1$bln/fs-putflle/RyTeste.txthdfslnput
h?dooHHode):*/h3doop.l,2.1$btn/j?rh4doop-exa?ple*-1.2.1.jirerdcost
hdfsUputMf$0utput
14/OS/MO7:M:3OINFOInput.FtlelnputFoffMt:Tot?lInputp?th$toprocess:6
14/6S/54”:M:30XNFOuttl.H4tlveCodelo4der:Lo4drdtheruH?h$opItbriry
14/e5/M07:16:30WARNsnappy.lo?d$n?ppy:Snappynativelibrarynotloaded
i4/e5/w07:3e:31INFO.JobCKent:)ob:Job.2ei40M4OeM.MM
14/OS/M07:M:32INFOR4pred.3obClteni:MreduceM
14/eS/M07:M:42INFOR4pred.X>bCltent:3MreduceM
14/eS/M07:M:5)IMFOfwpred.JobCltent:MMreduceM
14/05/M07:37:02INFOzpred.Rbcm:MMreduce22%
14/05/MO7:J7:e$IMFOrupred.JobCltent:10Mreduce22,
14/es/MO7:J7:1OINFOR4pred.JobCltent:IM%reduce100%
14/OS/M07:37:12XMFOR?pred.JobCUent:JobcoRplete:job_2014050W54_WM
i4/e5/M07:J7:12INFOiwpre^.Jo^CUent:Counters:29
i4/e5/M07:J7:12INFOaapred.j0bCltent:JobCoimters
14/OS/M07:37:12IMfOnapred.JobCllent:Launchedreducet4iics?l
x〃s/xO/:37:XZXMFOMpred.jobcltenc:MO!,」ufn*r,?,y703
14/eS/M07:37:12INFORapred.JobCllent:Tot4ltlMspentbyallr2uc?sgt
Cto4afterreservingslots(?n)?0
14/OS/M07:17:12INFOrwpred.JobClteAt:TotalttRespentby4ll2”w?ltln
9?ftcrreservingslots(m)>0
14/e5/M07:37:12IMFOzpred.XbcnLMnched2P3,k$Y
14/05/0407:J7:12INFOO?t<-loc?l7P3$k”6
14/05/M07:>7:12INFOR4pred.JobCltentSIOYS」ULUSJUDUaS3122
14/OS/M07:17:12INFOMpred.JobCltentFileOutputForRitCounters
i4/es/e407:S7:12INFOn>pred.JobCltentBytesWftttenvlM
14/es/M”:3九12INFO?Mpre^.j0bCU?ntFtleSysteRCounteri
14/OS/M":":12INFOR4pred.JobCltcntFIie.BYTCS.lltA0.2M
14/eS/M?7:37:12IMFOfwpred.3obCItentMOfS?BYTES二?皿--D-?892.
Hadoop命令會啟動一個JVM來運行這個MapReduce
程序,并自動獲得Hadoop的配置,同時把類的路徑(及
其依賴關系加入至(JHadoop的庫中。以上就是Hadoop
Job的運行記錄,從這里可以看到,這個Job被賦予了
一個ID號:job_2_0002,而且得知輸入文件有兩個
(Totalinputpathstoprocess:2),同時還可以了解
m叩的輸入輸出記錄(record數及字節數),以及
reduce輸入輸出記錄。
查看HDFS±hdfsOutput目錄內容:
在終端輸入下面指令:
bin/hadoopfs-IshdfsOutput
Mdoop|Rode):?/K4doop>1.2.1$bln/Kadoopfs-IsMfsOutput
Found3Item
-rw?f3hadoopsupergroup62649S0407:37/vser/hadoop/MfsOut
ovt/.success
drwxr?xr?x?hadoopsupergroup02ei405e4":M/vser/hadoop/MfsOut
put/.loQi
rw-r--r-*3h?doopsupergroupne2640saez:37/vs?r/h>doop/hdf(Out
pUt/p4ft-r-0MM
h4doop^Node):?/h?doop-1.2.1$I
從上圖中知道生成了三個文件,我們的結果在
”part-r-00000”中。
使用下面指令查看結果輸出文件內容
bin/hadoopfs-catoutput/part-r-00000
hadoop^Node):-/hadoop-1.2.1$btn/hadoopfs-cathdfs0utput3/part-r-(MMMM
H?doop1
Hello4
You!1
Re!1
world1
had<x>ptNode3:-/hd<k>op?1?2.1$________________________________________
輸出目錄日志以及輸入目錄中的文件是永久存在的,如
果不刪除的話,如果出現結果不一致,請參考這個因素。
六、注意事項
熟悉Hadoop常用的命令。
七、預習與思考題
Hadoop的執彳亍過程。
實驗五:熟悉常用的HDFS操作(2學時)
一、實驗目的與要求
L理解Hadoop平臺運行原理。
2、熟悉HDFS系統
二、實驗類型
設計型
三、實驗原理及說明
通過實際操作,使學生對Hadoop的使用有一個更
深刻的理解;熟悉Hadoop的開發環境及程序結構。
四、實驗儀器
安裝Ubuntu系統的計算機若干臺
五、實驗內容和步驟
1.編寫簡單shell腳步
1.使用gedit等任意文本編輯工具,都可以編寫shel
I腳本。使用"gedittest.shz/在當前目錄下,創
建一個測試shell腳本。shell腳本的后綴習慣性寫
成〃.sh〃。
childGtkScrollbar0xla92cl(
tualBox:-$gedittest.sh
tualBox:~$f_________________
2
shell腳本的開始需要聲明此腳本使用什么程序解
析執行,首行為〃#!/bin/sh〃,標明使用bash
解析器解析當前shell腳本。
test.shx
#!/bin/sh
echo1helloworld!
3
完成所有語言都有的入門級顯示效果,使用shell
腳本打印helloworld,第二行為"echo'Hello
World。
4
由于新建的shell腳本沒有執行權限,首先使用
hmod755test.sh”對shell腳本添加執行權限。
rootSdebian:chmod755test.sh
5
使用〃./testsh〃命令執行新建的shell腳本。
rootSdebian:-#./test.sh
6
看看自己編寫第一個shell腳本執行的結果吧。
root@debian:./test.sh
HelloWorld!|
root@debian:|
2.利用Hadoop提供的Shell命令完成相同任務:
⑴向HDFS中上傳任意文本文件,如果指定的文件
在HDFS中已經存在,由用戶指定是追加到原有
文件末尾還是覆蓋原有的文件;
先至ljHadoop主文件夾cd/usr/local/hadoop
啟動Hadoop服務sbin/start-dfs.sh
tinygtiny-virtua'L-nachine:/usr/'local/hadoop$sbin/start-dfs.sh
Startingnamenodeson[localhost]
ilocalhost:startingnamenode,loggingto/usr/local/hadoop/logs/hadoop-tiny-name
node-tiny-virtual-machine.out
localhost:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-tiny-data
node-tiny-virtual-machine.out
Startingsecondarynampnodes[fl.0fl.fi]
:startingsecondarynamenode,loggingto/usr/local/hadoop/logs/hadoop-ti
ny-secondarynamenode-tiny-virtualmachine.out
sbin/start-yarn.sh
tiny@tiny-virtual-nachine:/usr/local/hadoop$sbin/start-yarn.sh
startingyarndaemons
startingresourcemanager,loggingto/usr/local/hadoop/logs/yarn-tiny-resourcem
nager-tiny-virtual-machine.out
localhost:startingnodemanager,toggingto/usr/locat/hadoop/logs/yarn-tiny-no
emanager-tiny-virtual-machine.out
創建兩個任意文本文件用于實驗echo"hello
world">local.txt
echo"hellohadoop">text.txt
檢查文件是否存在hadoopfs-test-etext.txt
echo$?
上傳本地文件到HDFS系統(上傳之后再執行一
遍上一步,如果是第一次做HDFS操作第一次做
這一步會出錯,可以直接做一次hadoopfs
-appendToFilelocal.txttext.txt就能解
決)hadoopfs-puttext.txt
追加到文件末尾的指令had。叩fs
-appendToFilelocal.txttext.txt
查看HDFS文件的內容hadoopfs-cattext.txt
覆蓋原有文件的指令(覆蓋之后再執行一遍上一
步)hadoopfs-copyFromLocal-flocal.txt
text.txt
以上步驟也可以用如下Shell腳步實現
if$(hadoopfs-test-etext.txt);
then$(hadoopfs-appendToFilelocal.txt
text.txt);
else$(hadoopfs-copyFromLocal-flocal.txt
text.txt);
fi
⑵從HDFS中下載指定文件,如果本地文件與要下
載的文件名稱相同,則自動對下載的文件重命
名;
Shell命令實現:
if$(hadoopfs-test-e
/usr/local/hadoop/text.txt);
then$(hadoopfs-copyToLocal
text.txt./text.txt);
else$(hadoopfs-copyToLocal
text.txt./text2.txt);
fi
⑶將HDFS中指定文件的內容輸出到終端中;
hadoopfs-cattext.txt
(4)顯示HDFS中指定的文件的讀寫權限、大小、創
建時間、路徑等信息;
hadoopfs-Is-htext.txt
⑸給定HDFS中某一個目錄,輸出該目錄下的所有
文件的讀寫權限、大小、創建時間、路徑等信息,
如果該文件是目錄,則遞歸輸出該目錄下所有文
件相關信息;
hadoopfs-Is-R-h/user/tiny
<6)提供一個HDFS內的文件的路徑,對該文件進行
創建和刪除操作。如果文件所在目錄不存在,則
自動創建目錄;
Shell命令實現:
if$(hadoopfs-test-d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 通力電梯t1試題及答案
- 教師資格證考試試題
- 疫苗的面試題及答案
- 大數據在2025年信息系統中的應用試題及答案
- 公共政策實施中的隱性成本與效益分析試題及答案
- 職業規劃中的軟件設計師考試及試題及答案建議
- 網絡工程師考試趨勢分析試題及答案
- 西方政治制度2025年發展試題及答案
- 剖析西方政治制度的變遷軌跡試題及答案
- 網絡技術與服務模型試題及答案
- 汛期開車安全教育課件
- 制冷與空調設備運行操作作業
- 學院食堂排油煙管道清洗項目招投標書范本
- 實施方案與目標:降低溫室氣體排放
- 辦公生活區臨建設施施工方案(附詳細施工圖紙)01
- 酒店運營管理第八章
- 反恐程序文件一覽表
- 基于核心素養的小學數學大單元教學設計研究
- 企業終止注銷的承諾書和決議范本
- 工廠管理制度制度
- 市售紅花藥材質量評價研究 論文
評論
0/150
提交評論