Linux系统部署Hadoop大数据框架(HDFS+YARN+MapReduce)

前置准备

首先需要安装好一台虚拟机,这里已经使用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集群的监控页面

完结~

参考文献

黑马程序员大数据入门到实战教程,大数据开发必会的Hadoop、Hive,云平台实战项目全套一网打尽

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值