物聯網數據處理---實驗指導書_第1頁
物聯網數據處理---實驗指導書_第2頁
物聯網數據處理---實驗指導書_第3頁
物聯網數據處理---實驗指導書_第4頁
物聯網數據處理---實驗指導書_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、.物聯網數據處理實 驗 指 導 書實驗一:熟悉常用的Linux操作(2學時)一、實驗目的與要求1、熟悉安裝和配置Linux。2、熟悉常用的Linux操作。6、總結在調試過程中的錯誤。二、實驗類型驗證型三、實驗原理及說明通過實際操作,使學生對Linux的使用有一個更深刻的理解;熟悉Linux的開發環境及程序結構。四、實驗儀器安裝操作系統:Linux 五、實驗內容和步驟熟悉常用的Linux操作請按要求上機實踐如下linux基本命令。cd命令:切換目錄(1)切換到目錄 /usr/local(2)去到目前的上層目錄(3)回到自己的主文件夾ls命令:查看文件與目錄(4)查看目錄/usr下所有的文件mkd

2、ir命令:新建新目錄(5)進入/tmp目錄,創建一個名為a的目錄,并查看有多少目錄存在(6)創建目錄a1/a2/a3/a4rmdir命令:刪除空的目錄(7)將上例創建的目錄a(/tmp下面)刪除(8)刪除目錄a1/a2/a3/a4,查看有多少目錄存在cp命令:復制文件或目錄(9)將主文件夾下的.bashrc復制到/usr下,命名為bashrc1(10)在/tmp下新建目錄test,再復制這個目錄內容到/usrmv命令:移動文件與目錄,或更名(11)將上例文件bashrc1移動到目錄/usr/test(12)將上例test目錄重命名為test2rm命令:移除文件或目錄(13)將上例復制的bash

3、rc1文件刪除(14)rm -rf 將上例的test2目錄刪除cat命令:查看文件內容(15)查看主文件夾下的.bashrc文件內容tac命令:反向列示(16)反向查看主文件夾下.bashrc文件內容more命令:一頁一頁翻動查看(17)翻頁查看主文件夾下.bashrc文件內容head命令:取出前面幾行(18)查看主文件夾下.bashrc文件內容前20行(19)查看主文件夾下.bashrc文件內容,后面50行不顯示,只顯示前面幾行tail命令:取出后面幾行(20)查看主文件夾下.bashrc文件內容最后20行(21) 查看主文件夾下.bashrc文件內容,只列出50行以后的數據touch命令:

4、修改文件時間或創建新文件(22)在/tmp下創建一個空文件hello并查看時間(23)修改hello文件,將日期調整為5天前chown命令:修改文件所有者權限(24)將hello文件所有者改為root帳號,并查看屬性find命令:文件查找(25)找出主文件夾下文件名為.bashrc的文件tar命令:壓縮命令tar -zcvf /tmp/etc.tar.gz /etc(26)在/目錄下新建文件夾test,然后在/目錄下打包成test.tar.gz(27)解壓縮到/tmp目錄tar -zxvf /tmp/etc.tar.gzgrep命令:查找字符串(28)從/.bashrc文件中查找字符串'

5、;examples'(29)配置Java環境變量,在/.bashrc中設置(30)查看JAVA_HOME變量的值六、注意事項命令的名稱。七、預習與思考題1、Linux 操作系統的安裝和使用2、常用的命令實驗二:安裝Hadoop開發環境(2學時)一、實驗目的與要求1.掌握Linux虛擬機安裝方法或者雙操作系統安裝方法。Hadoop在Linux操作系統上運行可以發揮最佳性能,鑒于目前很多讀者可能正在使用Windows操作系統,因此,為了完成本書的后續實驗,這里有必要通過本實驗讓讀者掌握在Windows操作系統上搭建Linux虛擬機的方法,以及安裝雙操作系統的方法(同時安裝Windows和L

6、inux系統,電腦開機時,可以選擇登錄哪個系統)。2.掌握Hadoop的偽分布式安裝方法。很多讀者并不具備集群環境,需要在一臺機器上模擬一個小的集群,因此,需要通過本實驗讓讀者掌握在單機上進行Hadoop的偽分布式安裝方法。二、實驗類型綜合型三、實驗原理及說明通過實際操作,使學生對Hadoop的使用有一個更深刻的理解;熟悉Hadoop的開發環境及程序結構。四、實驗儀器操作系統:Windows系統或者Ubuntu(推薦)。虛擬機軟件:推薦使用的開源虛擬機軟件為VirtualBox 。VirtualBox是一款功能強大的免費虛擬機軟件,它不僅具有豐富的特色,而且性能也很優異,簡單易用,可虛擬的系統

7、包括Windows、Mac OS X、Linux、OpenBSD、Solaris、IBM OS2甚至Android 4.0系統等操作系統。讀者可以在Windows系統上安裝VirtualBox軟件,然后在VirtualBox上安裝并且運行Linux操作系統。本次實驗默認的Linux發行版為Ubuntu14.04。五、實驗內容和步驟共享文件夾設置virtualbox中ubuntu和windows共享文件夾設置先關閉ubuntu,在virtualbox“設置”中找到“共享文件夾”,點擊進入,點擊右邊添加目錄按鈕,添加windows中要共享的目錄,取一個名。比如我在D盤建一個名為share的文件夾,

8、如下圖:重啟ubuntu,在ubuntu系統最上端“設備”中找到“共享文件夾”,點擊進入,點擊右邊添加目錄按鈕,添加第二步操作的共享目錄,如進入虛擬Ubuntu,在命令行終端下輸入:sudo mkdir /mnt/sharedsudo mount -t vboxsf share /mnt/shared其中"share"是之前創建的共享文件夾的名字。OK,現在Ubuntu和主機可以互傳文件了。要想自動掛載的話,可以在/etc/fstab中添加一項share /mnt/shared vboxsf rw,gid=100,uid=1000,auto 0 0Java安裝第一步 獲取安

9、裝包。到oracle官方去下載jdk安裝包,選擇版本時注意選擇自己的系統的版本。第二步:解壓安裝sudo tar zxvf ./jdk-7-linux-i586.tar.gz -C /usr/lib/jvm cd /usr/lib/jvm sudo mv jdk1.7.0/ java-7-sun 第三步:修改環境變量vi /.bashrc 添加:export JAVA_HOME=/usr/lib/jvm/java-7-sun export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export

10、 PATH=$JAVA_HOME/bin:$PATH 保存退出,輸入以下命令使之立即生效。source /.bashrc 第四步:配置默認JDK版本由于ubuntu中可能會有默認的JDK,如openjdk,所以,為了將我們安裝的JDK設置為默認JDK版本,還要進行如下工作。執行代碼:sudo update-alternatives -install /usr/bin/java java /usr/lib/jvm/java-7-sun/bin/java 300 sudo update-alternatives -install /usr/bin/javac javac /usr/lib/jvm/

11、java-7-sun/bin/javac 300 sudo update-alternatives -install /usr/bin/jar jar /usr/lib/jvm/java-7-sun/bin/jar 300 sudo update-alternatives -install /usr/bin/javah javah /usr/lib/jvm/java-7-sun/bin/javah 300 sudo update-alternatives -install /usr/bin/javap javap /usr/lib/jvm/java-7-sun/bin/javap 300 執行

12、代碼:sudo update-alternatives -config java 系統會列出各種JDK版本,如下所示:baidubaidu:$ sudo update-alternatives -config java 有 3 個候選項可用于替換 java (提供 /usr/bin/java)。 選擇 路徑 優先級 狀態 - * 0 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 自動模式 1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動模式 2 /usr/lib/jvm/java-6-sun/jr

13、e/bin/java 63 手動模式 3 /usr/lib/jvm/java-7-sun/bin/java 300 手動模式 要維持當前值*請按回車鍵,或者鍵入選擇的編號:3 update-alternatives: 使用 /usr/lib/jvm/java-7-sun/bin/java 來提供 /usr/bin/java (java),于 手動模式 中。第五步:測試baidubaidu:$ java -version java version "1.7.0" Java(TM) SE Runtime Environment (build 1.7.0-b147) Java H

14、otSpot(TM) Server VM (build 21.0-b17, mixed mode) Hadoop安裝1、創建hadoop用戶安裝 Ubuntu 的時候不是用的 “hadoop” 用戶,那么需要增加一個名為 hadoop 的用戶。首先按 ctrl+alt+t 打開終端窗口,輸入如下命令創建新用戶 :sudo useradd -m hadoop -s /bin/bash接著使用如下命令設置密碼,可簡單設置為 hadoop,按提示輸入兩次密碼: sudo passwd hadoop可為 hadoop 用戶增加管理員權限,方便部署,避免一些對新手來說比較棘手的權限問題:sudo add

15、user hadoop sudo最后注銷當前用戶(點擊屏幕右上角的齒輪,選擇注銷),返回登陸界面。在登陸界面中選擇剛創建的 hadoop 用戶進行登陸。2. 安裝SSH、配置SSH無密碼登陸集群、單節點模式都需要用到 SSH 登陸(類似于遠程登陸,你可以登錄某臺 Linux 主機,并且在上面運行命令),Ubuntu 默認已安裝了 SSH client,此外還需要安裝 SSH server:sudo dpkg -i openssh-server_6.0p1-3ubuntu1_i386.debsudo dpkg -i ssh_6.0p1-3ubuntu1_all.deb安裝后,可以使用如下命令登陸

16、本機:ssh localhost利用 ssh-keygen 生成密鑰,并將密鑰加入到授權中:$exit # 退出剛才的 ssh localhost$cd /.ssh/ # 若沒有該目錄,請先執行一次ssh localhost$ssh-keygen -t rsa # 會有提示,都按回車就可以$cat ./id_rsa.pub >> ./authorized_keys # 加入授權$sudo tar -zxf /下載/hadoop-2.6.0.tar.gz -C /usr/local # 解壓到/usr/local中$cd /usr/local/$sudo mv ./hadoop-2.

17、6.0/ ./hadoop # 將文件夾名改為hadoop$sudo chown -R hadoop ./hadoop # 修改文件權限$cd /usr/local/hadoop$./bin/hadoop version六、注意事項Apache Hadoop官網下載Hadoop2.7.1版本安裝文件。七、預習與思考題1、在Linux環境下完成偽分布式環境的搭建,并運行Hadoop自帶的WordCount實例檢測是否運行正常。實驗三:熟悉Hadoop平臺(2學時)一、實驗目的與要求1、理解 Hadoop平臺運行原理。2、熟悉Hadoop的操作二、實驗類型設計型三、實驗原理及說明通過實際操作,使學

18、生對Hadoop的使用有一個更深刻的理解;熟悉Hadoop的開發環境及程序結構。四、實驗儀器安裝Ubuntu系統的計算機若干臺五、實驗內容和步驟1. Hadoop單機配置(非分布式)Hadoop 默認模式為非分布式模式(本地模式),無需進行其他配置即可運行。非分布式即單 Java 進程,方便進行調試。Hadoop 附帶了豐富的例子(運行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce- examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。在此我們選擇運

19、行 grep 例子,我們將 input 文件夾中的所有文件作為輸入,篩選當中符合正則表達式 dfsa-z.+ 的單詞并統計出現的次數,最后輸出結果到 output 文件夾中。執行成功后如下所示,輸出了作業的相關信息,輸出的結果是符合正則的單詞 dfsadmin 出現了1次注意,Hadoop 默認不會覆蓋結果文件,因此再次運行上面實例會提示出錯,需要先將 ./output 刪除。2. Hadoop偽分布式配置Hadoop 可以在單節點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的文件

20、。Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現。修改配置文件 core-site.xml (通過 gedit 編輯會比較方便: gedit ./etc/hadoop/core-site.xml),將當中的修改為下面配置:同樣的,修改配置文件 hdfs-site.xml:Hadoop配置文件說明Hadoop 的運行方式是由配置文件決定的(運行

21、 Hadoop 時會讀取配置文件),因此如果需要從偽分布式模式切換回非分布式模式,需要刪除 core-site.xml 中的配置項。此外,偽分布式雖然只需要配置 fs.defaultFS 和 dfs.replication 就可以運行(官方教程如此),不過若沒有配置 hadoop.tmp.dir 參數,則默認使用的臨時目錄為 /tmp/hadoo-hadoop,而這個目錄在重啟時有可能被系統清理掉,導致必須重新執行 format 才行。所以要指定 .dir 和 dfs.datanode.data.dir,否則在接下來的步驟中可能會出錯。配置完成后,執行 Nam

22、eNode 的格式化:成功的話,會看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若為 “Exitting with status 1” 則是出錯。如果在這一步時提示 Error: JAVA_HOME is not set and could not be found. 的錯誤,則說明之前設置 JAVA_HOME 環境變量那邊就沒設置好,請先設置好 JAVA_HOME 變量,否則后面的過程都是進行不下去的。接著開啟 NameNode 和 DataNode 守護進程。若出現如下SSH提示,輸入yes即可。啟動時可能會出現如下

23、WARN 提示:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform using builtin-java classes where applicable WARN 提示可以忽略,并不會影響正常使用。啟動 Hadoop 時提示 Could not resolve hostname如果啟動 Hadoop 時遇到輸出非常多“ssh: Could not resolve hostname xxx”的異常情況,如下圖所示:這個并不是 ssh 的問題,可通過設置 Hadoop 環境變量來解決

24、。首先按鍵盤的 ctrl + c 中斷啟動,然后在 /.bashrc 中,增加如下兩行內容(設置過程與 JAVA_HOME 變量一樣,其中 HADOOP_HOME 為 Hadoop 的安裝目錄):保存后,務必執行 source /.bashrc 使變量設置生效,然后再次執行 ./sbin/start-dfs.sh 啟動 Hadoop。啟動完成后,可以通過命令 jps 來判斷是否成功啟動,若成功啟動則會列出如下進程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 沒有啟動,請運行 sbin/stop-dfs.sh

25、 關閉進程,然后再次嘗試啟動嘗試)。如果沒有 NameNode 或 DataNode ,那就是配置不成功,請仔細檢查之前步驟,或通過查看啟動日志排查原因。成功啟動后,可以訪問 Web 界面 http:/localhost:50070 查看 NameNode 和 Datanode 信息,還可以在線查看 HDFS 中的文件。六、注意事項熟悉Hadoop的配置文件。七、預習與思考題單機版與偽分布式的配置。實驗四:Hadoop初級實踐(2學時)一、實驗目的與要求1、理解 Hadoop平臺運行原理。2、熟悉wordcount程序。二、實驗類型設計型三、實驗原理及說明通過實際操作,使學生對Hadoop的使

26、用有一個更深刻的理解;熟悉Hadoop的開發環境及程序結構。四、實驗儀器安裝Ubuntu系統的計算機若干臺五、實驗內容和步驟單詞計數是最簡單也是最能體現MapReduce思想的程序之一,可以稱為MapReduce版"Hello World",該程序的完整代碼可以在Hadoop安裝包的"src/examples"目錄下找到。單詞計數主要完成功能是:統計一系列文本文件中每個單詞出現的次數,如下圖所示。以"hadoop"用戶登錄Hadoop服務器。1. 創建本地的示例數據文件:并在這個目錄下創建2個文件分別命名為【myTest1.txt】和

27、【myTest2.txt】或者你想要的任何文件名。分別在這2個文件中輸入下列示例語句:2. 在HDFS上創建輸入文件夾調出終端,輸入下面指令:$cd /usr/local/hadoop$./bin/hadoop fs -mkdir hdfsInput執行這個命令時可能會提示類似安全的問題,如果提示了,請使用$./bin/hadoop dfsadmin -safemode leave來退出安全模式。當分布式文件系統處于安全模式的情況下,文件系統中的內容不允許修改也不允許刪除,直到安全模式結束。安全模式主要是為了系統啟動的時候檢查各個DataNode上數據塊的有效性,同時根據策略必要的復制或者刪除

28、部分數據塊。運行期通過命令也可以進入 安全模式。3. 上傳本地file中文件到集群的hdfsInput目錄下在終端依次輸入下面指令:cd hadoop-1.2.1$./bin/hadoop fs -put file/myTest*.txt hdfsInput4. 運行例子:在終端輸入下面指令:$./bin/hadoop jar hadoop-examples-1.2.1.jar wordcount hdfsInput hdfsOutput注意,這里的示例程序是1.2.1版本的,可能每個機器有所不一致,那么請用*通配符代替版本號$./bin/hadoop jar hadoop-examples-

29、*.jar wordcount hdfsInput hdfsOutput應該出現下面結果:Hadoop命令會啟動一個JVM來運行這個MapReduce程序,并自動獲得Hadoop的配置,同時把類的路徑(及其依賴關系)加入到Hadoop的庫中。以上就是Hadoop Job的運行記錄,從這里可以看到,這個Job被賦予了一個ID號:job_201202292213_0002,而且得知輸入文件有兩個(Total input paths to process : 2),同時還可以了解map的輸入輸出記錄(record數及字節數),以及reduce輸入輸出記錄。查看HDFS上hdfsOutput目錄內容:

30、在終端輸入下面指令:bin/hadoop fs -ls hdfsOutput從上圖中知道生成了三個文件,我們的結果在"part-r-00000"中。使用下面指令查看結果輸出文件內容bin/hadoop fs -cat output/part-r-00000輸出目錄日志以及輸入目錄中的文件是永久存在的,如果不刪除的話,如果出現結果不一致,請參考這個因素。六、注意事項熟悉Hadoop常用的命令。七、預習與思考題Hadoop的執行過程。實驗五:熟悉常用的HDFS操作(2學時)一、實驗目的與要求1、理解 Hadoop平臺運行原理。2、熟悉HDFS系統二、實驗類型設計型三、實驗原理及

31、說明通過實際操作,使學生對Hadoop的使用有一個更深刻的理解;熟悉Hadoop的開發環境及程序結構。四、實驗儀器安裝Ubuntu系統的計算機若干臺五、實驗內容和步驟1. 編寫簡單shell腳步1. 使用gedit等任意文本編輯工具,都可以編寫shell腳本。使用“gedit test.sh”在當前目錄下,創建一個測試shell腳本。shell腳本的后綴習慣性寫成“.sh”。1. 2shell腳本的開始需要聲明此腳本使用什么程序解析執行,首行為“#!/bin/sh ”,標明使用bash解析器解析當前shell腳本。 2. 3完成所有語言都有的入門級顯示效果,使用shell腳本打印he

32、llo world,第二行為“echo Hello World!”。步驟閱讀3. 4由于新建的shell腳本沒有執行權限,首先使用“chmod 755 test.sh”對shell腳本添加執行權限。步驟閱讀4. 5使用“./test.sh”命令執行新建的shell腳本。步驟閱讀5. 6看看自己編寫第一個shell腳本執行的結果吧。2. 利用Hadoop提供的Shell命令完成相同任務:(1) 向HDFS中上傳任意文本文件,如果指定的文件在HDFS中已經存在,由用戶指定是追加到原有文件末尾還是覆蓋原有的文件;先到Hadoop主文件夾cd /usr/local/hadoop啟動Hadoop服務sb

33、in/start-dfs.shsbin/start-yarn.sh創建兩個任意文本文件用于實驗echo "hello world" > local.txtecho "hello hadoop" >text.txt檢查文件是否存在hadoop fs -test -e text.txtecho $?上傳本地文件到HDFS系統(上傳之后再執行一遍上一步,如果是第一次做HDFS操作第一次做這一步會出錯,可以直接做一次hadoop fs -appendToFile local.txt text.txt就能解決)hadoop fs -put text.t

34、xt追加到文件末尾的指令hadoop fs -appendToFile local.txt text.txt查看HDFS文件的內容hadoop fs -cat text.txt覆蓋原有文件的指令(覆蓋之后再執行一遍上一步)hadoop fs -copyFromLocal -f local.txt text.txt以上步驟也可以用如下Shell腳步實現if $(hadoop fs -test -e text.txt);then $(hadoop fs -appendToFile local.txt text.txt);else $(hadoop fs -copyFromLocal -f loca

35、l.txt text.txt);fi(2) 從HDFS中下載指定文件,如果本地文件與要下載的文件名稱相同,則自動對下載的文件重命名; Shell命令實現:if $(hadoop fs -test -e /usr/local/hadoop/text.txt);then $(hadoop fs -copyToLocal text.txt ./text.txt); else $(hadoop fs -copyToLocal text.txt ./text2.txt); fi(3) 將HDFS中指定文件的內容輸出到終端中;hadoop fs -cat text.txt(4) 顯示HDFS中指定的文件的

36、讀寫權限、大小、創建時間、路徑等信息;hadoop fs -ls -h text.txt(5) 給定HDFS中某一個目錄,輸出該目錄下的所有文件的讀寫權限、大小、創建時間、路徑等信息,如果該文件是目錄,則遞歸輸出該目錄下所有文件相關信息;hadoop fs -ls -R -h /user/tiny(6) 提供一個HDFS內的文件的路徑,對該文件進行創建和刪除操作。如果文件所在目錄不存在,則自動創建目錄;Shell命令實現:if $(hadoop fs -test -d dir1/dir2);then $(hadoop fs -touchz dir1/dir2/filename); else $

37、(hadoop fs -mkdir -p dir1/dir2 && hdfs dfs -touchz dir1/dir2/filename); fi刪除操作hadoop fs -rm dir1/dir2/filename(7) 提供一個HDFS的目錄的路徑,對該目錄進行創建和刪除操作。創建目錄時,如果目錄文件所在目錄不存在則自動創建相應目錄;刪除目錄時,由用戶指定當該目錄不為空時是否還刪除該目錄;a) 創建目錄hadoop fs -mkdir -p dir1/dir2 b) 刪除目錄(如果目錄非空則會提示not empty,不執行刪除)hadoop fs -rmdir dir1

38、/dir2 c) 強制刪除目錄hadoop fs -rm -r dir1/dir2 (8) 向HDFS中指定的文件追加內容,由用戶指定內容追加到原有文件的開頭或結尾;追加到文件末尾hadoop fs -appendToFile local.txt text.txt追加到文件開頭hadoop fs -get text.txtcat text.txt >> local.txthadoop fs -copyFromLocal -f text.txt text.txt(9) 刪除HDFS中指定的文件;hadoop fs -rm text.txt(10) 刪除HDFS中指定的目錄,由用戶指定

39、目錄中如果存在文件時是否刪除目錄;a) 刪除目錄(如果目錄非空則會提示not empty,不執行刪除)hadoop fs -rmdir dir1/dir2 b) 強制刪除目錄hadoop fs -rm -R dir1/dir2(11) 在HDFS中,將文件從源路徑移動到目的路徑。hadoop fs -mv text.txt input3. 編程實現一個類“MyFSDataInputStream”,該類繼承“org.apache.hadoop.fs.FSDataInputStream”,要求如下:實現按行讀取HDFS中指定文件的方法“readLine()”,如果讀到文件末尾,則返回空,否則返回文

40、件一行的文本。package com.zucc.tiny.hdfs;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.text.SimpleDateFormat;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.*;public class MyFSDataInputStream extends

41、FSDataInputStream public MyFSDataInputStream(InputStream in) super(in); / TODO Auto-generated constructor stub public static String readline(Configuration conf, String remoteFilePath) throws IOException FileSystem fs = FileSystem.get(conf); Path remotePath = new Path(remoteFilePath); FSDataInputStre

42、am in = fs.open(remotePath); BufferedReader d = new BufferedReader(new InputStreamReader(in); String line = null; if(line=d.readLine()!=null) d.close(); in.close(); fs.close(); return line; else d.close(); in.close(); fs.close(); return null; public static void main(String args) Configuration conf =

43、 new Configuration(); conf.set("","hdfs:/localhost:9000"); String remoteFilePath = "/user/tiny/text.txt" / HDFS路徑 try System.out.println("讀取文件: " + remoteFilePath); System.out.println(MyFSDataInputStream.readline(conf, remoteFilePath); System.ou

44、t.println("n讀取完成"); catch (IOException e) / TODO Auto-generated catch block e.printStackTrace(); 4. 查看Java幫助手冊或其它資料,用“.URL”和“org.apache.hadoop.fs.FsURLStreamHandlerFactory”編程完成輸出HDFS中指定文件的文本到終端中。package com.zucc.tiny.hdfs;import java.io.IOException;import java.io.InputStream;import .URL;im

45、port org.apache.hadoop.fs.*;import org.apache.hadoop.io.IOUtils;public class FsUrl static URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory(); public static void cat(String remoteFilePath) throws IOException InputStream in = null; try in = new URL("hdfs","localhost",90

46、00,remoteFilePath).openStream(); IOUtils.copyBytes(in, System.out, 4096, false); finally IOUtils.closeStream(in); /* * 主函數 */ public static void main(String args) String remoteFilePath = "/user/tiny/text.txt" / HDFS路徑 try System.out.println("讀取文件: " + remoteFilePath); FsUrl.cat(r

47、emoteFilePath); System.out.println("n讀取完成"); catch (Exception e) e.printStackTrace(); 六、注意事項熟悉HDFS常用的命令。七、預習與思考題HDFS的執行過程。實驗六:熟悉常用的HBase操作(2學時)一、實驗目的與要求1.理解HBase在Hadoop體系結構中的角色;2.熟練使用HBase操作常用的Shell命令;3.熟悉HBase操作常用的Java API。二、實驗類型設計型三、實驗原理及說明通過實際操作,使學生對HBase的使用有一個更深刻的理解;熟悉HBase的開發環境。四、實驗儀器

48、操作系統:LinuxHadoop版本:2.6.0或以上版本HBase版本:1.1.2或以上版本JDK版本:1.6或以上版本Java IDE:Eclipse五、實驗內容和步驟把 HBase 壓縮包放到 Home 文件夾中右鍵打開終端,解壓 HBase 到/usr/localsudo tar zxvf hbase-1.2.3-bin.tar.gz -C /usr/local重命名方便后續操作sudo mv /usr/local/hbase-1.2.3/ /usr/local/hbase/獲取文件夾權限(tiny改為你的主機名)sudo chown -R tiny /usr/local/hbase/

49、設置環境變量sudo gedit /etc/profile在最后一行添加內容:#set hbase pathexport PATH=$PATH:/usr/local/hbase/bin使環境變量生效source /etc/profile配置Hbase的配置文件進入/usr/local/hbase/conf/cd /usr/local/hbase/conf/配置hbase-env.shgedit hbase-env.sh在最后一行添加內容:配置hbase-site.xmlgedit hbase-site.xml在<configuration>標簽中添加內容:<property&

50、gt; <name>hbase.rootdir</name> <value>hdfs:/localhost:9000/hbase</value></property><property> <name>hbase.cluster.distributed</name> <value>true</value></property>啟動 Hadoop進入 Hadoop 主文件夾cd /usr/local/hadoop/開啟 Hadoop 相關進程sbin/start-df

51、s.shsbin/start-yarn.sh啟動 HBase進入HBase主文件夾cd /usr/local/hbase/開啟HBase相關進程bin/start-hbase.sh查看 jps進入 Hbase Shell創建一個表以便實驗使用create 'student','score'1. 用Hadoop提供的HBase Shell命令完成相同任務:(1) 列出HBase所有的表的相關信息,例如表名;a) 以列表的形式顯示所有數據表list b) 查看表的結構describe 'student' c) 查詢表是否存在exists 's

52、tudent' d) 查詢表是否可用is_enabled 'student'(2) 在終端打印出指定的表的所有記錄數據;scan 'student'(3) 向已經創建好的表添加和刪除指定的列族或列;put 'student','s001','score:math','100'(4) 向student表,刪除指定列delete 'student','s001','score:math'(5) 統計表的行數。count 'student'2. 現有以下關系型數據庫中的表和數據,要求將其轉換為適合于HBase存儲的表并插入數據:學生表(Student)學號(S_No)姓名(S_Name)性別(S_Sex)年齡(S_Age)2015001Zhangsanmale232015003Maryfemale222015003Lisimale24課程表(Course)課程號(C_No)課程名(C_Name)學分(C_Credit)123001Math2.0123002Computer Science5.0123003English3.0 選課表(SC)學號(SC_Sno)課程號(SC_Cno)成績(SC_S

溫馨提示

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

評論

0/150

提交評論