前置准备
首先需要安装好一台虚拟机,这里已经使用VMware 17 Pro 安装好了一台Linux虚拟机,镜像文件版本是CentOS 7.6,详细安装方法及安装包见上一篇文章。

克隆多台虚拟机
通过克隆另外复制出来两台服务器

下一页


注意这里要选择创建完整克隆

这里可以自定义虚拟机名称及存放位置,为方便起见这里给三台虚拟机分别命名为node1、node2、node3,其中node1是主节点、node2、3作为从节点



成功克隆一台虚拟机,用同样方法克隆出来另外两台虚拟机


分配内存,为后续使用需要,给主节点node1分配4g内存,两台从节点分配2g内存

虚拟机系统设置
修改主机名



修改为固定ip
在root用户下修改ens-33网卡配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改:
BOOTPROTO="static"
增加:
IPADDR="192.168.88.101"
NETMASK="255.255.255.0"
GATEWAY="192.168.88.2"
DNS1="192.168.88.2"


修改C:\Windows\System32\drivers\etc中的host文件,这里有时需要使用管理员权限才可以打开,向文件中增加:
192.168.88.101 node1
192.168.88.102 node2
192.168.88.103 node3
同时在3台Linux的/etc/hosts文件中添加:
192.168.88.101 node1
192.168.88.102 node2
192.168.88.103 node3


设置ssh免密登录
3台机器均执行:ssh-keygen -t rsa -b 4096

3台机器均执行 :
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

创建hadoop用户并配置免密登录


jdk环境部署




关闭防火墙

关闭安全模块SELinux

时间同步


HDFS集群部署
下载hadoop安装包
进入hadoop官网下载页面:Apache Hadoop,下载最新版

下载完成后以root用户登录node1节点,将压缩包解压至/export/server目录下并创建软连接

配置/etc/hadoop中的文件(完整路径为/export/server/hadoop/etc/hadoop)
配置workers,记录从节点主机名:

配置hadoop-env.sh文件,记录环境变量:
export JAVA_HOME=/export/server/jdk (指明jdk环境位置在哪)
export HADOOP_HOME=/export/server/hadoop (指明hadoop安装位置)
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop (指明hadoop配置文件目录位置)
export HADOOP_LOG_DIR=$HADOOP_HOME/logs (指明hadoop运行日志目录位置)

配置core-site.xml文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>

配置hdfs-site.xml
<configuration>
<property>
<name>dfs.datanode.data.dir.perm</name>
<value>700</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/nn</value>
</property>
<property>
<name>dfs.namenode.hosts</name>
<value>node1,node2,node3</value>
</property>
<property>
<name>dfs.blocksize</name>
<value>268435456</value>
</property>
<property>
<name>dfs.namenode.handler.count</name>
<value>100</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/dn</value>
</property>
</configuration>

由于配置信息中涉及到存储文件,需要提前创建
在主节点node1上:
mkdir -p /data/nn
mkdir -p /data/dn

在node2 node3上:
mkdir -p /data/dn
![]()
![]()
从node1节点分发hadoop文件夹至node2、3 节点,并在node2、3 节点创建hadoop文件夹的软连接
![]()

为3台机器配置hadoop文件夹中的bin、sbin文件夹的 环境变量
vim /etc/profile
export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出后source /etc/profile 使配置文件生效


将集群启动权限授权给hadoop用户,以便后续用hadoop用户操作。
以root身份在三台节点中执行:
chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export

相关配置完毕,启动前在node1节点格式化整个HDFS文件系统
su - hadoop (使用hadoop用户执行)
hadoop namenode -format
启动~
一定要在node1 hadoop用户上启动,用root启动的话权限会归为root 再用hadoop就操作不了了
一键启动hdfs集群
start-dfs.sh
一键关闭hdfs集群
stop-dfs.sh
启动后可以用jps查看java进程,可以发现datanode namenode secondarynamenode 全部启动了

浏览器打开node1:9870,发现3个节点均live

HDFS集群部署完成~
MapReduce 和 YARN的相关配置
MapReduce的相关配置
登录node1 ,切换到hadoop用户上
在 /export/server/hadoop/etc/hadoop/mapred-env.sh 添加如下环境变量:
export JAVA_HOME=/export/server/jdk
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

在同级mapred-site.xlm文件中添加如下配置信息
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>MapReduce的运行框架设置为 YARN</description>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
<description>历史服务器通讯地址和端口为 node1:10020</description>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
<description>历史服务器web端口为node1的19888</description>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>/data/mr-history/tmp</value>
<description>历史信息在HDFS的记录临时路径</description>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>/data/mr-history/done</value>
<description>历史信息在HDFS的记录路径</description>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
<description>MapReduce HOME 设置为HADOOP_HOME</description>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
<description>MapReduce HOME 设置为HADOOP_HOME</description>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
<description>MapReduce HOME 设置为HADOOP_HOME</description>
</property>

MapReduce 相关配置完成~
YARN的相关配置
在 /export/server/hadoop/etc/hadoop/yarn-env.sh 添加如下环境变量:
export JAVA_HOME=/export/server/jdk
export HADOOP_HOME=/export/server/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

修改同级目录下的配置文件yarn-site.xml,添加以下配置:
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
<description>ResourceManager设置在node1节点</description>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/data/nm-local</value>
<description>NodeManager中间数据本地存储路径</description>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/data/nm-log</value>
<description>NodeManager数据日志本地存储路径</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>为MapReduce程序开启Shuffle服务</description>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs</value>
<description>历史服务器URL</description>
</property>
<property>
<name>yarn.web-proxy.address</name>
<value>node1:8089</value>
<description>代理服务器主机和端口</description>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
<description>开启日志聚合</description>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/tmp/logs</value>
<description>程序日志HDFS的存储路径</description>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
<description>选择公平调度器</description>
</property>

分发配置文件
配置好后需要分发四个配置文件
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:`pwd`/
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node3:`pwd`/
分发完成就可以启动YARN相关进程(ResourceManager、NodeManager、ProxyServer)
一键启动:start-yarn.sh
一键停止:stop-yarn.sh

其中历史服务器需要单独启停
mapred --daemon start|stop historyserver

开启后打开http://node1:8088/可以看到yarn集群的监控页面

完结~
&spm=1001.2101.3001.5002&articleId=142951206&d=1&t=3&u=e5f51a228db64e3c8bbc370b9934e4f4)
5266

被折叠的 条评论
为什么被折叠?



