大數(shù)據(jù)編程實(shí)驗(yàn)一:HDFS常用操作和Spark讀取文件系統(tǒng)數(shù)據(jù)
一、前言
這是我們大數(shù)據(jù)專業(yè)開(kāi)設(shè)的第二門(mén)課程——大數(shù)據(jù)編程,使用的參考書(shū)是《Spark編程基礎(chǔ)》,這門(mén)課跟大數(shù)據(jù)技術(shù)基礎(chǔ)是分開(kāi)學(xué)習(xí)的,但這門(mén)課是用的我們自己在電腦上搭建的虛擬環(huán)境進(jìn)行實(shí)驗(yàn)的,不是在那個(gè)平臺(tái)上,而且搭建的還是偽分布式,這門(mén)課主要偏向于有關(guān)大數(shù)據(jù)編程方面的,而且使用的編程語(yǔ)言是Python。
我上課的時(shí)候也沒(méi)有怎么聽(tīng),所以我再自己做一遍實(shí)驗(yàn)。
二、實(shí)驗(yàn)?zāi)康呐c要求
- 掌握在Linux虛擬機(jī)中安裝Hadoop和Spark的方法
- 熟悉HDFS的基本使用方法
- 掌握使用Spark訪問(wèn)本地文件和HDFS文件的方法
三、實(shí)驗(yàn)內(nèi)容
-
安裝Hadoop和Spark
進(jìn)入Linux系統(tǒng),完成Hadoop偽分布式模式的安裝。完成Hadoop的安裝以后,再安裝Spark(Local模式)。
-
HDFS常用操作
使用Hadoop提供的Shell命令完成如下操作:
- 啟動(dòng)Hadoop,在HDFS中創(chuàng)建用戶目錄“/user/hadoop”
- 在Linux系統(tǒng)的本地文件系統(tǒng)的“/home/hadoop”目錄下新建一個(gè)文本文件test.txt,并在該文件中隨便輸入一些內(nèi)容,然后上傳到HDFS的“/user/hadoop”目錄下
- 把HDFS中“/user/hadoop”目錄下的test.txt文件,下載到Linux系統(tǒng)的本地文件系統(tǒng)中的“/home/hadoop/下載”目錄下
- 將HDFS中“/user/hadoop”目錄下的test.txt文件的內(nèi)容輸出到終端中進(jìn)行顯示
- 在HDFS中的“/user/hadoop”目錄下,創(chuàng)建子目錄input,把HDFS中“/user/hadoop”目錄下的test.txt文件,復(fù)制到“/user/hadoop/input”目錄下
- 刪除HDFS中“/user/hadoop”目錄下的test.txt文件,刪除HDFS中“/user/hadoop”目錄下的input子目錄及其子目錄下的所有內(nèi)容
-
Spark讀取文件系統(tǒng)的數(shù)據(jù)
- 在pyspark中讀取Linux系統(tǒng)本地文件“/home/hadoop/test.txt”,然后統(tǒng)計(jì)出文件的行數(shù)
- 在pyspark中讀取HDFS系統(tǒng)文件“/user/hadoop/test.txt”(如果該文件不存在,請(qǐng)先創(chuàng)建),然后,統(tǒng)計(jì)出文件的行數(shù)
- 編寫(xiě)?yīng)毩?yīng)用程序,讀取HDFS系統(tǒng)文件“/user/hadoop/test.txt”(如果該文件不存在,請(qǐng)先創(chuàng)建),然后,統(tǒng)計(jì)出文件的行數(shù);通過(guò) spark-submit 提交到 Spark 中運(yùn)行程序
四、實(shí)驗(yàn)步驟
這里我們已經(jīng)提前在課上安裝好Hadoop和Spark,所以就不演示了,如果不會(huì)的話可以上網(wǎng)查閱一下有很多教程或者等我后面有空寫(xiě)一遍博客也許,我得先把實(shí)驗(yàn)做完才行。
我們直接進(jìn)行后面兩個(gè)步驟。
1、HDFS常用操作
首先啟動(dòng)Hadoop集群,我們輸入如下命令進(jìn)入到hadoop的sbin目錄下面,然后執(zhí)行啟動(dòng)指令:
cd /usr/local/servers/hadoop/sbin/
start-dfs.sh
然后使用jps查看進(jìn)程驗(yàn)證是否啟動(dòng)成功:
然后我們?cè)龠M(jìn)入hadoop目錄下的bin目錄中,輸入如下命令創(chuàng)建用戶目錄“/user/hadoop”:
hdfs dfs -mkdir -p /user/hadoop
然后我們?cè)趍aster主機(jī)內(nèi)的“/home/hadoop”目錄下新建一個(gè)文本文件test.txt:
vi /home/hadoop/test.txt
然后再文件中隨便輸入一些內(nèi)容:
然后我們我們重新進(jìn)入hadoop的bin目錄中并將這個(gè)文件上傳到HDFS的“/user/hadoop”目錄下:
hdfs dfs -put /home/hadoop/test.txt /user/hadoop
查看一些我們是否成功上傳到HDFS中:
hdfs dfs -ls /user/hadoop
可以看出我們上傳成功了。
然后我們?cè)偻ㄟ^(guò)如下命令把HDFS中“/user/hadoop”目錄下的test.txt文件,下載到Linux系統(tǒng)的本地文件系統(tǒng)中的“/home/hadoop/下載”目錄下:
hdfs dfs -get /user/hadoop/test.txt /home/hadoop/
然后我們使用如下命令將HDFS中“/user/hadoop”目錄下的test.txt文件的內(nèi)容輸出到終端中進(jìn)行顯示:
hdfs dfs -cat /user/hadoop/test.txt
我們?cè)僭贖DFS中的“/user/hadoop”目錄下,創(chuàng)建子目錄input:
hdfs dfs -mkdir /user/hadoop/input
并把HDFS中“/user/hadoop”目錄下的test.txt文件,復(fù)制到“/user/hadoop/input”目錄下:
hdfs dfs -cp /user/hadoop/test.txt /user/hadoop/input/
并查看一下是否復(fù)制成功:
hdfs dfs -ls /user/hadoop/input
最后我們刪除HDFS中“/user/hadoop”目錄下的test.txt文件:
hdfs dfs -rm -r /user/hadoop/test.txt
并刪除HDFS中“/user/hadoop”目錄下的input子目錄及其子目錄下的所有內(nèi)容:
hdfs dfs -rm -r /user/hadoop/input
2、Spark讀取文件系統(tǒng)的數(shù)據(jù)
我們首先啟動(dòng)pyspark:
cd /usr/local/spark/bin/
pyspark
啟動(dòng)pyspark之后我們就可以直接在這里面進(jìn)行編程。
我們?cè)趐yspark中讀取Linux系統(tǒng)本地文件“/home/hadoop/test.txt”,然后統(tǒng)計(jì)出文件的行數(shù):
lines = sc.textFile("file:/home/hadoop/test.txt")
lines.count()
然后我們?cè)趐yspark中讀取HDFS系統(tǒng)文件“/user/hadoop/test.txt”(如果該文件不存在,請(qǐng)先創(chuàng)建),然后,統(tǒng)計(jì)出文件的行數(shù):
lines = sc.textFile("/user/hadoop/test.txt")
lines.count()
最后我們先在/home/hadoop中創(chuàng)建一個(gè)py文件并編寫(xiě)?yīng)毩?yīng)用程序,讀取HDFS系統(tǒng)文件“/user/hadoop/test.txt”(如果該文件不存在,請(qǐng)先創(chuàng)建),然后統(tǒng)計(jì)出文件的行數(shù):
sudo vi st-app.py
最后通過(guò) spark-submit 提交到 Spark 中運(yùn)行程序:
/usr/local/spark/bin/spark-submit --master local[4] st-app.py 2>&1 | grep "The HDFS"
五、最后我想說(shuō)
到這里本次實(shí)驗(yàn)就結(jié)束了,我重新做了一遍加深了一下印象,也更加熟練的使用這些Linux命令了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-846546.html
后面一個(gè)實(shí)驗(yàn)就是RDD編程,我馬上就會(huì)更新,Hold on!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-846546.html
到了這里,關(guān)于大數(shù)據(jù)編程實(shí)驗(yàn)一:HDFS常用操作和Spark讀取文件系統(tǒng)數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!