2023國開大數(shù)據(jù)導論實驗報告實驗2 Hadoop開發(fā)環(huán)境部署_第1頁
2023國開大數(shù)據(jù)導論實驗報告實驗2 Hadoop開發(fā)環(huán)境部署_第2頁
2023國開大數(shù)據(jù)導論實驗報告實驗2 Hadoop開發(fā)環(huán)境部署_第3頁
2023國開大數(shù)據(jù)導論實驗報告實驗2 Hadoop開發(fā)環(huán)境部署_第4頁
2023國開大數(shù)據(jù)導論實驗報告實驗2 Hadoop開發(fā)環(huán)境部署_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗2Hadoop開發(fā)環(huán)境部署Hadoop是一個能夠對大數(shù)據(jù)進行分布式處理的軟件架構,其可以通過可靠、高效、可伸縮的方式進行數(shù)據(jù)處理。Hadoop技術是推動大數(shù)據(jù)應用的重要引擎之一,可以使用該技術收集、清洗和分析大量結構化、半結構化和非結構化數(shù)據(jù)。運行環(huán)境部署是一項技術要求較高,但必須掌握的技術。Hadoop是大數(shù)據(jù)分布式處理平臺,在大數(shù)據(jù)離線處理方面,尤其是批處理中得到了廣泛的應用。1.實驗目的通過Hadoop環(huán)境部署實驗練習,學生可以掌握Hadoop系統(tǒng)安裝方法、偽分布式Hadoop的安裝方法和Eclipse開發(fā)環(huán)境的安裝具體過程與使用方法,并能夠靈活運用,進而為解決大數(shù)據(jù)分析問題奠定環(huán)境構建與部署的基礎,不僅為后續(xù)的基于Hadoop環(huán)境的各個實驗建立基礎,而且可以提高工程實踐能力。2.實驗要求在理解本實驗相關理論的基礎上制訂安裝計劃,獨立完成Hadoop開發(fā)環(huán)境部署過程,主要內容如下所述。(1)制訂安裝計劃。(2)安裝SSH協(xié)議。(3)安裝OpenJDK1.8開發(fā)環(huán)境。(4)Hadoop系統(tǒng)部署。(5)偽分布式Hadoop環(huán)境部署。(6)Eclipse開發(fā)環(huán)境的安裝。3.實驗內容(1)制訂實驗計劃。(2)完成SSH協(xié)議安裝。(3)完成OpenJDK1.8安裝。(4)完成Hadoop系統(tǒng)部署。(5)完成偽分布式Hadoop環(huán)境部署。(6)完成Eclipse開發(fā)環(huán)境的安裝。4.實驗總結通過本實驗,使學生了解Hadoop的特點和總體結構,理解MapReduce程序的執(zhí)行過程,掌握偽分布式Hadoop的安裝方法和Eclipse開發(fā)環(huán)境的安裝與使用方法。5.思考拓展(1)為什么需要安裝SSH協(xié)議?說明SSH協(xié)議功能及安裝方法。(2)為什么需要安裝OpenJDK1.8軟件?說明OpenJDK1.8功能及安裝方法。(3)結合MapReduce程序執(zhí)行過程,說明其并行處理的特性。(4)結合Hadoop的處理過程,說明其離線處理特點。(5)說明分布式Hadoop處理與偽分布式Hadoop處理的區(qū)別。(6)說明Eclipse開發(fā)環(huán)境的優(yōu)勢。答:Hadoop開發(fā)環(huán)境部署方法如下Hadoop偽分布式配置創(chuàng)建Hadoop用戶:sudouseradd-mhadoop-s/bin/bash#創(chuàng)建hadoop用戶sudopasswdhadoop#修改密碼sudoadduserhadoopsudo#增加管理員權限Shell命令\o"復制代碼"\o"查看純文本代碼"注銷并使用Hadoop用戶登錄,接著更新apt并且安裝vim:sudoapt-getupdate#更新aptsudoapt-getinstallvim#安裝vimShell命令\o"復制代碼"\o"查看純文本代碼"安裝SSH,配置無密碼登錄:sudoapt-getinstallopenssh-servercd~mkdir.ssh#可能該文件已存在,不影響cd~/.ssh/ssh-keygen-trsa#會有提示,都按回車就可以catid_rsa.pub>>authorized_keys#加入授權Shell命令\o"復制代碼"\o"查看純文本代碼"安裝Java環(huán)境:sudoapt-getinstallopenjdk-7-jreopenjdk-7-jdkvim~/.bashrc#設置JAVA_HOMEShell命令\o"復制代碼"\o"查看純文本代碼"在文件最前面添加如下單獨一行:exportJAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64使JAVA_HOME變量生效:source~/.bashrc#使變量設置生效Shell命令\o"復制代碼"\o"查看純文本代碼"安裝Hadoop2:cd~/下載sudotar-zxvf./hadoop-2.6.0.tar.gz-C/usr/local#解壓到/usr/local中cd/usr/local/sudomv./hadoop-2.6.0/./hadoop#將文件夾名改為hadoopsudochown-Rhadoop./hadoop#修改文件權限Shell命令\o"復制代碼"\o"查看純文本代碼"進行偽分布式配置:修改配置文件

core-site.xml

(vim/usr/local/hadoop/etc/hadoop/core-site.xml):<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>修改配置文件

hdfs-site.xml:<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>啟動Hadoop:cd/usr/local/hadoopbin/hdfsnamenode-format#namenode格式化sbin/start-dfs.sh#開啟守護進程jps#判斷是否啟動成功Shell命令\o"復制代碼"\o"查看純文本代碼"若成功啟動則會列出如下進程:

NameNode、DataNode和SecondaryNameNode。運行WordCount實例:bin/hdfsdfs-mkdir-p/user/hadoop#創(chuàng)建HDFS目錄bin/hdfsdfs-mkdirinputbin/hdfsdfs-putetc/hadoop/*.xmlinput#將配置文件作為輸入bin/hadoopjarshare/hadoop/mapreduce/hadoop-mapreduce-examples-*.jargrepinputoutput'dfs[a-z.]+'bin/hdfsdfs-catoutput/*#查看輸出Shell命令

1.3安裝SSH

Ubuntu默認已安裝了SSH客戶端,因此,這里還需要安裝SSH服務端1.3.1安裝SSH服務端

請在Linux的終端中執(zhí)行以下命令:

下載安裝包:拷貝代碼sudowget/fileserver/big_data_common/data/openssh-client_7.2p2-4_amd64.debsudowget/fileserver/big_data_common/data/openssh-server_7.2p2-4_amd64.deb

安裝軟件:

拷貝代碼sudodpkg-iopenssh-client_7.2p2-4_amd64.deb

拷貝代碼sudodpkg-iopenssh-server_7.2p2-4_amd64.deb

或者也可用下面方法:

∥安裝Java環(huán)境

Java環(huán)境可選擇Oracle的JDK,或是OpenJDK,需要安裝1.7以上的版本,這里直接通過命令安裝OpenJDK8:

拷貝代碼cd/home/user/Downloadssudotar-vxfjdk-8u11-linux-x64.tar.gz安裝好JDK后,需要找到相應的安裝路徑,這個路徑是用于配置JAVA_HOME環(huán)境變量的。

拷貝代碼vim~/.bashrc在文件最前面添加如下單獨一行(注意=號前后不能有空格):拷貝代碼exportJAVA_HOME=/home/user/Downloads/jdk1.8.0_11接著還需要讓該環(huán)境變量生效,執(zhí)行如下代碼:

拷貝代碼source~/.bashrc設置好后需要檢驗一下是否設置正確:檢驗變量值拷貝代碼echo$JAVA_HOME

拷貝代碼java-version#與直接執(zhí)行java-version一樣拷貝代碼$JAVA_HOME/bin/java-version

如果設置正確的話,java-version會輸出java的版本信息。

2安裝Hadoop

Hadoop包括三種安裝模式:

①單機模式:只在一臺機器上運行,存儲是采用本地文件系統(tǒng),沒有采用分布式文件系統(tǒng)HDFS;

②偽分布式模式:存儲采用分布式文件系統(tǒng)HDFS,但是,HDFS的名稱節(jié)點和數(shù)據(jù)節(jié)點都在同一臺機器上;

③分布式模式:存儲采用分布式文件系統(tǒng)HDFS,而且,HDFS的名稱節(jié)點和數(shù)據(jù)節(jié)點位于不同機器上。

本節(jié)介紹Hadoop的具體安裝方法,包括下載安裝文件、單機模式配置、偽分布式模式配置、分布式模式配置等。

2.1下載安裝文件

2.1.1下載文件打開瀏覽器,訪問如下鏈接進行下載:

拷貝代碼/fileserver/big_data_common/data/hadoop-2.7.1.tar.gz文件將會下載到/home/user/Downloads目錄下

2.1.2安裝文件

下載完安裝文件以后,需要對文件進行解壓。按照Linux系統(tǒng)使用的默認規(guī)范,用戶安裝的軟件一般都是存放在“/usr/local/”目錄下。請使用hadoop用戶登錄Linux系統(tǒng),打開一個終端,進行以下操作:解壓

解壓到/usr/local中拷貝代碼sudotar-zxf/home/user/Downloads/hadoop-2.7.1.tar.gz-C/u

將文件夾名改為hadoop

拷貝代碼cd/usr/localsudomv./hadoop-2.7.1/./hadoop修改文件權限

拷貝代碼sudochown-Rhadoop./hadoop

檢查Hadoop是否可用

Hadoop解壓后即可使用,可以輸入如下命令來檢查Hadoop是否可用,成功則會顯示Hadoop版本信息:拷貝代碼cd/usr/local/hadoop./bin/hadoopversion

2.2單機模式配置

Hadoop默認模式為非分布式模式(本地模式),只需配置好hadoop-env.sh文件中的JAVA_HOME,無需進行其他配置即可運行。

配置hadoop-env.sh文件中的JAVA_HOME步驟如下:

先輸入echo$JAVA_HOME命令查看JAVA_HOME的路徑拷貝代碼vi/usr/local/hadoop/etc/hadoop/hadoop-env.sh

進入編輯界面后找到exoortJAVA_HOME=${JAVA_HOME}

將${JAVA_HOME}替換為真正的JAVA_HOME路徑即可,然后保存退出。

以下是真實的JAVA_HOME:拷貝代碼/usr/share/jdk1.8.0_181

可以直接替換,直接把前一行注釋掉,然后粘貼后一行

:wq!保存并且退出2.2.1查看所有例子

Hadoop附帶了豐富的例子,運行如下命令可以查看所有例子:

拷貝代碼cd/usr/local/hadoopsudo./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar

上述命令執(zhí)行后,會顯示所有例子的簡介信息,包括grep、join、wordcount等。

2.2.2運行grep例子

這里選擇運行grep例子,可以先在“/usr/local/hadoop”目錄下創(chuàng)建一個文件夾input,并復制一些文件到該文件夾下,然后,運行grep程序,將input文件夾中的所有文件作為grep的輸入,讓grep程序從所有文件中篩選出符合正則表達式“dfs[a-z.]+”的單詞,并統(tǒng)計單詞出現(xiàn)的次數(shù),最后,把統(tǒng)計結果輸出到“/usr/local/hadoop/output”文件夾中。配置hosts

實驗第一步我們已經配置過hosts了。將配置文件復制到input目錄下

拷貝代碼cd/usr/local/hadoopmkdirinputcp./etc/hadoop/*.xml./input

運行

拷貝代碼./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapreduc

查看運行結果

拷貝代碼cat./output/*

執(zhí)行成功后,輸出了作業(yè)的相關信息,輸出的結果是符合正則表達式的單詞“dfsadmin”出現(xiàn)了1次。

刪除output文件

需要注意的是,Hadoop默認不會覆蓋結果文件,因此,再次運行上面實例會提示出錯。如果要再次運行,需要先使用如下命令把output文件夾刪除:拷貝代碼rm-r./output

3偽分布式模式配置

Hadoop可以在單個節(jié)點(一臺機器)上以偽分布式的方式運行,同一個節(jié)點既作為名稱節(jié)點(NameNode),也作為數(shù)據(jù)節(jié)點(DataNode),讀取的是分布式文件系統(tǒng)HDFS中的文件。3.1修改配置文件

需要配置相關文件,才能夠讓Hadoop在偽分布式模式下順利運行。Hadoop的配置文件位于“/usr/local/hadoop/etc/hadoop/”中,進行偽分布式模式配置時,需要修改2個配置文件,即core-site.xml和hdfs-site.xml。3.1.1修改core-site.xml文件

可以使用vim編輯器打開core-site.xml文件,它的初始內容如下:

修改以后,core-site.xml文件的內容如下:

拷貝代碼<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abaseforothertemporarydirectories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property></configuration>在上面的配置文件中,hadoop.tmp.dir用于保存臨時文件,若沒有配置hadoop.tmp.dir這個參數(shù),則默認使用的臨時目錄為“/tmp/hadoo-hadoop”,而這個目錄在Hadoop重啟時有可能被系統(tǒng)清理掉,導致一些意想不到的問題,因此,必須配置這個參數(shù)。fs.defaultFS這個參數(shù),用于指定HDFS的訪問地址,其中,9000是端口號。3.1.2修改hdfs-site.xml文件

修改配置文件hdfs-site.xml,修改后的內容如下:

刪除原來兩個configuration,然后直接粘貼下面的代碼??截惔a<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property></configuration>3.2執(zhí)行名稱節(jié)點格式化

修改配置文件以后,要執(zhí)行名稱節(jié)點的格式化,命令如下:

拷貝代碼cd/usr/local/hadoop./bin/hdfsnamenode-format

如果格式化成功,會看到“successfullyformatted”和“Exittingwithstatus0”的提示信息,若為“Exittingwithstatus1”,則表示出現(xiàn)錯誤。

配置hadoop-env.sh,vimhadoop-env.sh

找到文件中的“exportJAVA_HOME=${JAVA_HOME}”,

將等號右邊的內容替換為我們剛剛安裝的真實的JAVA_HOME,即/home/user/Downloads/jdk1.8.0_11配置hosts,輸入以下命令即可配置hosts

echo""$HOSTNAME|sudotee-a/etc/hosts配置完成后,需要執(zhí)行NameNode的格式化(這一步比較重要,在格式化之前一定要保證,自己前面的都配置好了,如果格式化之后,啟動hadoop還沒成功,就需要重新配置JAVA環(huán)境或者是hadoop重新安裝),命令如下:

cd/usr/local/hadoop

./bin/hdfsnamenode-format接著開啟NameNode和DataNode守護進程,命令如下:

拷貝代碼

cd/usr/local/hadoop

./sbin/start-dfs.sh拷貝代碼

cd/usr/local/hadoop

./bin/hdfsnamenode-format3.3啟動Hadoop

3.3.1啟動

執(zhí)行下面命令啟動Hadoop:

拷貝代碼cd/usr/local/hadoop./sbin/start-dfs.shstart-dfs.sh

是個完整的可執(zhí)行文件,中間沒有空格,啟動過程中有需要輸入“yes”的地方需要輸入“yes”。

啟動時可能會出現(xiàn)如下警告信息:WARNutil.NativeCodeLoader:Unabletoloadnative-hadooplibraryforyourplatform…usingbuiltin-javaclasseswhereapplicableWARN

這個警告提示信息可以忽略,并不會影響Hadoop正常使用

3.3.2判斷是否成功啟動

Hadoop啟動完成后,可以通過命令jps來判斷是否成功啟動,命令如下:

拷貝代碼jps

若成功啟動,則會列出如下進程:NameNode、DataNode和SecondaryNameNode。

通過start-dfs.sh命令啟動Hadoop以后,就可以運行MapReduce程序處理數(shù)據(jù),此時是對HDFS進行數(shù)據(jù)讀寫,而不是對本地文件進行讀寫。

如果能夠看到SecondaryNameNode、NameNode和DataNode三個進程,就說明啟動成功了。如果要停止Hadoop執(zhí)行,可以執(zhí)行如下命令:

/usr/local/hadoop

./sbin/stop-dfs.sh

3.4使用Web界面查看HDFS信息

Hadoop成功啟動后,可以在Linux系統(tǒng)中(不是Windows系統(tǒng))打開一個瀏覽器,在地址欄輸入如下地址,就可以查看名稱節(jié)點和數(shù)據(jù)節(jié)點信息,還可以在線查看HDFS中的文件。

拷貝代碼http://localhost:500703.5運行Hadoop偽分布式實例

上面的單機模式中,grep例子讀取的是本地數(shù)據(jù),偽分布式模式下,讀取的則是分布式文件系統(tǒng)HDFS上的數(shù)據(jù)。3.5.1HDFS中創(chuàng)建用戶目錄

要使用HDFS,首先需要在HDFS中創(chuàng)建用戶目錄(本教程全部統(tǒng)一采用hadoop用戶名登錄Linux系統(tǒng)),命令如下:

拷貝代碼cd/usr/local/hadoop./bin/hdfsdfs-mkdir-p/user/hadoop3.5.2復制文件

接著需要把本地文件系統(tǒng)的“/usr/local/hadoop/etc/hadoop”目錄中的所有xml文件作為輸入文件,復制到分布式文件系統(tǒng)HDFS中的“/user/hadoop/input”目錄中,命令如下:

拷貝代碼cd/usr/local/hadoop./bin/hdfsdfs-mkdirinput在HDFS中創(chuàng)建hadoop用戶對應的input目錄

拷貝代碼./bin/hdfsdfs-put./etc/hadoop/*.xmlinput

把本地文件復制到HDFS中3.5.3查看HDFS中的文件列表

復制完成后,可以通過如下命令查看HDFS中的文件列表:

拷貝代碼./bin/hdfsdfs-lsinput

執(zhí)行上述命令以后,可以看到input目錄下的文件信息。3.5.4運行grep程序

現(xiàn)在就可以運行Hadoop自帶的grep程序,命令如下:

拷貝代碼./bin/hadoopjar./share/hadoop/mapreduce/hadoop-mapr

溫馨提示

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

評論

0/150

提交評論