目录
一、Parallels Desktop虚拟机安装和搭建
1、Parallels Desktop 虚拟机下载和安装
(1)Parallels Desktop下载地址
https://www.parallels.cn/welcome-trial/
(2)Parallels Desktop安装
安装 Parallels Desktop for Mac,打开下载的映像并双击“安装”框。查看“下载”文件夹以找到该映像;
2、Unbuntu Liunx系统下载和安装
- 通过Parallels Desktop安装unbuntu liunx系统很简单,只需安装提示点击下载,跟着步骤走即可;
- 由于需要搭建完全分布式Hadoop集群需要安装至少3个unbuntu liunx系统;
3、PD runner 安装下载
(1)PD runner介绍
PD Runner是一款Mac上无视试用期的Parallels Desktop虚拟机启动器,适用于Mac电脑上Parallels Desktop的启动器, 该软件可无视试用期限强制启动Parallels Desktop虚拟机客户机 (支持 PD17.1.0),启动运行后会在菜单栏显示程序图标. 点击菜单栏图标可列出当前Mac上安装的所有客户机, 然后点击客户机名称即可启动对应的客户机。
(2)PD runner下载地址
https://github.com/tcgmilan/pd-runner
- 下载Parallels Desktop,激活使用;
- 解压PD Runner.app.zip,安装PD Runner,激活使用;
Parallels Desktop有试用期
,但是使用PD Runner可以永久打开Parallels Desktop
;
(3)PD runner使用如下:
- 启动PD runner
- PD runner本身没有app窗口,可以在系统tarbar查看,批量管理虚拟机
二、虚拟机系统参数配置
1、关闭系统防火墙
(1)查看防火墙状态
sudo ufw status
(2)在系统启动时启用和激活防火墙
sudo ufw enable
(3)防火墙在系统启动时自动禁止
sudo ufw disable
2、修改主机名称
修改每台机器主机名hostname
方式一(推荐使用):hostnamectl set-hostname +主机名
# 修改第1台主机名称为master
hostnamectl set-hostname master
# 修改第2台主机名称为slave1
hostnamectl set-hostname slave1
# 修改第3台主机名称为slave2
hostnamectl set-hostname slave2
方式二:vim /etc/hostname
# 分别修改hostname里面的内容,内容分别为master、slave1、slave2
vim /etc/hostname
3、查看ip地址
ifconfig -a
# 若没有ifconfig命令可以安装 net-tools
sudo apt install net-tools
将每台主机的IP拷贝出来,下一阶段配置host映射需要用到对应IP,当然根据自己的需要,也可去更改虚拟机的IP地址!
4、配置hosts映射
通过vim命令修改hosts配置文件中的映射关系,若没有vim命令,这里有安装教程:
https://editor.csdn.net/md/?articleId=125976307
输入下面命令修改hosts配置文件【先配置好1台后,然后克隆至另外2台机子】:
sudo vim /etc/hosts
# IP 域名 别名 #注释
10.211.55.6 master.cn master #namenode datanode resourcemanager nodemanager
10.211.55.7 slave1.cn slave1 #secondarynamenode datanode nodemanager
10.211.55.8 slave2.cn slave2 #datanode nodemanager
注意:每台机器都需要配置三个Host映射
在master的机子上分别输入 ping 192.168.0.2
和 ping 192.168.0.3
,如图所示,即表示hosts映射配置成功。
# 三选一进行校验即可
ping 192.168.0.2 # ping IP
ping slave1.cn # ping 域名
ping slave1 # ping 别名
5、配置SSH免密登陆
(1)3台主机都输入命令,生成密钥文件,一直按回车即可;
ssh-keygen # 生成密钥
cd ~/.ssh # 进入.ssh目录
ls # 查看目录信息
cat id_rsa.pub # 查看公钥信息
若对于SSH的知识有疑惑,请查看下面👇博客:
https://blog.csdn.net/weixin_44894162/article/details/125727575?spm=1001.2014.3001.5501
(2)将 id_rsa.pub 内容拷贝至 另外两台机子的 authorized_keys
方式一:复制公钥内容,分别通过vim写入到另外两台机子上authorized_keys文件中
# 进入另外两台机子的.ssh目录;
cd ~/.ssh
# 采用vim命令进行修改;
sudo vim authorized_keys
方式二(推荐使用):将公钥放在master的authorized_keys,再分别通过scpchuan su另外两台机子上authorized_keys文件中
# 进入另外两台机子的.ssh目录;
cd ~/.ssh
# 将公钥放在master的authorized_keys
sudo vim authorized_keys
# 再分别将authorized_keys拷贝给slave1和slave2这两台机子
scp authorized_keys slave1:/.ssh/
scp authorized_keys slave2:/.ssh/
配置成功后,在master终端可以通过ssh + IP地址 or 域名 or 别名
进行登录,当然,如果想要在slave1登录master、slave2,则需要同上将slave1的公钥发给master、slave2两台机子;
ssh 10.211.55.7 # ssh IP地址
ssh slave1.cn # ssh 域名
ssh slave1 # ssh 别名
6、集群时间同步:
分别在master、slave1、slave2三台机器上输入下面命令进行时间同步;
yum -y install ntpdate
ntpdate ntp4.aliyun.com
三、Hadoop 与 Java 安装及环境搭建
1、Hadoop 下载与安装
(1)Hadoop下载地址
https://hadoop.apache.org/releases.html
(2)Hadoop解压
tar -zxvf hadoop-3.3.3.tar.gz
2、Java JDK 下载与安装
(1)Java JDK下载地址
https://www.oracle.com/java/technologies/downloads/#jdk18-linux
(2)Java JDK解压
tar -zxvf jdk-18_linux-aarch64_bin.tar.gz
3、环境变量配置
环境变量配置原则:在master一台机子上配置,然后再通过vim 或者 scp 命令拷贝给slave1和slave2两台机子,原理可参照二、5、配置SSH免密登录
。
方式一:修改profile文件【profile是系统级别的配置文件,对所有用户都有效】
- 输入命令
sudo vim /etc/profile
修改配置文件,在文本末尾添加对应的Hadoop和Java JDK环境变量信息。
sudo vim /etc/profile
- profile文件内容如下:Home目录根据自己的安装包文件目录进行修改
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
# Java JDK路径
JAVA_HOME="/home/parallels/Java/jdk-18.0.2"
export PATH=$JAVA_HOME/bin:$PATH
# Hadoop 路径
HADOOP_HOME="/home/parallels/Hadoop/hadoop-3.3.3"
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
- 输入命令
sudo source /etc/profile
配置文件即可生效。
sudo source /etc/profile
方式二:修改bash_profile文件【bash_profile是用户级别的,仅对单一用户有效】
- 输入命令
sudo vim ~/.bash_profile
修改配置文件,在文本末尾添加对应的Hadoop和Java JDK环境变量信息。
sudo vim ~/.bash_profile
- bash_profile文件内容如下:
# Java JDK路径
JAVA_HOME="/home/parallels/Java/jdk-18.0.2"
export PATH=$JAVA_HOME/bin:$PATH
# Hadoop 路径
HADOOP_HOME="/home/parallels/Hadoop/hadoop-3.3.3"
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
- 输入命令
source ~/.bash_profile
配置文件即可生效。
四、Hadoop配置文件
1、Hadoop常见配置文件
类别 | 常见配置文件 | 说明 |
---|---|---|
第一类 | hadoop-env.sh | hadoop运行环境模块配置 |
第二类 | core-site.xml | 核心模块配置 |
第二类 | hdfs-site.xml | hdfs 文件系统模块配置 |
第二类 | yarn-site.xml | yarn模块配置 |
第二类 | mapred-site.xml | MapReduce模块配置 |
第三类 | workers | hadoop3.0以后slaves更名为workers,DataNode模块配置 |
2、修改配置文件内容
(1)hadoop-env.sh
# Java jdk 环境变量
export JAVA_HOME=/home/parallels/Java/jdk-18.0.2
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_OPTS=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
(2)core-site.xml:
<configuration>
<!-- 设置默认使用的文件系统 Hadoop 支持 file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<!-- 设置Hadoop本地保存数据路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/parallels/Hadoop/data</value>
</property>
<!-- 设置HDFS web UI用户身份 -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>
<!-- 整合hive 用户代理设置 -->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
</configuration>
(3)hdfs-site.xml
<configuration>
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:9868</value>
</property>
</configuration>
(4)yarn-site.xml
<configuration>
<!-- 设置YARN集群主角色运行机器位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 是否将对容器实施物理内存限制 -->
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
<!-- 是否将对容器实施虚拟内存限制-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<!-- 开启日志聚集 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 设置yarn历史服务器地址 -->
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
</property>
</configuration>
(5)mapred-site.xml
<configuration>
<!-- 设置MR程序默认的运行模式:yarn集群模式 local本地模式 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- MR程序历史服务地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<!-- MR程序历史服务器web端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1.19888</value>
</property>
<!-- -->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- -->
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- -->
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
</configuration>
6、worker
master
slave1
slave2