环境&软件 | 版本 |
---|---|
操作系统&macOs | 11.2.1 |
虚拟机&VMware Fusion | 12.1 |
服务器&CentOS | 7.8 |
jdk | 1.8 |
hadoop | 2.9.2 |
框架 | linux01 | linux02 | linux03 |
---|---|---|---|
HDFS | NameNode、DataNode | DataNode | SecondaryNameNode、DataNode |
YARN | NodeManager | NodeManager | NodeManager、ResourceManager |
VMWARE Fusion设置虚拟机网络适配器链接模式为“与我的Mac共享”
cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf
cat /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
配置静态ip只需要操作这一步,上面的步骤都是查看当前机器应该配置的信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.91.161
GATEWAY=192.168.91.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
重启网络服务生效
service network restart
ping外网
ping baidu.com
hostnamectl set-hostname linux01
hostname
vi /etc/hosts
systemctl stop iptables
systemctl stop firewalld
systemctl disable firewalld.service
将每台机器生成的id_rsa.pub追加添加到同一个authorized_keys内,然后再将该authorized_keys发送到其他远程主机上
ssh-keygen -t rsa
ssh-copy-id 192.168.91.161
scp -r ~/.ssh/authorized_keys 192.168.91.162:~/.ssh
scp -r ~/.ssh/authorized_keys 192.168.91.163:~/.ssh
ssh linux01
ssh linux02
ssh linux03
虚拟机准备过程中可能遇到的问题:
- ifconfig命令不可用:yum -y install net-tools
- yum命令执行失败:执行nmtui命令,然后选择Edit a connection——选择ens33——Automatically connect打勾,退出重试yum命令
软件安装包存放目录
mkdir -p /opt/dayu/software
软件安装目录
mkdir -p /opt/dayu/servers
scp -r jdk-8u231-linux-x64.tar.gz [email protected]:/opt/dayu/software
scp -r hadoop-2.9.2.tar.gz [email protected]:/opt/dayu/software
tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt/dayu/servers/
tar -zxvf hadoop-2.9.2.tar.gz -C /opt/dayu/servers/
vi /etc/profile
##JAVA_HOME
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
export PATH=$PATH:$JAVA_HOME/bin
##HADOOP_HOME
export HADOOP_HOME=/opt/dayu/servers/hadoop-2.9.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
source /etc/profile
java -version
hadoop version
Hadoop集群配置 = HDFS集群配置 + MapReduce集群配置 + Yarn集群配置
配置文件所在文件夹:
/opt/dayu/servers/hadoop-2.9.2/etc/hadoop为了避免出现信息混乱,修改Hadoop安装目录所属用户和用户组
chown -R root:root /opt/dayu/servers/hadoop-2.9.2
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
<property>
<name>fs.defaultFS</name>
<value>hdfs://linux01:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/dayu/servers/hadoop-2.9.2/data/tmp</value>
</property>
<!-- 指定Hadoop辅助名称节点主机配置 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>linux03:50090</value>
</property>
<!--副本数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
linux01
linux02
linux03
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
// 先把配置文件模板名改成正式配置文件名
mv mapred-site.xml.template mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>linux03</value>
</property>
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文
件都复制过去。
yum install -y rsync
# 创建脚本
touch rsync-script
# 修改脚本具有执行权限
chmod 777 rsync-script
# 编写完脚本后通过该命令可以同步配置文件
rsync-script /opt/dayu/servers/hadoop-2.9.2
#!/bin/bash
#1 获取命令输入参数的个数,如果个数为0,直接退出命令
paramnum=$#
if((paramnum==0)); then
echo no params;
exit;
fi
#2 根据传入参数获取文件名称
p1=$1
file_name=`basename $p1`
echo fname=$file_name
#3 获取输入参数的绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取用户名称
user=`whoami`
#5 循环执行rsync
for((host=1; host<4; host++)); do
echo ------------------- linux0$host --------------
rsync -rvl $pdir/$file_name $user@linux0$host:$pdir
done
如果没有启动过,需要初始化
hadoop namenode -format
start-dfs.sh
start-yarn.sh
jps
http://192.168.91.161:50070/dfshealth.html#tab-overview