4.单个虚拟机内存8192MB(8G),最大磁盘大小30G
sudo passwd2.打开01-network-manager-all.yaml文件(网卡配置文件)
vim /etc/netplan/01-network-manager-all.yaml3.删除原内容,复制粘贴如下信息(根据实际情况更改)
# 堆代码 duidaima.com # Let NetworkManager manage all devices on this system network: ethernets: ens33: dhcp4: false addresses: [192.168.139.101/24] routes: - to: default via: 192.168.139.92 nameservers: addresses: [8.8.8.8] version: 24.在宿主机的cmd中运行ipconfig命令查看网络信息,如下图所示:
addresses:前三位和宿主机默认网关保持一致,后一位自己随便设置(但要避免和已有ip重复)
配置用户sudo权限
配置以后,每次使用sudo,无需输入密码
sudo vim /etc/sudoers2.增加修改sudoers文件,在%sudo下面新加一行(这里以hjm用户为例)
# Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL hjm ALL=(ALL) NOPASSWD: ALL
sudo mkdir /opt/module sudo mkdir /opt/software2.修改 module、software 文件夹的所有者和所属组均为hjm用户
sudo chown hjm:hjm /opt/module sudo chown hjm:hjm /opt/software
ps -e|grep ssh2.安装ssh服务
sudo apt-get install openssh-server3.启动ssh服务
sudo /etc/init.d/ssh start注意:
tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/3.配置jdk环境变量
sudo vim /etc/profile.d/my_env.sh(2)添加以下内容
#JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_212 export PATH=$PATH:$JAVA_HOME/bin(3)保存后退出,source 一下/etc/profile 文件,让新的环境变量 PATH 生效
source /etc/profile(4)测试jdk是否安装成功
java -version
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/3.配置hadoop环境变量
sudo vim /etc/profile.d/my_env.sh(2)在 my_env.sh 文件末尾添加如下内容
#HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin(3)保存后退出,source 一下/etc/profile 文件,让新的环境变量 PATH 生效
source /etc/profile(4)测试hadoop是否安装成功
hadoop version
<configuration> <!-- 指定 NameNode 的地址 --> <property> <name>fs.defaultFS</name> <value>hdfs://hjm1:8020</value> </property> <!-- 指定 hadoop 数据的存储目录 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.1.3/data</value> </property> <!-- 配置 HDFS 网页登录使用的静态用户为 hjm --> <property> <name>hadoop.http.staticuser.user</name> <value>hjm</value> </property> </configuration>hdfs-site.xml
<configuration> <!-- nn web 端访问地址--> <property> <name>dfs.namenode.http-address</name> <value>hjm1:9870</value> </property> <!-- 2nn web 端访问地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>gyt1:9868</value> </property> </configuration> yarn-site.xml <configuration> <!-- 指定 MR 走 shuffle --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 指定 ResourceManager 的地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>gyt2</value> </property> <!-- 环境变量的继承 --> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP RED_HOME</value> </property> </configuration>mapred-site.xml
<configuration> <!-- 指定 MapReduce 程序运行在 Yarn 上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> workers hjm1 hjm2 gyt1 gyt2五.克隆虚拟机
2.按照“配置虚拟机网络-设置虚拟机静态IP”的方式,配置hjm2的ip为192.168.139.102,gyt2的ip为192.168.139.104
127.0.0.1 localhost # 127.0.1.1 gyt2 记得删除这一行 192.168.139.101 hjm1 192.168.139.102 hjm2 192.168.139.103 gyt1 192.168.139.104 gyt24.修改四台虚拟机的主机名分别为hjm1,hjm2,gyty1,gyt2
sudo vim /etc/hostname5.重启虚拟机
ssh-keygen -t rsa3.将公钥复制到目的机上,这里以hjm1举例
ssh-copy-id hjm1
#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop102 hadoop103 hadoop104 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file); pwd) #6. 获取当前文件的名称 fname=$(basename $file) ssh $host "mkdir -p $pdir" rsync -av $pdir/$fname $host:$pdir else echo $file does not exists! fi done done3.修改脚本xsync具有执行权限
chmod +x xsync4.测试脚本
xsync /home/atguigu/bin5.将脚本复制到/bin中,以便全局调用
sudo cp xsync /bin/6.在客户端电脑(默认windows)配置映射
192.168.139.101 hjm1 192.168.139.102 hjm2 192.168.139.103 gyt1 192.168.139.104 gyt2
hdfs namenode -format2.在hjm1上启动hdfs
sbin/start-dfs.sh3.在gyt2上启动yarn
sbin/start-yarn.sh4.Web 端查看 HDFS 的 NameNode
http://hjm1:98705.Web 端查看 YARN 的 ResourceManager
http://gyt2:8088