Hadoop | Hadoop偽分布式模式部署

偽分布模式

設備: 一臺 linux

特點: 在單機上模擬分布式環境,擁有Hadoop所有功能

配置文件:hadoop-env.sh,? mapred-env.sh、yarn-env.sh、core-site.xml,? hdfs-site.xml, ? mapred-site.xml, yarn-site.xml

一、 設置Hadoop用戶

二、 Hadoop安裝&配置

三 、啟動HDFS & YARN

四、 測試MapReduce Job

五 、總結


一、 設置Hadoop用戶

step1: 創建新的普通用戶hadoop

創建hadoop用戶出于保障 hdfs 的數據安全性,給不同的用戶賦予不同權限

輸入: su? -????????????? ? ? ? ? ?? 切換root用戶

輸入: useradd hadoop?????? 添加hadoop用戶

輸入: passwd hadoop?????? 輸入hadoop用戶的登陸密碼

step2:賦予hadoop用戶sudo權限

?一般root用戶無權修改sudoers, 先手動為root用戶添加寫權限

輸入:chmod? u+w? /etc/sudoers????????? 為root用戶添加寫權限

輸入: vim /etc/sudoers????????? 打開sudoers文件

輸入: i 鍵 進入編輯模式
輸入:hadoop?? ALL=(root)?? NOPASSWD:ALL???????? 添加hadoop權限

輸入: Esc 鍵,輸入 :wq? 保存并退出

在學習環境可將hadoop用戶的權限設置的大一些,但實際生產環境一定要注意普通用戶的權限限制

step3:切換到hadoop用戶

輸入: su? -?? hadoop

二、 Hadoop安裝&配置

step4:解壓hadoop

hadoop下載教程:http://www.lxweimin.com/p/a28e2305a48c

輸入: sudo? mkdir? /opt/modules??????? 創建目錄,存放hadoop文件

輸入: sudo? chown? -R??? hadoop:hadoop???? /opt/modules???????? 將存放hadoop的目錄指定為hadoop用戶,避免hadoop運行過程存在的權限問題

chown??? 命令用來修改目錄的權限

-R???? 遞歸,就是從當前目錄到子目錄

hadoop:hadoop?? 將目錄和文件的owner和group都設成 hadoop

本人已將hadoop壓縮包放在 /opt /software

輸入: cp ? hadoop-2.2.0.tar.gz?? /opt / modules?????? 將hadoop壓縮包復制到 /opt / modules目錄下

輸入: tar?? -zxvf??? hadoop-2.2.0.tar.gz??????? 解壓hadop壓縮包,直接用

step5:配置hadoop環境變量

輸入: sudo? vim?? /etc/profile??????? 打開profile目錄配置環境變量

輸入: i 鍵 進入編輯模式

輸入: export?? HADOOP_HOME = /opt /modules / hadoop-2.2.0

????????? ? export?? PATH = $PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

輸入: Esc 鍵,輸入 :wq? 保存并退出

step6:配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件JAVA_HOME參數

輸入: sudo?? vim?? hadoop-env.sh????? 打開 hadoop-env.sh文件

輸入: i 鍵 進入編輯模式

輸入: export?? JAVA_HOME = /usr / local / java / jdk.1.8.0_181?

添加JAVA_HOME路徑?

輸入: Esc 鍵,輸入 :wq? 保存并退出

(可輸入? echo? $JAVA_HOME? 查看? JAVA_HOME? 環境變量

輸入: source? /etc/profile??????? 重新執行profile 文件使其生效

配置mapred-env.sh、yarn-env.sh文件JAVA_HOME參數,同理

step7:配置 core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 文件

這幾個配置文件放置在 hadoop安裝目錄下 ? /hadoop-2.2.0/etc/hadoop/

若發現沒有存在mapred-site.xml, 但存在mapred-site.xml.template

直接復制,重命名一個mapred-site.xml就可以

輸入 : cp?? mapred-site.xml.template?? ?mapred-site.xml

接下來,逐個來配置這幾個文件

(1)? 配置 core-site.xml

配置參數 :?? fs.defaultFS?? 配置HDFS的NameNode的地址

??????????????????? ? hadoop.temp.dir???? 配置HDFS數據保存的目錄。默認是Linux的tmp目錄,由于系統啟動,會清空默認的tmp目錄,導致NameNode數據丟失,所以需要創建新的tmp目錄

輸入:?? sudo?? mkdir?? -p?? /opt /modules/hadoop-2.2.0/tmp? 本人在hadoop安裝目錄下創建tmp目錄,來存放HDFS數據,你可自行創建別處目錄進行存放

輸入: sudo?? vim?? core-site.xml????? 打開core-site.xml文件

配置core-site.xml參數信息

fs.defaultFS ,hdfs的 ip,默認端口號 8020

(2)? 配置 hdfs-site.xml

配置參數 :?? dfs.replication?????HDFS存儲時的備份數量,默認是3, 偽分布設為1 ????????

輸入: sudo?? vim?? hdfs-site.xml???打開 hdfs-site.xml文件

配置 hdfs-site.xml 參數信息

(3)? 配置 mapred-site.xml

配置參數 :?? mapredure.framework.name?? 配置mapredure程序運行的容器是Yarn

輸入: sudo?? vim?? mapred-site.xml???打開mapred-site.xml文件

配置mapred-site.xml參數信息

(4)? 配置 yarn-site.xml

配置參數 :?? yarn.resourcemanager.hostname????? 配置ResourceManager的主機地址

????????????????????? yarn.nodemanager.aux-services?????? 配置NodeManager運行mapredure任務的方式

輸入: sudo?? vim?? yarn-site.xml???打開yarn-site.xml文件

配置mapred-site.xml參數信息

三 、啟動HDFS & YARN

step8: 格式化 HDFS

格式化是對HDFS中的DataNode進行分塊,并將分塊后的原始元數據存于NameNode中。

輸入: bin/hdfs? namenode?? -format????????? 格式化NameNode

格式化成功后,可在 temp 目錄中生成 dfs 目錄

輸入:? ll?? temp/dfs/name/current?????? 查看NamaNode格式化后的目錄

fsimage??? NameNode在元數據內存滿了后的持久化文件

fsimage*.md5?????? 校驗文件,校驗fsimage的完整性

seen_txid?????? hadoop的版本

vession????? 保存namesopaceID(NameNode的唯一ID)和 clusterID(集群ID)?

輸入: cat??? tmp/dfs/name/current/VERSION????? 可查看vession中內容

step8: 啟動 HDFS & YARN

方法 1 ? ? 同時全部啟動

輸入:? start-all.sh?????? 同時全部啟動

啟動都命令存放于? hadoop-2.2.0 / sbin / 目錄下

輸入:? jps??????? 查看是否啟動成功

方法 2?????? 逐個啟動

輸入: hadoop-daemon.sh?? start?? namenode? ? ? ? ? ? ? ? ??? 啟動NameNode?

輸入: hadoop-daemon.sh?? start?? datanode? ? ? ?????????? ???? 啟動DataNode?

輸入: hadoop-daemon.sh?? start? secondarynamenode??? 啟動SecondaryNameNode??

輸入: yarn-daemon.sh?? start?? resourcemanager? ? ? ? ? ? ? 啟動ResourceManager? ? ??

輸入: hadoop-daemon.sh?? start?? nodemanager? ? ? ? ? ? ?? 啟動NodeManager

輸入:? jps??????? 可查看是否啟動成功??

通過 http://192.168.100.10:8088/ 可以查看YARN的Web頁面,YARN? Web端的端口號是8088

停止 hadoop的命令,對應的使用 stop

四、 測試MapReduce Job

Hadoop 自帶的 WordCount 程序 hadoop-mapreduce-examples-2.2.0.jar,存放于hadoop安裝目錄的 share/hadoop/mapreduce/ 路徑下, 可用該程序來進行測試

Hadoop 自帶的 WordCount程序,單詞統計的功能,因此先創建一個文本作為輸入文件

step9:創建輸入文件

輸入: sudo?? vim?? /opt/data/wc.input?????? 創建wc.input文件

打開文件后, 按 i 鍵進入編輯模式,輸入單詞(it's up to you)

輸入完成后,按 Esc 鍵退出編輯模式,按 :wq? 保存并退出

輸入: hdfs? dfs? -put ? /opt/data/wc.input ? ?? /wordcountdemo/input ? ? ? ?? 將wc.input文件上傳到HDFS的/wordcountdemo/input目錄下

輸入: yarn?? jar?? share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar??? wordcount??? /wordcountdemo/input????? /wordcountdemo/output

運行功能的 .jar 包,wordcount是 jar包 需要運行的主類,wc.input 為輸入的文本參數,輸出結果保存到output目錄下

Hadoop Job的運行記錄中,可知輸入文件有1個(Total input paths to process:1)

這個Job被賦予了一個ID號:job_1535711820644_0001

同時還可以看到map和reduce的job記錄

輸入: hdfs? dfs? -ls?? /wordcountdemo/output?????? 查看輸出結果目錄

_SUCCESS文件? 說明運行成功

part-r-00000? 是輸出結果文件,-r- 說明這個文件是Reduce階段產生的結果。mapreduce程序執行中,可以沒有reduce階段,但是肯定有map階段,如果沒有reduce階段則顯示是-m-

一個reduce會產生一個 part-r-開頭的文件

輸入:? hdfs? dfs? -cat ?? /wordcountdemo/output/part - r -0000 ? ? 查看輸出文件的內容,結果按照鍵值排序而成

五 、總結

Hadoop各模塊的學習理解

1、HDFS 模塊

HDFS 數據存儲功能,負責大數據的存儲,將大文件分塊后進行分布式存儲,突破了服務器硬盤大小的限制,解決了單臺機器無法存儲大文件的問題。HDFS是個相對獨立的模塊,可以為YARN提供服務和HBase等其他模塊提供服務

運行的節點

NameNode,? DataNode,? JobTracker,? TaskTracker,? SecondaryNameNode

節點的區別

從分布式存儲的角度,集群中的結點由一個NameNode和若干個DataNode組成,另有一個SecondaryNameNode作為NameNode的備份

從分布式應用的角度,集群中的結點由一個JobTracker 和若干個TaskTracker組成,JobTracker負責任務的調度,TaskTracker負責并行執行任務。TaskTracker必須運行在DataNode上,這樣便于數據的本地計算

JobTracker和NameNode無須在同一臺機器上

2、YARN 模塊

YARN是通用的資源協同和任務調度框架,為了解決Hadoop1.x中MapReduce里NameNode負載太大和其他問題

YARN是通用框架,可運行MapReduce,還可運行Spark、Storm等其他計算框架

3、MapReduce 模塊

MapReduce是并行計算框架,通過Map階段、Reduce階段來分布式地流式處理數據。它適用于大數據的離線處理,不適用于實時性要求很高的應用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容