一、所需資源下載下傳路徑
- linux選用centos8
https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
- jdk1.8(hadoop是java寫的,運作需要jre)
https://repo.huaweicloud.com/java/jdk/8u201-b09/jdk-8u201-linux-x64.tar.gz
- hadoop3
連結:https://pan.baidu.com/s/11sPp1oec6uBi8Ci1BvV0rw 提取碼:1234
二、centos基礎環境配置
1. JDK8配置
1)scp 本機中jdk檔案 [email protected]的ip:目标路徑。解壓到 /opt/module目錄下(個人習慣)。
2)配置JAVA_HOME、JRE、CLASSPATH環境變量
修改/etc/profile在檔案末尾添加:
export JAVA_HOME=/opt/moudle/jdk-14.0.2
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
2.修改centos虛拟機的基本環境
1)将動态ip改為靜态ip
修改/etc/sysconfig/network-script/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="9931db14-5f9e-4366-99c2-d5a218ef645c"
DEVICE="ens33"
1. 修改BOOTPROTO="static"
2. 修改ONBOOT="yes"
3. 添加
IPADDR="192.168.152.10"
NETMASK="255.255.255.0"
GATEWAY="192.168.152.2"
DNS1="114.114.114.114"
2)關閉防火牆
關閉防火牆服務systemctl stop firewalld
關閉開機啟動 systemctl disable firewalld
關閉selinux :
vim /etc/sysconfig/selinux 然後将配置SELinux=enforcing改為SELinux=disabled
關閉windows防火牆,否則linux ping 不通windows
關閉 防火牆和網絡保護 =>
- 區域網路
- 專用網絡
- 公用網絡
三、hadoop叢集配置
192.168.179.20 | 192.168.179.30 | 192.168.179.31 |
---|---|---|
master20 | slaver30 | slaver31 |
1.克隆master20虛拟機得到 slaver30 slaver31
- 為slaver配置靜态ip (vim /etc/sysconfig/network-script/ifcfg-ens33)
- 為slaver設定hostname (vim /etc/hostname)
- 設定host映射(vim /etc/hosts)
-
為每一台都配置ssh登入(實作任意兩台可以ssh登入,并且自己可以ssh登入自己)
執行:ssh-keygen
建立檔案:vim ~/.ssh/authorized_keys (權限:chmod 600 authorized_keys ;chmod 700 -R .ssh)
公鑰分發:ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 [email protected]
2. 配置hadoop
1) 配置環境變量
修改/etc/profile末尾添加(source /etc/profile後生效)
export HADOOP_HOME=/opt/moudle/hadoop-3.3.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
2)修改hadoop配置檔案(/opt/moudule/hadoop3/etc/hadoop)
(1)在 core-site.xml 添加以下配置
<configuration>
<!-- NameNode 位址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- Hadoop臨時檔案目錄,預設是/tmp目錄,系統重新開機後資料丢失 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moudule/hadoop3/data/tmp</value>
</property>
</configuration>
(2) 在 hadoop-env.sh 最後添加以下配置
export JAVA_HOME=/opt/moudule/jdk8
#root使用者啟動失敗 修改 etc/hadoop/hadoop-env.sh 添加如下
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
(3) 在 hdfs-site.xml 中添加以下配置
<configuration>
<property>
<name>dfs.namenode.ame.dir</name>
<value>/opt/moudule/hadoop3/data/name</value>
</property>
<!--本結點datanode資料目錄-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/moudule/hadoop3/data/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
(4) 在 mapred-site.xml 中添加以下配置
<configuration>
<property>
<name>mapreduce.framwork.name</name>
<value>yarn</value>
</property>
</configuration>
(5) 在 workers 中修改為如下配置
master20
slaver30
slaver31
(6) 在 yarn-site.xml 添加如下配置
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master20</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.179.20:8088</value>
</property>
<property>
<name>yarn.nodemanager.aux-service</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
(7) 将 hadoop 目錄從 master 拷貝到 slave1 與 slave2,由于之前配置了免密登入,是以不需要輸入密碼即可完成拷貝.
(8) 建立臨時檔案目錄 (三台機器都需建立), 建立的目錄對應于 hdfs-site.xml 中配置的資料存儲目錄
(9) 格式化 hdfs 檔案系統,在master結點上的hadoop的安裝目錄下的 bin 目錄下執行以下指令
hdfs namenode -format
(10) 運作hadoop叢集
start-all.sh
四、測試
在master30執行jps指令:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxM2MkJWN0MDN0ITO4YWM5M2MiRDNjZWYmVjM4UDO4U2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
namenode: hdfs的master
resourcemanager: yarn的master
在slaver執行jps:
datanode: hdfs的slaver
nodemanager: yarn的slaver
恭喜你,大功告成!!!