Hadoop的三種安裝模式
Hadoop的三種安裝模式
- 一、本地模式
- 二、偽分佈模式
- 三、全分佈模式
- 1. 準備工作:
- 2. 在主節點上(bigdata112)安裝配置hadoop
- (1) hadoop-env.sh ,配置hadoop的環境,將第25行的JAVA_HOME設定為/root/training/jdk1.8.0_144;
- (2) hdfs-site.xml,設定資料塊的冗餘度,原則冗餘度跟資料節點個數保持一致,最大不要超過3;
- (3) core-site.xml,配置主節點的地址埠和資料塊及元資訊;
- (4) mapred-site.xml(預設沒有該檔案),配置MR程式執行的容器;
- (5) yarn-site.xml(預設沒有該檔案),配置Yarn主節點的位置和從節點的工作方式;
- (6) slaves 配置從節點地址
- (7) 對HDFS的NameNode進行格式化;
- 3. bigdata112上安裝好的目錄複製到從節點上
- 4. 主節點上啟動叢集;
一、本地模式
本地模式的特點:沒有HDFS, 只能測試MapRduce (不是執行在Yarn中, 做一個獨立的Java程式來執行), 只需配置etc/hadoop/hadoop-env.sh中的JAVA_HOME
二、偽分佈模式
偽分佈模式的特點:在單機上,模擬一個分散式的環境,具備Hadoop的所有功能,只需要一臺機器(主機名為bigdata111)
HDFS:NameNode + DataNode + SecondaryNameNode
Yarn:ResourceManager + NodeManager
1. hadoop-env.sh ,配置hadoop的環境;
將第25行的JAVA_HOME設定為/root/training/jdk1.8.0_144;
2. hdfs-site.xml,設定資料塊的冗餘度;
原則上冗餘度跟資料節點個數保持一致,最大不要超過3;
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
3. core-site.xml,配置主節點的地址埠和資料塊及元資訊;
<property>
<name>fs.defaultFS</name>
<!--hdfs://主機名:埠-->
<value>hdfs://bigdata111:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!--tmp檔案需要新建-->
<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
4. mapred-site.xml(預設沒有該檔案),配置MR程式執行的容器;
//使用cp mapred-site.xml.template mapred-site.xml生成xml檔案
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5. yarn-site.xml(預設沒有該檔案),配置Yarn主節點的位置和從節點的工作方式;
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata111</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
6. 對HDFS的NameNode進行格式化;
進入目錄:/root/training/hadoop-2.7.3/tmp
執行命令:hdfs namenode -format
格式化成功的話,日誌中出現Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
7. 配置免密碼登入。
在root目錄下,執行
生成祕鑰對命令ssh-keygen -t rsa
將公鑰拷給別人ssh-copy-id -i .ssh/id_rsa.pub [email protected]([email protected]主機名)
輸入名ssh bigdata111驗證是否可登入bigdata111,退出命令exit
8. 啟動;
HDFS:start-dfs.sh
Yarn: start-yarn.sh
統一:start-all.sh
輸入命令jps,檢視NameNode,SecondaryNameNode,DataNode,ResourceManager,NodeManager五個執行緒是否都起來
9. 執行wordcount程式
本地檔案data.xml上傳的hdfs
hdfs dfs -put data.txt /input/
進入目錄root/training/hadoop-2.7.3/share/hadoop/mapreduce
執行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/day1230/,執行該命令時day1230檔案不存在
檢視hdfs dfs -cat /output/day1230/part-r-00000
三、全分佈模式
全分佈模式用於生產,至少需要三臺機器,其中一臺為為主節點,配置NameNode,SecondaryNameNode,ResourceManager,另外兩臺配置DataNode,NodeManager
1. 準備工作:
(1) 虛擬機器安裝三臺Linux,配置三臺均配置JDK,關閉防火牆命令
關閉systemctl stop firewalld.service
開機不啟動systemctl disable firewalled.service
(2) 設定三臺機IP和對應的主機名
vi /etc/hosts
IP2 bigdata112 (主節點)
IP3 bigdata113
IP4 bigdata114
(3) 設定三臺機的免密登入
生成祕鑰對 ssh-keygen -t rsa
拷貝祕鑰
ssh-copy-id -i .ssh/id_rsa.pub [email protected]
ssh-copy-id -i .ssh/id_rsa.pub [email protected]
ssh-copy-id -i .ssh/id_rsa.pub [email protected]
(4)保證叢集的時間同步
**三臺機器同時輸入date -s 2018-12-30**
2. 在主節點上(bigdata112)安裝配置hadoop
(1) hadoop-env.sh ,配置hadoop的環境,將第25行的JAVA_HOME設定為/root/training/jdk1.8.0_144;
(2) hdfs-site.xml,設定資料塊的冗餘度,原則冗餘度跟資料節點個數保持一致,最大不要超過3;
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
(3) core-site.xml,配置主節點的地址埠和資料塊及元資訊;
<property>
<name>fs.defaultFS</name>
<!--hdfs://主機名:埠-->
<value>hdfs://bigdata112:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!--tmp檔案需要新建-->
<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
(4) mapred-site.xml(預設沒有該檔案),配置MR程式執行的容器;
//使用cp mapred-site.xml.template mapred-site.xml生成xml檔案
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(5) yarn-site.xml(預設沒有該檔案),配置Yarn主節點的位置和從節點的工作方式;
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata111</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
(6) slaves 配置從節點地址
bigdata113
bigdata114
(7) 對HDFS的NameNode進行格式化;
**進入目錄:/root/training/hadoop-2.7.3/tmp
執行命令:hdfs namenode -format**
格式化成功的話,日誌中出現Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.
3. bigdata112上安裝好的目錄複製到從節點上
scp -r hadoop-2.7.3/ [email protected]:/root/training
scp -r hadoop-2.7.3/ [email protected]:/root/training
4. 主節點上啟動叢集;
(1)start-all.sh
輸入命令jps,
檢視NameNode,SecondaryNameNode,DataNode,ResourceManager,NodeManager五個執行緒是否都起來
(2) 執行wordcount程式
本地檔案data.xml上傳的hdfs
**hdfs dfs -put data.txt /input/**
進入目錄**root/training/hadoop-2.7.3/share/hadoop/mapreduce**
執行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/day1230/,執行該命令時**day1230檔案不存在**
檢視hdfs dfs -cat /output/day1230/part-r-00000