基于CentOS7搭建Hadoop完全分布式模式和HBase完全分布式(超详细)

基于CentOS7搭建Hadoop的完全分布式模式

0.软件版本

镜像文件:CentOS-7-x86_64-Minimal-2009.iso
百度网盘链接:https://pan.baidu.com/s/1DWlPCRX5HlmKAqwMIRW4_w
提取码:lo0a

Hadoop:hadoop-2.9.2.tar.gz
百度网盘链接:https://pan.baidu.com/s/1T140oYVnLOUkP-cqMBvIIQ
提取码:96as

JDK:jdk-8u201-linux-x64.tar.gz
百度网盘链接:https://pan.baidu.com/s/1NDjAvVIP0BhfNflaLeA_fw
提取码:fpc5

HBase:hbase-2.2.6-bin.tar.gz
百度网盘链接:https://pan.baidu.com/s/1FB3ETvheJI66fwUwkS4jnQ
提取码:nty9

1. 准备工作

在Win10中安装VMware Workstation Pro(以下简称VM)。
在VM中新建1台虚拟机(建议配置2核CPU,4G内存),选择下载的CentOS7镜像文件进行安装,安装时,软件选择为默认的“最小安装”,系统安装位置为默认的“自动分区”(需要点击确认),网络设置要将默认的“未连接”改为“打开”(记录下IP地址和网关信息),网络选择NAT模式,修改电脑主机名为hadoop01(记得点击应用)。

具体安装步骤:(若熟悉虚拟机创建的同学可以跳过此步)


在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开新建好的虚拟机
在这里插入图片描述
其余的都默认选择
在这里插入图片描述

按照以上方法再搭建hadoop02、hadoop03、hadoop04和hadoop05(此处不克隆的原因是克隆的ip地址一样,主机名也一样,虽然修改即可,但为了防止后续出错因此没有选择克隆)
在这里插入图片描述

在Win10中安装XShell和XFtp

免费版XShell和XFtp下载网址
注意:后续对CentOS的操作都通过Xshell,使用root用户执行!

编辑Win10的hosts文件
(所在目录为C:\Windows\System32\drivers\etc,建议使用Notepad++或Sublime Text软件编辑该文件,不要使用win10自带的记事本)
hosts文件中增加以下内容(实际IP地址以安装CentOS时记录的地址为准):
192.168.76.140 hadoop01
192.168.76.141 hadoop02
192.168.76.142 hadoop03
192.168.76.143 hadoop04
192.168.76.144 hadoop05
在这里插入图片描述

此次用三台虚拟机来搭建完全分布式。hadoop01是主节点,运行进程NameNode、SecondaryNameNode、ResourceManager;hadoop02、hadoop03、hadoop04、hadoop05是从节点,运行进程DataNode、NodeManager。

2. 设置静态网卡(五台虚拟机都需要操作,此处以hadoop01为例)

在hadp01虚拟机上设置静态网卡,操作步骤如下:
查看本机IP:ip addr
切换工作目录:cd /etc/sysconfig/network-scripts
编辑网卡文件:vi ifcfg-ens33

注:vi的基本用法
(打开文件后,按下i键,进入insert模式,开始编辑
编辑完成后,按下ESC,输入:wq,即可保存并退出,输入:q,表示不保存并退出)

将BOOTPROTO的值修改为static(默认是dhcp)
在文件末尾增加以下内容(注意:IPADDR和GATEWAY的值要与本机实际数据保持一致)

IPADDR=192.168.76.140
NETMASK=255.255.255.0
GATEWAY=192.168.76.2
DNS1=114.114.114.114
DNS2=119.29.29.29

在这里插入图片描述

保存后,执行systemctl restart network,即可重启网卡,使设置生效
在这里插入图片描述

3. 配置主机名(五台虚拟机都需要操作,此处以hadoop01为例)

在虚拟机上编辑hosts文件vi /etc/hosts
在虚拟机的hosts文件中增加以下内容

192.168.76.140 hadoop01
192.168.76.141 hadoop02
192.168.76.142 hadoop03
192.168.76.143 hadoop04
192.168.76.144 hadoop05

在这里插入图片描述

4.在CentOS中关闭防火墙和Selinux(五台虚拟机都需要操作,此处以hadoop01为例)

在虚拟机上关闭防火墙

systemctl stop firewalld.service

禁止防火墙开机时启动。

systemctl disable firewalld.service

在这里插入图片描述

在虚拟机上关闭Selinux

vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled

在这里插入图片描述

执行reboot重启CentOS系统,使设置生效

5.配置SSH免密登录(五台虚拟机都需要操作,此处以hadoop01为例)

在hadoop01上执行ssh-keygen -t rsa生成公私钥,按三次回车键,执行完毕后,将在用户主目录下生成.ssh文件夹,其中包括公私钥文件。
在这里插入图片描述

执行命令ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop01
把公钥发送到hadoop01、hadoop02、hadoop03、hadoop04和hadoop05

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop02
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop03
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop04
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop05

执行过程中提示Are you sure you want to continue connecting (yes/no)?时,输入yes
执行过程中根据提示输入root用户密码(密码输入时没有显示)
在这里插入图片描述

6.传输jdk和hadoop的安装文件(五台虚拟机都需要操作,此处以hadoop01为例)

在Win10中下载jdk-8u201-linux-x64.tar.gz和hadoop-2.9.2.tar.gz

在hadoop01上创建目录用于保存安装文件mkdir -p /home/root/apps
通过Xftp软件,将保存在Win10中的jdk-8u201-linux-x64.tar.gz和hadoop-2.9.2.tar.gz传递到hadoop01的/home/root目录中
在这里插入图片描述

7.安装jdk(五台虚拟机都需要操作,此处以hadoop01为例)

在hadoop01上执行命令cd /home/root,切换到目录/home/root下

执行命令tar -xzvf jdk-8u201-linux-x64.tar.gz -C apps/ 将jdk解压到指定目录中(/home/root/apps)

执行命令vi /etc/profile 编辑/etc/profile文件,在文件的末尾设置JAVA环境变量

export JAVA_HOME=/home/root/apps/jdk1.8.0_201 
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述

执行命令source /etc/profile ,让/etc/profile文件修改后立即生效

查看jdk版本信息java -version ,如果能够显示正确版本信息,说明配置成功
在这里插入图片描述

8. 安装Hadoop2.9.2

(1)五台虚拟机都需要操作,此处以hadoop01为例

在hadoop01上执行命令cd /home/root,切换到目录/home/root下
执行命令tar -xzvf hadoop-2.9.2.tar.gz -C apps/将hadoop解压到指定目录中(/home/root/apps)
在这里插入图片描述
可以删除目录中的文档

cd /home/root/apps/hadoop-2.9.2/share
rm -rf doc

在这里插入图片描述
vi /etc/profile 编辑/etc/profile文件,设置Hadoop环境变量

export JAVA_HOME=/home/root/apps/jdk1.8.0_201
export HADOOP_HOME=/home/root/apps/hadoop-2.9.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

在这里插入图片描述
执行命令source /etc/profile ,让/etc/profile文件修改后立即生效

执行命令cd /home/root/apps/hadoop-2.9.2/etc/hadoop,切换到目录/home/root/apps/hadoop-2.9.2/etc/hadoop下
可以执行ll命令,查看当前目录中的内容
在这里插入图片描述

(2)下面操作只在hadoop01上进行

编辑core-site.xml文件

vi core-site.xml

fs.defaultFS:
1)指定hadoop的文件系统为hdfs,默认值为file:///,表示本地文件系统,
2)指定hdfs的namenode节点为哪台机器

hadoop.tmp.dir:
默认值为/tmp/hadoop-${user.name},当CentOS系统重启后,由于/tmp目录内容会被清除,可能导致Hadoop无法正常启动,建议在第一次安装时修改默认值。当Hadoop系统运行后再修改,需要重新格式化namenode才有效。

<property>
    <name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
<value>/home/root/apps/hadoop-2.9.2/tmp</value>
</property>

在这里插入图片描述

编辑hdfs-site.xml文件
vi hdfs-site.xml

dfs.replication:指定文件副本数量,默认值为3,完全分布式方式改为2
dfs.name.dir:指定namenode软件存储元数据的本地目录
dfs.data.dir:指定datanode软件存放文件块的本地目录
dfs.namenode.secondary.http-address:指定SecondaryNamenode的地址

<property>
    <name>dfs.replication</name>
<value>2</value>
</property>

在这里插入图片描述

编辑mapred-site.xml文件

根据模板创建mapred-site.xml文件:
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

mapreduce.framework.name:指定资源管理器,默认值是local,应该修改为yarn

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

在这里插入图片描述

编辑yarn-site.xml文件
vi yarn-site.xml

yarn.nodemanager.aux-services:指定辅助服务
yarn.resourcemanager.hostname:指定resourcemanager的地址

<property>
    <name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
    <name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>

在这里插入图片描述

编辑hadoop-env.sh文件
vi hadoop-env.sh

将默认的export JAVA_HOME=${JAVA_HOME}替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_201

在这里插入图片描述

编辑yarn-env.sh文件
vi yarn-env.sh

将默认的# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_201
记得删除这一行最前面的#
在这里插入图片描述

编辑mapred-env.sh文件
vi mapred-env.sh

将默认的# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
替换为export JAVA_HOME=/home/root/apps/jdk1.8.0_201
记得删除这一行最前面的#
在这里插入图片描述

编辑slaves文件

vi slaves

将默认的localhost改为hadoop02、hadoop03、hadoop04、hadoop05
在这里插入图片描述

将hadoop01的配置文件传送给hadoop02、hadoop03、hadoop04、hadoop05

cd /home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop02:/home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop03:/home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop04:/home/root/apps/hadoop-2.9.2/etc/
scp -r hadoop hadoop05:/home/root/apps/hadoop-2.9.2/etc/
格式化namenode节点:
hdfs namenode -format

在这里插入图片描述

启动Hadoop集群
cd /home/root/apps/hadoop-2.9.2/sbin
./start-all.sh

在这里插入图片描述
提示Are you sure you want to continue connecting (yes/no)?时,输入yes
在这里插入图片描述
在这里插入图片描述

输入jps显示当前所有java进程pid,查看Hadoop是否启动成功(hadoop01是主节点,运行进程NameNode、SecondaryNameNode、ResourceManager;hadoop02、hadoop03、hadoop04、hadoop05是从节点,运行进程DataNode、NodeManager)。

在这里插入图片描述
hadoop02、hadoop03、hadoop04、hadoop05的pid进程一样
在这里插入图片描述

在Windows中启动浏览器查看运行情况(推荐使用Google Chrome浏览器)
HDFS的Web端口号是50070
在这里插入图片描述

YARN的Web端口号是8088
在这里插入图片描述

9.运行Hadoop示例程序(在hadoop01上进行)

在Hadoop的share目录里,自带了一些jar包,里面带有一些mapreduce实例小例子,位置在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar,可以运行这些例子体验刚搭建好的Hadoop平台,我们这里来运行计算PI值的实例

cd /home/root/apps/hadoop-2.9.2/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.9.2.jar pi 10 1000

在这里插入图片描述

10.停止Hadoop(在hadoop01上进行)

cd /home/root/apps/hadoop-2.9.2/sbin
./stop-all.sh

11. 关闭虚拟机

CentOS 关机:init 0
关闭Xshell
关闭VMware workstation

到此Hadoop完全分布式已搭建成功!
后续将继续更新关于HBase的完全分布式搭建
感谢观看!
(注:第一次发文,如有错误和疑问,欢迎在评论区指出)

补充:HBase的完全分布式搭建已更新,https://blog.csdn.net/qq_47527477/article/details/120169183

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

雨落i

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

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

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

打赏作者

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

抵扣说明:

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

余额充值