在mac上进行hadoop集群搭建

一、环境说明

  1. 软件版本
环境&软件 版本
操作系统&macOs 11.2.1
虚拟机&VMware Fusion 12.1
服务器&CentOS 7.8
jdk 1.8
hadoop 2.9.2
  1. 集群规划
框架 linux01 linux02 linux03
HDFS NameNode、DataNode DataNode SecondaryNameNode、DataNode
YARN NodeManager NodeManager NodeManager、ResourceManager

二、虚拟机准备

1. 配置静态ip

1.1 虚拟机网络设置(NAT)

VMWARE Fusion设置虚拟机网络适配器链接模式为“与我的Mac共享”
在mac上进行hadoop集群搭建_第1张图片

1.2 查看本机网络配置

  1. 查看本机网关地址以及子网掩码:
cat /Library/Preferences/VMware\ Fusion/vmnet8/nat.conf

在mac上进行hadoop集群搭建_第2张图片
2. 查看虚拟机允许选择的静态ip地址范围

cat /Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf

在mac上进行hadoop集群搭建_第3张图片
3. 查看mac本机的dns:设置—网络—高级
在mac上进行hadoop集群搭建_第4张图片

1.3 修改虚拟机配置

配置静态ip只需要操作这一步,上面的步骤都是查看当前机器应该配置的信息

  1. 登录虚拟机(可以使用mac命令行 ssh username@ip )
  2. 修改配置文件,注意该文件名是ifcfg-en开头
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

在mac上进行hadoop集群搭建_第5张图片

1.4 验证静态ip

重启网络服务生效

service network restart

ping外网

ping baidu.com

在mac上进行hadoop集群搭建_第6张图片

2. 配置hostname

2.1 设置主机名

hostnamectl set-hostname linux01

2.2 查看主机名

hostname

2.2 集群主机名设置

vi /etc/hosts

在mac上进行hadoop集群搭建_第7张图片

3. 关闭防火墙

systemctl stop iptables 
systemctl stop firewalld
systemctl disable firewalld.service 

4. 实现ssh免密互通

将每台机器生成的id_rsa.pub追加添加到同一个authorized_keys内,然后再将该authorized_keys发送到其他远程主机上

4.1 每台机器生成公钥和私钥,换行回车采用默认值

ssh-keygen -t rsa

4.2 每台将公钥追加到同一台服务器上

ssh-copy-id 192.168.91.161

4.3 在存有公钥的机器将生成的authorized_keys文件发送给其他主机

scp -r ~/.ssh/authorized_keys 192.168.91.162:~/.ssh
scp -r ~/.ssh/authorized_keys 192.168.91.163:~/.ssh

4.4 验证ssh互通

ssh linux01
ssh linux02
ssh linux03

虚拟机准备过程中可能遇到的问题:

  1. ifconfig命令不可用:yum -y install net-tools
  2. yum命令执行失败:执行nmtui命令,然后选择Edit a connection——选择ens33——Automatically connect打勾,退出重试yum命令

三、搭建hadoop集群

1. jdk以及hadoop软件安装

1.1 指定软件安装文件夹

软件安装包存放目录
mkdir -p /opt/dayu/software
软件安装目录
mkdir -p /opt/dayu/servers

1.2 上传安装包

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

1.3 解压软件到指定的安装目录

tar -zxvf jdk-8u231-linux-x64.tar.gz -C /opt/dayu/servers/
tar -zxvf hadoop-2.9.2.tar.gz -C /opt/dayu/servers/

1.4 追加环境变量

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

1.5 验证软件是否安装成功

source /etc/profile
java -version
hadoop version

在mac上进行hadoop集群搭建_第8张图片

2. hadoop集群配置

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

2.1 HDFS集群配置

  1. 将JDK路径明确配置给HDFS(修改hadoop-env.sh)
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
  1. 指定NameNode节点以及数据存储目录(修改core-site.xml)
  <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>
  1. 指定SecondaryNameNode节点(修改hdfs-site.xml)
  <!-- 指定Hadoop辅助名称节点主机配置 -->
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>linux03:50090</value>
  </property>
  <!--副本数量 -->
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  1. 指定DataNode从节点(修改slaves文件,每个节点配置信息占一行)
linux01
linux02
linux03

2.2 MapReduce集群配置

  1. 将JDK路径明确配置给MapReduce(修改mapred-env.sh)
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
  1. 指定MapReduce计算框架运行Yarn资源调度框架(修改mapred-site.xml)
// 先把配置文件模板名改成正式配置文件名
mv mapred-site.xml.template mapred-site.xml
  <!-- 指定MR运行在Yarn上 -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

2.3 Yarn集群配置

  1. 将JDK路径明确配置给Yarn(修改yarn-env.sh)
export JAVA_HOME=/opt/dayu/servers/jdk1.8.0_231
  1. 指定ResourceManager老大节点所在计算机节(修改yarn-site.xml)
  <!-- 指定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>
  1. 指定NodeManager节点(无需配置,会通过slaves文件内容确定)

3. 分发配置到各个机器节点上(rsync)

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文
件都复制过去。

3.1 安装rsync

yum install -y rsync

3.2 编写shell脚本

# 创建脚本
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集群启动

如果没有启动过,需要初始化

hadoop namenode -format

1. 集群群起

start-dfs.sh
start-yarn.sh

2. 查看集群启动状态

jps

在mac上进行hadoop集群搭建_第9张图片

3. web端查看Hdfs界面

http://192.168.91.161:50070/dfshealth.html#tab-overview

你可能感兴趣的:(hadoop,hadoop)