Hadoop集群搭建

在Virtual Box虚拟机上搭建一主两从的Hadoop集群

在这里插入图片描述
在这里插入图片描述

一.Centos安装与网络配置

1.1 下载VirtualBox虚拟机6.16
1.2 下载centos镜像CentOS-7-x86_64-DVD-1908.iso
1.3 设置镜像

在这里插入图片描述

1.4 设置两个网卡:NAT(连接外网)、Host-Only(与主机通信)

在这里插入图片描述
在这里插入图片描述

1.5 网络配置

centos启动后不能连接外网和主机,还要进行网络配置

  1. 进入/etc/sysconfig/network-scripts目录,修改配置文件ifcfg-enp0s3,添加BOOTPROTO="dhcp"

在这里插入图片描述

  1. 复制ifcfg-enp0s3ifcfg-enp0s8,并修改文件内容
cp ifcfg-enp0s3 ifcfg-enp0s8

在这里插入图片描述

  1. 重启网络
service network restart

现在就可以ping通主机和外网了

1.6 复制虚拟机并且修改复制后的虚拟机的网络配置

在这里插入图片描述

二.Hadoop集群搭建

经过上面的配置,我们已经有了3台CentOs机器,ip分别为:172.25.78.44172.25.78.55172.25.78.66,现在就开始搭建Hadoop集群吧.

2.1 创建Hadoop用户
  1. 新建用户
useradd -m hadoop -s /bin/bash
  1. 为用户设置密码
sudo passwd hadoop
  1. 为hadoop用户添加权限
visudo

在文件98行位置添加

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL
2.2 修改主机名
vim /etc/hosts

修改为:

172.25.78.44 Master
172.25.78.55 Slave1
172.25.78.66 Slave2

修改完需要重启才能生效

2.3 关闭防火墙
sudo systemctl stop firewalld.service #关闭防火墙
sudo systemctl disable firewalld.service #禁止防火墙开机启动
2.4 安装java并配置环境
  1. 安装
sudo yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
  1. 配置环境
vim ~/.bashrc

加入一行

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

执行下面命令使配置生效

source ~/.bashrc

在其余的两台机器上执行上面的所有操作

2.5 设置ssh免密登录

这个环节也可以不设置,但是到时候hadoop集群运行时会老是让你输入密码,很烦,建议还是设置

  1. 在Master节点上执行
ssh localhost
exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat id_rsa.pub >> authorized_keys  # 加入授权
chmod 600 ./authorized_keys    # 修改文件权限
scp ~/.ssh/id_rsa.pub hadoop@Slave1:/home/hadoop/  #将钥匙远程复制到Slave1节点
  1. 在Slave1节点上执行
mkdir ~/.ssh       # 如果不存在该文件夹需先创建,若已存在则忽略
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  1. 这样Master就可以无需密码远程登录了
ssh Slave1

在Slave2上再执行以上操作,使得Master可以远程登录Slave2

2.6 安装Hadoop

在Master机器上执行以下操作

  1. 下载并安装
cd ~
mkdir download
cd download
wget https://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
sudo tar -zxf hadoop-2.7.7.tar.gz -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.7.7/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop:hadoop ./hadoop        # 修改文件权限
  1. 配置环境变量
vim ~/.bashrc
export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin #加入这行
  1. 不要忘了执行下面命令使环境配置生效
source ~/.bashrc
  1. 验证是否安装成功
hadoop version

在这里插入图片描述

2.7 修改Hadoop配置文件

进入/usr/local/hadoop/etc/hadoop,修改配置文件

  1. 修改Slave文件
Slave1
Slave2
  1. 修改core-site.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>
  1. 修改hdfs-site.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
  1. 修改mapred-site.xml文件

默认文件名为默认文件名为 mapred-site.xml.template,需要先重命名为默认文件名为 mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>
  1. 修改yarn-site.xml文件
<?xml version="1.0"?>
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>
2.8 将Master上的hadoop文件复制到两个Slave上

我们Master上的hadoop就按照配置完成了,但是我们还需要将配置好的hadoop复制到两个Slave上

Master:

tar -zcf ~/hadoop.master.tar.gz ./hadoop   # 先压缩再复制
cd ~
scp ./hadoop.master.tar.gz Slave1:/home/hadoop

Slave1:

sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop

Slave2同理

2.9启动Hadoop集群

第一次启动Hadoop集群需要在 Master 节点执行 NameNode 的格式化

hdfs namenode -format       # 首次运行需要执行初始化,之后不需要
start-all.sh   #启动hadoop集群

在Master,Slave1,Slave2执行jps,可以看到以下进程说明启动成功
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Selenium399

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值