虚拟机部署Hadoop

简介:通过本篇博客,你可以搭建起一个具有3个虚拟机结点:node1、node2和node3的hadoop集群,当然包括yarn的配置,这并不复杂,实测可用。在此基础上,可以搭建hive以及impala,不需要为兼容性担心。不过本篇博客不涉及hive和impala。
希望本篇文章对您有用!

相关软件链接:https://pan.baidu.com/s/1y_dCAACBdbSEPztiQrLHVA?pwd=h00i
提取码:h00i

一、材料准备

1、操作系统:CentOs7

版本如下

CentOS-7-x86_64-DVD-1810.iso

镜像站:archive.kernel.org

2、Hadoop

hadoop-3.3.4.tar.gz

3、JDK

jdk-8u361-linux-x64.tar.gz

二、基本环境

1、安装虚拟机

step1:使用VM自动安装即可
初始用户建议命名为hadoop

安装完成后进入桌面如图所示⬇⬇⬇
在这里插入图片描述
step2:根据step1中安装的虚拟机完全克隆三台虚拟机,名称分别为node1,node2和node3
在这里插入图片描述
调整node1配置为:2核4线程;4GB内存;20G硬盘
node2和node3配置为:1核2线程;2GB内存;20G硬盘

2、虚拟机基本环境配置

在安装hadoop之前,需要做ip映射、ssh免密登录等操作

切换为root

su root

(1)修改主机名
三台主机分别执行

hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3

(2)静态IP
需要修改或添加:BOOTPROTO、IPADDR、NETMASK、DNS1、GATEWAY。有的教程只让修改前两项可能导致无法联网。不妨碍安装hadoop。

图示为node1修改后内容

vim /etc/sysconfig/network-scripts/ifcfg-ens33

在这里插入图片描述

node2:192.168.88.101

node3:192.168.88.102

重启网卡,三台主机都要做

systemctl restart network

(3)配置主机名映射

三台主机都要做。

vim /etc/hosts

添加

192.168.88.100 node1
192.168.88.101 node2
192.168.88.102 node3

(4)免密登录

每台机器先执行,一直回车即可

ssh-keygen -t rsa -b 4096

然后每台机器都需要执行

ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

同理为hadoop用户配置免密登录

(6)关闭防火墙
三台都要做

systemctl stop firewalld
systemctl disable firewalld

(7)关闭SELinux
三台都要做

vim /etc/sysconfig/selinux

'''
修改SELINUX=disabled
'''

重启虚拟机

三、安装JDK

jdk上传可以使用scp也可以使用xftp,上传位置任意,建议放到/tmp

scp jdk-8u361-linux-x64.tar.gz root@192.168.88.100:/tmp

切换root用户

(1)安装

/export/server文件夹存放安装的软件

mkdir -p /export/server

进入server

cd /export/server

解压JDK

tar -zxvf /tmp/jdk-8u361-linux-x64.tar.gz  -C /export/server

创建jdk软链接(相当于快捷方式)

ln -s /export/server/jdk1.8.0_361 /export/server/jdk

(2)配置环境变量

vim /etc/profile

追加以下内容

export JAVA_HOME=/export/server/jdk
export PATH=$PATH:$JAVA_HOME/bin

使环境变量生效

source /etc/profile

配置java执行程序软链接

rm -f /usr/bin/java
ln -s /export/server/jdk/bin/java /usr/bin/java

验证,如图所示即为成功

java -version

在这里插入图片描述

剩余结点重复同样操作配置JDK

四、安装Hadoop3.3.4

用root用户

(1)将hadoop文件放到虚拟机中

scp hadoop-3.3.4.tar.gz root@192.168.88.100:/tmp

解压。除了需要写配置文件,流程基本和安装JDK一样

tar -zxvf /tmp/hadoop-3.0.0.tar.gz -C /export/server/

创建软链接

ln -s hadoop-3.3.4/ hadoop

(2)修改配置文件

1)配置workers

vim /export/server/hadoop/etc/hadoop/workers

让hadoop知道集群有哪几个结点。

node1
node2
node3

2)配置hadoop-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

3)配置core-site.xml文件

vim /export/server/hadoop/etc/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>

    <!-- 整合hive 配置hadoop时可以先不用加-->
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.groups</name>
        <value>*</value>
    </property>
</configuration>

4)配置hdfs-site.xml文件

vim /export/server/hadoop/etc/hadoop/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>

(3)创建数据目录

node1节点

mkdir -p /data/nn
mkdir /data/dn

node2和node3节点

mkdir -p /data/dn

(4)将node1关于hadoop的配置发送到node2和node3

PS:建议只发送修改的配置文件🤔,否则发送时间会有点长😣…

scp -r hadoop-3.3.4 node2:/export/server
scp -r hadoop-3.3.4 node3:/export/server

在node2和node3中分别创建关于hadoop的软链接

ln -s  /export/server/hadoop-3.3.4 /export/server/hadoop-3.3.4

(5)配置hadoop环境变量

vim /etc/profile

追加,这样可以直接在shell调用hadoop的命令

export HADOOP_HOME=/export/server/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

(6)授权hadoop用户

chown -R hadoop:hadoop /data
chown -R hadoop:hadoop /export

(7)格式化namenode

😡😡注意用hadoop用户、注意用hadoop用户😡😡

hadoop namenode -format

(8)启动集群
直接执行

start-dfs.sh

停止集群用下面的命令

stop-dfs.sh

浏览器输入一下地址,可以进入hdfs的webUI

192.168.88.100:9870

在这里插入图片描述

(9)mapreduce和yarn配置
以下文件都在/export/server/hadoop/etc/hadoop目录下,用vim编辑即可

①mapred-env.sh

export JAVA_HOME=/export/server/jdk
# 设置历史服务器进程为1000MB
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
# 设置日志级别为INFO
export HADOOP_MAPRED_ROOT_LOGGER=INFO,RFA

②mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</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>

    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>node1:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>node1:19888</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.intermediate-done-dir</name>
        <value>/data/mr-history/tmp</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.done-dir</name>
        <value>/data/mr-history/done</value>
    </property>
</configuration>

③yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
<!-- 指定YARN的主角色(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.class</name>
        <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    </property>

    <!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序默认值:"" -->
   <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>/data/nm-local</value>
    </property>
    <property>
        <name>yarn.nodemanager.log-dirs</name>
        <value>/data/nm-log</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/tmp/logs</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>
    <property>
        <name>yarn.web-proxy.address</name>
        <value>node1:8089</value>
    </property>

</configuration>

④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

分发修改后的配置文件

scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node2:/export/server/hadoop/etc/hadoop
scp mapred-env.sh mapred-site.xml yarn-env.sh yarn-site.xml node3:/export/server/hadoop/etc/hadoop

此时启动hadoop集群后,再输入

start-yarn.sh

即可穷的那个yarn,浏览器输入

192.168.88.100:8088

即可进入yarn的webUI。如果你给集群提交了一个任务,你可以在这里看到它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值