Hadoop完全分布式集群——Hadoop 配置
前面已完成VMware虛擬機安裝與配置(參考前一篇Hadoop完全分布式集群——VMware虛擬機安裝與配置_夏雨和陽陽的博客-CSDN博客),下面將進行Hadoop 配置。
一、slave1、slave2節點配置修改
slave1、slave2節點都需要進行以下操作:
1.開啟虛擬機,輸入命令:
[root@slave1 ~]#ip addr
[root@slave2 ~]#ip addr
2.修改slave1、slave2虛擬機的IP
[root@slave1 ~]#vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@slave12 ~]#vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改slave1為IPADDR=192.168.128.131,修改slave2為IPADDR=192.168.128.132。
?3.修改slave1、slave2虛擬機的主機名
[root@slave1 ~]#vi /etc/hostname
[root@slave2 ~]#vi /etc/hostname
主節點為 master,子節點分別為 slave1、slave2。
?4.slave1、slave2虛擬機重啟網絡服務
[root@slave1 ~]#service network restart
[root@slave2 ~]#service network restart
5.查看slave1、slave2虛擬機 IP、主機名是否修改
[root@slave1 ~]#ip addr
[root@slave2 ~]#ip addr
6.reboot 重啟slave1、slave2虛擬機。
root@slave1 ~]#reboot
root@slave2 ~]#reboot
二、 配置master、slave1、slave2虛擬機無密碼登錄
1.配置 IP 映射(master、slave1、slave2每個節點都需修改)
[root@master ~]#vi /etc/hosts
[root@slave1 ~]#vi /etc/hosts
[root@slave2 ~]#vi /etc/hosts
依次添加如下內容:
192.168.128.130 master
192.168.128.131 slave1
192.168.128.132 slave2
?2.配置 SSH 無密碼登錄
(1) 使用 ssh-keygen 產生公鑰與私鑰對。
在master虛擬機輸入命令:
[root@master ~]# ssh-keygen -t rsa
執行過程中需要按三次 Enter 鍵。
生成私有密鑰 id_rsa 和公有密鑰 id_rsa.pub 兩個文件。ssh-keygen 用來生成 RSA類型的密鑰以及管理該密鑰,參數“-t”用于指定要創建的 SSH 密鑰的類型為RSA。
(2)用 ssh-copy-id 將公鑰復制到slave1、slave2虛擬機中
[root@master ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave1?????//依次輸入 yes,123456(root 用戶的密碼)
[root@master ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave2???? //依次輸入 yes,123456(root 用戶的密碼)
(3)驗證是否設置無密碼登錄
依次輸入:
[root@master ~]# ssh slave1????? //下圖表示無密碼登陸slave1成功
[root@master ~]# exit??? //下圖表示退出slave1
?用同樣的方法驗證slave2是否設置無密碼登錄。
(4)配置宿主機SSH 無密碼登錄master、slave1、slave2虛擬機
?為了便于連接和操作master、slave1、slave2虛擬機,也需要配置SSH 無密碼登錄。在宿主機上操作如下:
[root@localhost~]#vi /etc/hosts
依次添加如下內容:
192.168.128.130 master
192.168.128.131 slave1
192.168.128.132 slave2
[root@localhost~]# ssh-keygen -t rsa
執行過程中需要按三次 Enter 鍵。
[root@localhost~]# ssh-copy-id -i /root/.ssh/id_rsa.pub master ??? //依次輸入 yes,123456(root 用戶的密碼)
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave1?????//依次輸入 yes,123456(root 用戶的密碼)
[root@localhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub slave2???? //依次輸入 yes,123456(root 用戶的密碼)
[root@localhost ~]# ssh master
[root@localhost ~]# ssh slave1???
[root@localhost ~]# ssh slave1???
三、安裝 jdk(每個節點都需安裝)
用的是JDK1.8.0_131版本(jdk-8u131-linux-x64.tar.gz),有需要從百度網盤中下載。
下載鏈接:https://pan.baidu.com/s/1P2fkRonIVO-DZMNKNgCCKA
提取碼:ml01
1. 解壓并安裝/opt 目錄
[root@master opt]#tar -zxvf jdk-8u131-linux-x64.tar.gz
2.修改環境變量
[root@master ~]#vi /etc/profile
添加如下內容:
export JAVA_HOME=/opt/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
[root@master ~]#source /etc/profile??????????? //使配置生效
?3.驗證 JDK 是否配置成功
[root@master ]#java -version
4.將master上的配置好的JDK分發到slave1、slave2上
[root@master ]#scp -r /opt/jdk1.8.0_131 root@slave1:/opt
[root@master ]#scp -r /opt/jdk1.8.0_131 root@slave2:/opt
5.環境變量配置生效
[root@slave1 ~]#source /etc/profile?
[root@slave2 ~]#source /etc/profile?
6.驗證 slave1、slave2中的JDK 是否配置成功
[root@slave1 ~]#java -version
[root@slave2 ~]#java -version
四、 Hadoop2.7.7 安裝與配置
用的是Hadoop2.7.7版本(hadoop-2.7.7.tar.gz),有需要從百度網盤中下載。
下載鏈接:https://pan.baidu.com/s/13Mc6YsbHiZPkbozJUMuahg
提取碼:mt1s
1.解壓并安裝/usr/local目錄(主節點進行)
[root@master ]#tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local
解壓后即可看到/usr/local/hadoop-2.7.7文件夾。
2.配置 Hadoop
(1)進入目錄
[root@master ]#cd /usr/local/hadoop-2.7.7/etc/hadoop
依次修改以下配置文件(使用 vi 命令對文件進行修改 如 vi core-site.xml),修改完按ESC鍵,輸入:wq!保存退出。
注:文件中存在<configuration></configuration>,配置放入其中,且只保留一組的<configuration></configuration>。
(2)修改core-site.xml
[root@master hadoop]#vi xore-site.xml
添加如下內容:
<configuration>
??????? <property>
??????? <name>fs.default.name</name>
??????? <value>hdfs://master:9000</value>
??????? </property>
??????? <property>
??????? <name>hadoop.tmp.dir</name>
??????? <value>/usr/local/hadoop-2.7.7/hdfs/tmp</value>
??????? </property>
</configuration>
(3)修改hadoop-env.sh
[root@master hadoop]#vi hadoop-env.sh
修改如下內容:
# The java implementation to use.
export JAVA_HOME=/opt/jdk1.8.0_131
(4)修改hdfs-site.xml
[root@master hadoop]#vi hdfs-site.xml
添加如下內容:
<configuration>
??????? <property>
??????? <name>dfs.namenode.name.dir</name>
??????? <value>/usr/local/hadoop-2.7.7/hdfs/name</value>
??????? </property>
??????? <property>
??????? <name>dfs.datanode.data.dir</name>
??????? <value>/usr/local/hadoop-2.7.7/hdfs/data</value>
??????? </property>
??????? <property>
??????? <name>dfs.namenode.secondary.http-address</name>
??????? <value>master:50090</value>
??????? </property>
??????? <property>
??????? <name>dfs.replication</name>
??????? <value>2</value>
??????? </property>
</configuration>
(5)修改mapred-site.xml
此目錄下并沒有mapred-site.xml,須復制mapred-site.xml.template生成。命令如下:
[root@master hadoop]#cp mapred-site.xml.template mapred-site.xml
[root@master hadoop]#vi mapred-site.xml
添加如下內容:
<configuration>
??????? <property>
??????? <name>mapreduce.framework.name</name>
??????? <value>yarn</value>
??????? </property>
<!-- jobhistory properties -->
??????? <property>
??????? <name>mapreduce.jobhistory.address</name>
??????? <value>master:10020</value>
??????? </property>
??????? <property>
??????? <name>mapreduce.jobhistory.webapp.address</name>
??????? <value>master:19888</value>
??????? </property>
</configuration>
(6)修改yarn-site.xml
[root@master hadoop]#vi yarn-site.xml
添加如下內容:
<configuration>
<!-- Site specific YARN configuration properties -->
??????? <property>
??????? <name>yarn.resourcemanager.hostname</name>
??????? <value>master</value>
??????? </property>
??????? <property>
??????? <name>yarn.resourcemanager.address</name>
??????? <value>${yarn.resourcemanager.hostname}:8032</value>
??????? </property>
??????? <property>
??????? <name>yarn.resourcemanager.scheduler.address</name>
??????? <value>${yarn.resourcemanager.hostname}:8030</value>
??????? </property>
??????? <property>
??????? <name>yarn.resourcemanager.webapp.address</name>
??????? <value>${yarn.resourcemanager.hostname}:8088</value>
??????? </property>
??????? <property>
??????? <name>yarn.resourcemanager.webapp.https.address</name>
??????? <value>${yarn.resourcemanager.hostname}:8090</value>
??????? </property>
??????? <property>
??????? <name>yarn.resourcemanager.resource-tracker.address</name>
??????? <value>${yarn.resourcemanager.hostname}:8031</value>
??????? </property>
??????? <property>
??????? <name>yarn.resourcemanager.admin.address</name>
??????? <value>${yarn.resourcemanager.hostname}:8033</value>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.local-dirs</name>
??????? <value>/usr/local/hadoop-2.7.7/yarn/local</value>
??????? </property>
??????? <property>
??????? <name>yarn.log-aggregation-enable</name>
??????? <value>true</value>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.remote-app-log-dir</name>
??????? <value>/usr/local/hadoop-2.7.7/yarn/logs</value>
??????? </property>
??????? <property>
??????? <name>yarn.log.server.url</name>
??????? <value>http://master:19888/jobhistory/logs/</value>
??????? <description>URL for job history server</description>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.vmem-check-enabled</name>
??????? <value>false</value>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.aux-services</name>
??????? <value>mapreduce_shuffle</value>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.aux-services</name>
??????? <value>mapreduce_shuffle</value>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.resource.memory-mb</name>
??????? <value>2048</value>
?????? </property>
??????? <property>
??????? <name>yarn.scheduler.minimum-allocation-mb</name>
??????? <value>512</value>
??????? </property>
??????? <property>
??????? <name>yarn.scheduler.maximum-allocation-mb</name>
??????? <value>4096</value>
??????? </property>
??????? <property>
??????? <name>mapreduce.map.memory.mb</name>
??????? <value>2048</value>
??????? </property>
??????? <property>
??????? <name>mapreduce.reduce.memory.mb</name>
??????? <value>2048</value>
??????? </property>
??????? <property>
??????? <name>yarn.nodemanager.resource.cpu-vcores</name>
??????? <value>1</value>
??????? </property>
??????? <property>
??????? <name>yarn.application.classpath </name>
??????? <value>
??????? /usr/local/hadoop-2.7.7/etc/hadoop:/usr/local/hadoop-2.7.7/share/hadoop/common/lib/*:/usr/local/hadoop-2.7.7/share/hadoop/common/*:/usr/local/hadoop-2.7.7/share/hadoop/hdfs:/usr/local/hadoop-2.7.7/share/hadoop/hdfs/lib/*:/usr/local/hadoop2.7.7/share/hadoop/hdfs/*:/usr/local/hadoop-2.7.7/share/hadoop/mapreduce/lib/*:/usr/local/hadoop-2.7.7/share/hadoop/mapreduce/*:/usr/local/hadoop-2.7.7/share/hadoop/yarn:/usr/local/hadoop-2.7.7/share/hadoop/yarn/lib/*:/usr/local/hadoop-2.7.7/share/hadoop/yarn/*
??????? </value>
??????? </property>
</configuration>
(7)修改yarn-env.sh
[root@master hadoop]#vi yarn-env.sh
修改如下內容:
# some Java parameters
export JAVA_HOME=/opt/jdk1.8.0_131
(8)修改workers
[root@master hadoop]#vi workers
刪除原有 localhost,添加:
master
slave1
slave2
(9)修改slaves
[root@master hadoop]#vi slaves
刪除原有 localhost,添加:
slave1
slave2
3.拷貝 hadoop 安裝文件到集群 slave1、slave2 節點
[root@master hadoop]#scp -r /usr/local/hadoop-2.7.7 root@slave1:/usr/local
[root@master hadoop]#scp -r /usr/local/hadoop-2.7.7 root@slave2:/usr/local
4.在master、slave1、slave2分別修改配置文件并生效
[root@master ~]#vi /etc/profile????????//添加 Hadoop 路徑??????????????
添加以下內容:
export HADOOP_HOME=/usr/local/hadoop-2.7.7
export PATH=$PATH:$HADOOP_HOME/bin
[root@master ~]#source /etc/profile????? //配置生效
slave1、slave2 節點操作同上。
5.master節點上格式化 NameNode
[root@master ~]#cd /usr/local/hadoop-2.7.7/bin
[root@master ~]#./hdfs namenode -format
注:hadoop 集群只需要格式化一次即可,后續啟動無需格式化。
6.master主節點啟動Hadoop
[root@master ~]#cd /usr/local/hadoop-2.7.7sbin
[root@master ~]#./start-dfs.sh
[root@master ~]#./start-yarn.sh
[root@master ~]#./mr-jobhistory-daemon.sh start historyserver
7.使用 jps,查看進程
?
8.slave1、slave2子節點沒有datanode進程
?此時須重啟子節點,進入子節點對應的sbin目錄,執行:
[root@slave1 ~]#cd /usr/local/hadoop-2.7.7/sbin
[root@slave1 sbin]#hadoop-daemon.sh start datanode
[root@slave1 sbin]#hadoop-daemon.sh start tasktracker(該命令可能會失效,所以失效的話就跳過該條命令)
使用jps查看進程已正常顯示datanode進程。
9.在宿主機上添加映射
[root@localhost ~]#vi \etc\hosts???????????? //添加 IP 映射
添加如下內容:
192.168.128.130 master
192.168.128.131 slave1
192.168.128.132 slave2
10.在宿主機上用瀏覽器查看
查看HDFS的NameNode:http://master:50070
?
查看YARN的ResourceManager:http://master:8088
?
?
總結
以上是生活随笔為你收集整理的Hadoop完全分布式集群——Hadoop 配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: timer控件的使用
- 下一篇: 大数据集群安装02之Hadoop配置