日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hadoop集群的基本操作(一:HDFS操作及MapReduce程序练习)

發布時間:2023/11/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hadoop集群的基本操作(一:HDFS操作及MapReduce程序练习) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗

目的

要求

目的:

  1. 理解HDFS在Hadoop體系結構中的角色;
  2. 熟練使用HDFS操作常用的Shell命令;
  3. 了解Hadoop集群MapReduce程序的簡單使用;

(上傳WordCount的jar執行程序;使用WordCount進行MapReduce計算)

要求:

  1. 完成Hadoop的高可用完全分布模式的安裝;
  2. Hadoop的相關服務進程能夠正常的啟動;
  3. HDFS能夠正常的使用;
  4. MapReduce示例程序能夠正常運行;

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  1. 五臺獨立PC式虛擬機。
  2. 主機之間有有效的網絡連接
  3. 每臺主機內存2G以上,磁盤50G。
  4. 所有主機上安裝CentOS7-64位操作系統。
  5. 所有主機已完成網絡屬性配置
  6. 所有主機已安裝JDK
  7. 已完成Hadoop平臺的搭建;

?

集群規劃:

????? ????* Hadoop的高可用完全分布模式中有HDFS的主節點和數據節點、MapReduce的主節點和任務節點、數據同步通信節點、主節點切換控制節點總共6類服務節點,其中HDFS的主節點、MapReduce的主節點、主節點切換控制節點共用相同主機Cluster-01和Cluster-02,HDFS的數據節點、MapReduce的任務節點共用相同主機Cluster-03、Cluster-04,Cluster-05,數據同步通信節點可以使用集群中的任意主機,但因為其存放的是元數據備份,所以一般不與主節點使用相同主機。

*高可用完全分布模式中需要滿足主節點有備用的基本要求, 所以需要兩臺或以上的主機作為主節點,而完全分布模式中需要滿足數據有備份和數據處理能夠分布并行的基本要求,所以需要兩臺或以上的主機作為HDFS的數據節點和MapReduce的任務節點,同時數據同步通信節點工作原理同Zookeeper類似,需要三臺或以上的奇數臺主機,具體規劃如下:

主機名

IP地址

服務描述

Cluster-01

192.168.10.111

Hadoop主節點

Hadoop主節點控制切換服務

YARN主節點

Cluster-02

192.168.10.112

Hadoop備用主節點

Hadoop主節點控制切換服務

YARN備用主節點

Cluster-03

192.168.10.113

Hadoop數據服務

Hadoop同同步通信服務

YARN節點管理服務

Cluster-04

192.168.10.114

Hadoop數據服務

Hadoop同同步通信服務

YARN節點管理服務

Cluster-05

192.168.10.115

Hadoop數據服務

Hadoop同同步通信服務

YARN節點管理服務

?

?

?

練習內容

練習一:熟悉常用的HDFS操作;

1、向HDFS中上傳任意文本文件,如果指定的文件在HDFS中已經存在,由于用戶指定是追加到原有文件末尾還是覆蓋原有的文件;(追加文件內容以編程方式進行)

2、從HDFS中下載指定文件,如果本地文件與要下載的文件名稱相同,則自動對下載的文件重命名;

3、將HDFS中指定文件的內容輸出到終端中;

4、顯示HDFS中指定的文件的讀寫權限、大小、創建時間、路徑等信息;

5、給定HDFS中某一個目錄,輸出改目錄下的所有文件的讀寫權限、大小、創建時間、路徑等信息,如果該文件是目錄,則遞歸輸出該目錄下所有文件相關信息;

6、提供一個HDFS內的文件的路徑,對該文件進行創建和刪除操作。如果文件所在目錄不存在,則自動創建目錄;

7、提供一個HDFS的目錄的路徑,對該目錄進行創建和刪除操作,創建目錄時,如果目錄文件所在目錄不存在則自動創建相應的目錄;刪除目錄時,由用戶指定當該目錄不為空時是否還刪除該目錄;

8、向HDFS中指定的文件追加內容,由用戶指定內容追加到原有文件的開頭或者結尾;

練習二:MapReduce-WordCount程序練習;

1、上傳jar包;

1.1、現在以“admin”普通用戶登錄“Master。Hadoop”服務器。即在主節點操作;

?

a)創建本地示例文件;

首先在“/home/admin”目錄下創建文件夾“file”.

命令:

$mkdir ~/file

接著創建兩個文本文件file1.txt和file2.txt。

使fiel1.txt內容為“Hello World”,而file2.txt的內容為“Hello Hadoop”。

命令:

$cd file

$echo “Hello World”>file1.txt

$echo “Hello Hadoop”>file2.txt

?

?

b)在HDFS上創建輸入文件夾;

命令:

$hadoop fs -mkdir input

?

c)上傳本地file中文件到集群的input目錄下;

命令:

$hadoop fs -put ~/file/file*.txt input

$hadoop fs -ls input

?

1.2、上傳jar包

先使用Xftp工具把WordCount的jar執行程序包,上傳到“~/hadoop/hadoop-2.7.3/share/Hadoop/mapreduce”目錄下;

命令:

$ls

2、示例運行;

2.1、在集群上運行WordCount程序;

?? 注:以input作為輸入目錄,output目錄作為輸出目錄。

?? 命令:

??$hadoop jar ~/ hadoop/hadoop-2.7.3/share/Hadoop/mapreduce/Hadoop-0.20.2-examples.jar wordcount input output

Hadoop命令會啟動一個JVM來運行達個MapReduce程序,并自動獲得Hadoop的配置,同時把類的路徑(及其依賴關系)加入到Hadoop的庫中。

以上就是Hadoop Job的運行記錄,從達里可以看到,達個Job被賦予了一個ID號:job_1533748123309_0002,而且得知輸入文件有兩個(Totalinput paths to process:2),同時還可以了解map的輸入輸出記錄(record數及字節數),以及reduce輸入輸出記錄。比如說,在本例中,map的task數量是2個,reduce的task數量是一個。map的輸入record數是2個,輸出record數是4個等信息。

2.2、查看結果;

a)查看HDFS上output目錄內容;

??命令:

????? $hadoop fs -ls output

從上圖中知道生成了兩個文件,我們的結果在“part-r-00000”中。

b)查看結果輸出文件內容;

??命令:

????? $hadoop fs -cat output/part-r-00000

3、Hadoop的Web驗證練習;

3.1、使用瀏覽器訪問192.168.10.111:8088,ResourceManager狀態查看;

3.2、使用瀏覽器訪問192.168.10.111:50070,查看HDFS情況;

??

3.3、使用瀏覽器訪問192.168.10.112:50070,在從節點上查看NodeManager信息:

?

出現的問題與解決方案

問題:

1、Namenode沒有啟動;

2、在使用 -rmr 遞歸刪除命令時報錯;

3、追加到文件的開頭(-copyFromLocal)

a)如圖,向HDSFS中的file2.txt中導file2.txt的類容,提示文件已經存在,直接寫一個不存在的文件file3.txt,發現導入成功,再次向file3.txt導入類容,又提示文件已經存在

b).hadoop fs -copyFromLocal -f產看文件file2.txt中的類容

向文件fil2.txt 導入類容,然后產看,發現文件中之前的類容被覆蓋了

?

解決方案:

  1. 格式化namenode,命令“hdfs namenode -format”;
  2. -rmr命令不適配CentOS7環境,應改為“-rm -R”;
  3. a)此方法只適用于把一個文件中的類容導入到一個不存在的文件中;

? ? ? ? ?b) 此方法導入到文件開頭時會覆蓋源文件類容;

?

知識拓展

1、Hadoop是一種分布式系統的基礎構架。

核心是HDFS和MapReduce,hadoop2.0還包括YARN

2、HDFS:Hadoop Distributed FileSystem 分布式文件系統。

//很多時候的數據量超過了單臺機器允許存儲的范圍……故而需要分布式

前身是GFS,谷歌開源的分布式存儲系統。

是一個高容錯(允許錯誤發生)的系統,能檢測應對硬件故障。

適用于低成本的通用硬件(比如樹莓派么)

通過流式數據訪問,提供高吞吐量應用程序的訪問功能。

?

3、異常處理:

因為數量多,所以出故障是常態。

【可靠性】存在故障的時候也能較為有效地存儲數據。(名字節點故障,數據節點故障,網絡斷開)

【重新復制】定時會發送“心跳包”檢測節點是否健康,失去聯系標記為死亡狀態,需要重新復制到其他節點。

【數據正確性】校驗數據是否有壞塊(類似于葡萄的校驗?,驗證的校驗碼存儲在HDFS命名空間的隱藏文件中)

【元數據失效】FsImage和Editlog是HDFS的核心數據結構。(損壞就崩盤了)名字節點(NameNode)如果崩了就需要人工的干預了。//第二名字節點不支持直接恢復

4、目標

  • 數據訪問:適合批量處理而非交互式,重點是數據吞吐量而非反應時間
  • 大數據:支持大文件,單個文件GB-TB級別
  • 簡單一致模式:一次寫入,多次讀,一般寫入之后就不再修改了
  • 主從結構:一個名字節點和很多數據節點,通常一臺機器一個數據節點。
  • 硬件故障處理:是設計的核心目標之一

?

總結

以上是生活随笔為你收集整理的Hadoop集群的基本操作(一:HDFS操作及MapReduce程序练习)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

歡迎分享!

轉載請說明來源于"生活随笔",并保留原作者的名字。

本文地址:Hadoop集群的基本操作(一:HDFS操作及MapRedu