偽分布模式
設備: 一臺 linux
特點: 在單機上模擬分布式環(huán)境崇摄,擁有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: 創(chuàng)建新的普通用戶hadoop
創(chuàng)建hadoop用戶出于保障 hdfs 的數(shù)據(jù)安全性辨萍,給不同的用戶賦予不同權限
輸入: 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? 保存并退出
在學習環(huán)境可將hadoop用戶的權限設置的大一些返弹,但實際生產(chǎn)環(huán)境一定要注意普通用戶的權限限制
step3:切換到hadoop用戶
輸入: su? -?? hadoop
二锈玉、 Hadoop安裝&配置
step4:解壓hadoop
hadoop下載教程:http://www.reibang.com/p/a28e2305a48c
輸入: sudo? mkdir? /opt/modules??????? 創(chuàng)建目錄爪飘,存放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環(huán)境變量
輸入: sudo? vim?? /etc/profile??????? 打開profile目錄配置環(huán)境變量
輸入: 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參數(shù)
輸入: 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? 環(huán)境變量)
輸入: source? /etc/profile??????? 重新執(zhí)行profile 文件使其生效
配置mapred-env.sh土陪、yarn-env.sh文件JAVA_HOME參數(shù)昼汗,同理
step7:配置 core-site.xml肴熏、hdfs-site.xml鬼雀、mapred-site.xml、yarn-site.xml 文件
這幾個配置文件放置在 hadoop安裝目錄下 ? /hadoop-2.2.0/etc/hadoop/
若發(fā)現(xiàn)沒有存在mapred-site.xml, 但存在mapred-site.xml.template
直接復制蛙吏,重命名一個mapred-site.xml就可以
輸入 : cp?? mapred-site.xml.template?? ?mapred-site.xml
接下來源哩,逐個來配置這幾個文件
(1)? 配置 core-site.xml
配置參數(shù) :?? fs.defaultFS?? 配置HDFS的NameNode的地址
??????????????????? ? hadoop.temp.dir???? 配置HDFS數(shù)據(jù)保存的目錄。默認是Linux的tmp目錄鸦做,由于系統(tǒng)啟動励烦,會清空默認的tmp目錄,導致NameNode數(shù)據(jù)丟失泼诱,所以需要創(chuàng)建新的tmp目錄
輸入:?? sudo?? mkdir?? -p?? /opt /modules/hadoop-2.2.0/tmp? 本人在hadoop安裝目錄下創(chuàng)建tmp目錄坛掠,來存放HDFS數(shù)據(jù),你可自行創(chuàng)建別處目錄進行存放
輸入: sudo?? vim?? core-site.xml????? 打開core-site.xml文件
配置core-site.xml參數(shù)信息
fs.defaultFS 治筒,hdfs的 ip屉栓,默認端口號 8020
(2)? 配置 hdfs-site.xml
配置參數(shù) :?? dfs.replication?????HDFS存儲時的備份數(shù)量,默認是3耸袜, 偽分布設為1 ????????
輸入: sudo?? vim?? hdfs-site.xml???打開 hdfs-site.xml文件
配置 hdfs-site.xml 參數(shù)信息
(3)? 配置 mapred-site.xml
配置參數(shù) :?? mapredure.framework.name?? 配置mapredure程序運行的容器是Yarn
輸入: sudo?? vim?? mapred-site.xml???打開mapred-site.xml文件
配置mapred-site.xml參數(shù)信息
(4)? 配置 yarn-site.xml
配置參數(shù) :?? yarn.resourcemanager.hostname????? 配置ResourceManager的主機地址
????????????????????? yarn.nodemanager.aux-services?????? 配置NodeManager運行mapredure任務的方式
輸入: sudo?? vim?? yarn-site.xml???打開yarn-site.xml文件
配置mapred-site.xml參數(shù)信息
三 友多、啟動HDFS & YARN
step8: 格式化 HDFS
格式化是對HDFS中的DataNode進行分塊,并將分塊后的原始元數(shù)據(jù)存于NameNode中堤框。
輸入: bin/hdfs? namenode?? -format????????? 格式化NameNode
格式化成功后域滥,可在 temp 目錄中生成 dfs 目錄
輸入:? ll?? temp/dfs/name/current?????? 查看NamaNode格式化后的目錄
fsimage??? NameNode在元數(shù)據(jù)內(nèi)存滿了后的持久化文件
fsimage*.md5?????? 校驗文件,校驗fsimage的完整性
seen_txid?????? hadoop的版本
vession????? 保存namesopaceID(NameNode的唯一ID)和 clusterID(集群ID)?
輸入: cat??? tmp/dfs/name/current/VERSION????? 可查看vession中內(nèi)容
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程序委可,單詞統(tǒng)計的功能,因此先創(chuàng)建一個文本作為輸入文件
step9:創(chuàng)建輸入文件
輸入: sudo?? vim?? /opt/data/wc.input?????? 創(chuàng)建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 為輸入的文本參數(shù),輸出結果保存到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階段產(chǎn)生的結果。mapreduce程序執(zhí)行中嗽桩,可以沒有reduce階段岳守,但是肯定有map階段,如果沒有reduce階段則顯示是-m-
一個reduce會產(chǎn)生一個 part-r-開頭的文件
輸入:? hdfs? dfs? -cat ?? /wordcountdemo/output/part - r -0000 ? ? 查看輸出文件的內(nèi)容碌冶,結果按照鍵值排序而成
五 湿痢、總結
Hadoop各模塊的學習理解
1、HDFS 模塊
HDFS 數(shù)據(jù)存儲功能扑庞,負責大數(shù)據(jù)的存儲譬重,將大文件分塊后進行分布式存儲,突破了服務器硬盤大小的限制罐氨,解決了單臺機器無法存儲大文件的問題臀规。HDFS是個相對獨立的模塊,可以為YARN提供服務和HBase等其他模塊提供服務
運行的節(jié)點
NameNode,? DataNode,? JobTracker,? TaskTracker,? SecondaryNameNode
節(jié)點的區(qū)別
從分布式存儲的角度栅隐,集群中的結點由一個NameNode和若干個DataNode組成塔嬉,另有一個SecondaryNameNode作為NameNode的備份
從分布式應用的角度,集群中的結點由一個JobTracker 和若干個TaskTracker組成租悄,JobTracker負責任務的調(diào)度谨究,TaskTracker負責并行執(zhí)行任務。TaskTracker必須運行在DataNode上恰矩,這樣便于數(shù)據(jù)的本地計算
JobTracker和NameNode無須在同一臺機器上
2记盒、YARN 模塊
YARN是通用的資源協(xié)同和任務調(diào)度框架,為了解決Hadoop1.x中MapReduce里NameNode負載太大和其他問題
YARN是通用框架外傅,可運行MapReduce纪吮,還可運行Spark、Storm等其他計算框架
3萎胰、MapReduce 模塊
MapReduce是并行計算框架碾盟,通過Map階段、Reduce階段來分布式地流式處理數(shù)據(jù)技竟。它適用于大數(shù)據(jù)的離線處理冰肴,不適用于實時性要求很高的應用