宿主機ipconfig截圖:html
Vmnet8網絡配置:java
虛擬機網絡配置:node
上傳安裝包到服務器:web
上傳成功後,看到兩個壓縮包:apache
解壓兩個壓縮包:瀏覽器
給文件從新命名,方便以後配置環境變量:bash
配置jdk+hadoop環境變量:服務器
查看jdk環境變量是否配置成功:markdown
查看hadoop環境變量是否配置成功:網絡
---------------------------------------------------------------------------------------
至此jdk和hadoop已經安裝好,接下來修改一些配置文件
默認主機名:
查看和修改主機名:
永久修改主機名,修改配置文件執行命令: vi /etc/sysconfig/network:
綁定hostname和ip, 執行命令:vi /etc/hosts
一、查看Hadoop目錄結構,執行命令:ll
二、重要目錄
(1)bin目錄:存放對Hadoop相關服務(HDFS,YARN)進行操做的腳本
(2)etc目錄:Hadoop的配置文件目錄,存放Hadoop的配置文件
(3)lib目錄:存放Hadoop的本地庫(對數據進行壓縮解壓縮功能)
(4)sbin目錄:存放啓動或中止Hadoop相關服務的腳本
(5)share目錄:存放Hadoop的依賴jar包、文檔、和官方案例
Hadoop運行模式包括:本地模式、僞分佈式模式以及徹底分佈式模式。
Hadoop官方網站:hadoop.apache.org/
1. 建立在hadoop2.8.5文件下面建立一個input文件夾
[root@node hadoop2.8.5]$ mkdir input複製代碼
2. 將Hadoop的xml配置文件複製到input
[root@node hadoop2.8.5]$ cp etc/hadoop/*.xml input複製代碼
3. 執行share目錄下的MapReduce程序
[root@node hadoop2.8.5]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jargrep input output 'dfs[a-z.]+' 複製代碼
4. 查看輸出結果
[root@node hadoop2.8.5]$ cat output/*複製代碼
控制檯結果展現:
1. 建立在hadoop2.8.5文件下面建立一個wcinput文件夾
[root@node hadoop2.8.5]$ mkdir wcinput複製代碼
2. 在wcinput文件下建立一個wc.input文件
[root@node hadoop2.8.5]$ cd wcinput [root@node hadoop2.8.5]$ touch wc.input 複製代碼
3. 編輯wc.input文件
[root@node hadoop2.8.5]$ vi wc.input複製代碼
在文件中輸入以下內容
hadoop
hadoop
mapreduce
yarn
保存退出::wq
4. 回到Hadoop目錄/opt/module/hadoop2.8.5
5. 執行程序
[root@node hadoop2.8.5]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount wcinput wcoutput
複製代碼
6. 查看結果
[root@node hadoop2.8.5]$ cat wcoutput/part-r-00000複製代碼
hadoop 2
mapreduce 1
yarn 1
案例結果展現:
1. 配置集羣
(1)配置:hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8/
(2)配置:core-site.xml
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
</property>
<!-- 指定Hadoop運行時產生文件的存儲目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop2.8.5/data/tmp</value>
</property>複製代碼
(3)配置:hdfs-site.xml
<!-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
複製代碼
2. 啓動集羣
(1)格式化NameNode(第一次啓動時格式化,之後就不要總格式化)
[root@node hadoop2.8.5]$ hdfs namenode -format複製代碼
(2)啓動NameNode
[root@node hadoop2.8.5]$ hadoop-daemon.sh start namenode複製代碼
(3)啓動DataNode
[root@node hadoop2.8.5]$ hadoop-daemon.sh
start datanode複製代碼
3. 查看集羣
(1)查看是否啓動成功, 執行命令jps
注意:jps是JDK中的命令,不是Linux命令。不安裝JDK不能使用jps
(2)web端查看HDFS文件系統
注意:在Windows環境經過URL訪問,須要在C:\Windows\System32\drivers\etc\hosts,在其中添加192.168.158.128 node便可。
(3)查看產生的Log日誌
本地查看日誌:
web端查看日誌:
(4)思考:爲何不能一直格式化NameNode,格式化NameNode,要注意什麼?
[root@node hadoop2.8.5]$ cd data/tmp/dfs/name/current/ [root@node hadoop2.8.5]$ cat VERSION 複製代碼
clusterID=clusterID=CID-1e77ad8f-5b3f-4647-a13a-4ea3f01b6d65
[root@node hadoop2.8.5]$ cd data/tmp/dfs/data/current/複製代碼
clusterID=clusterID=CID-1e77ad8f-5b3f-4647-a13a-4ea3f01b6d65
注意:格式化NameNode,會產生新的集羣id,致使NameNode和DataNode的集羣id不一致,集羣找不到已往數據。因此,格式NameNode時,必定要先刪除data數據和log日誌,而後再格式化NameNode。
4. 操做集羣
(1)在HDFS文件系統上建立一個input文件夾
執行命令: hdfs dfs -mkdir -p /usr/java/hadoop/input
(2)將本地測試文件內容上傳到文件系統上
執行命令:hdfs dfs -put wcinput/wc.input /user/java/hadoop/input/
(3)查看上傳的文件是否正確
執行命令:hdfs dfs -cat /usr/java/hadoop/input/wc.input
(4)運行MapReduce程序
執行命令:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /usr/java/hadoop/input/ /usr/java/hadoop/output
(5)查看輸出結果
執行命令:hdfs dfs -cat /usr/java/hadoop/output/*
(6)將測試文件內容下載到本地
執行命令:hdfs dfs -get /usr/java/hadoop/output/part-r-00000 wcoutput/
(7)刪除輸出結果
執行命令:hdfs dfs -rm -f /usr/java/hadoop/output
1. 配置集羣
(1)配置yarn-env.sh
(2)配置yarn-site.xml
<!-- Reducer獲取數據的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node</value>
</property>
複製代碼
(3)配置:mapred-env.sh
(4)配置: (對mapred-site.xml.template從新命名爲) mapred-site.xml
<!-- 指定MR運行在YARN上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
複製代碼
2. 啓動集羣
(1)啓動前必須保證NameNode和DataNode已經啓動
(2)啓動ResourceManager
執行命令:yarn-daemon.sh start resourcemanager
(3)啓動NodeManager
執行命令:yarn-daemon.sh start nodemanager
3. 集羣操做
(1)YARN的瀏覽器頁面查看,如圖2-35所示
http://node:8088/cluster
(2)刪除文件系統上的output文件
執行命令:hdfs dfs -rm -f /usr/java/hadoop/output
(3)執行MapReduce程序
執行命令:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /usr/java/hadoop/input/ /usr/java/hadoop/output
(4)查看運行結果
1. 克隆虛擬機
2. 修改配置文件
(1)vi /etc/sysconfig/network-scripts/ifcfg-ens33
(2) vi /etc/sysconfig/network
(3) vi /etc/hosts
3. 集羣部署規劃
|
node |
node1 | node2 |
HDFS
|
NameNode DataNode |
DataNode |
SecondaryNameNode DataNode |
YARN |
NodeManager |
ResourceManager NodeManager |
NodeManager |
4. 配置集羣
(1)配置core-site.xml
<!-- 指定HDFS中NameNode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node:9000</value>
</property>
<!-- 指定Hadoop運行時產生文件的存儲目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/java/hadoop2.8.5/data/tmp</value>
</property>
複製代碼
(2)HDFS配置文件
export JAVA_HOME=/usr/java/jdk1.8/複製代碼
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 指定Hadoop輔助名稱節點主機配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
複製代碼
(3)YARN配置文件
export JAVA_HOME=/usr/java/jdk1.8/複製代碼
<!-- Reducer獲取數據的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
複製代碼
(4)MapReduce配置文件
export JAVA_HOME=/usr/java/jdk1.8/複製代碼
<!-- 指定MR運行在Yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
複製代碼
5. 節點之間免密通訊: ssh配置免密登陸
6. 羣起集羣
啓動HDFS:start-dfs.sh
啓動yarn: start-yarn.sh
[node] jps
[node1] jps
[node2] jps
集羣命令:
啓動/中止HDFS
start-dfs.sh / stop-dfs.sh
啓動/中止YARN
start-yarn.sh / stop-yarn.sh
所有啓動/所有中止
start-all.sh / stop-all.sh