hadoop集群搭建教程【实用版本】

一、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.2ping 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.shhadoop运行环境模块配置
第二类core-site.xml核心模块配置
第二类hdfs-site.xmlhdfs 文件系统模块配置
第二类yarn-site.xmlyarn模块配置
第二类mapred-site.xmlMapReduce模块配置
第三类workershadoop3.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
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值