Hadoop完全分布式集群搭建(基于CentOS系统)

观看此文章的基础为已经有一些虚拟机基础和Linux命令基础。

准备工作
所需工具:
链接:https://pan.baidu.com/s/1d6Go7c4iNHcoxLBfEjhbkg?pwd=84fr
提取码:84fr

配置文件:
(天翼云盘)https://cloud.189.cn/t/nAzUV3Y7Rzaa

  1. 新建三个文件夹。最好在磁盘预留30G左右空间用于安装三台虚拟机。

在这里插入图片描述

  1. 在VMWare WorkStation Pro中先新建主节点(master)
    在这里插入图片描述

最好是最小安装版本的
在这里插入图片描述

  1. 先确认虚拟机是否可以联网 ping www.baidu.com (正常安装后可以联网)
    如图所示可以联网,然后可以ctrl+c停掉
    在这里插入图片描述

  2. 安装网络工具:yum install net-tools(会出现y/n的选项 输入yes即可)

输入 ifconfig 出现ip地址即可
在这里插入图片描述

  1. 安装ssh服务:yum -y install openssh-serveryum -y install openssh-clients
    在这里插入图片描述

  2. 克隆master虚拟机(虚拟机右键管理有克隆选项,需要先把虚拟机关机) 克隆后的两台虚拟机分别为slave01 slave02
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  3. 克隆完成后,将三台虚拟机进行开机登录操作,并输入 ifconfig 查看ip并单独记录下来
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  4. 安装Xshell工具
    在这里插入图片描述
    在这里插入图片描述

  5. 使用Xshell去远程连接虚拟机(三台都要连接)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

注意:从接下来的步骤开始,后续会有三个虚拟机都执行的命令,三个虚拟机都执行的命令我用加粗斜体表示。

  1. 设置Xshell公共执行命令窗口:
    在这里插入图片描述
    在这里插入图片描述
  2. 关闭防火墙(三台虚拟机都执行):systemctl stop firewalld.service
    禁止firewall开机启动(三台虚拟机都执行):systemctl disable firewalld.service
    在这里插入图片描述
  3. 分别修改主机名(三台虚拟机都执行):
    vi /etc/hostname 将其修改成 master slave01 slave02 重启后输入hostname生效
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  4. 配置 /etc/hosts文件,追加以下内容(三台虚拟机都执行) 命令为 vi /etc/hosts
    192.168.91.131 master ----->前面一定要是你的虚拟机名称所对应的ip地址
    192.168.91.132 slave01
    192.168.91.133 slave02
    在这里插入图片描述
  5. 生成公钥和私钥并设置无密码登录
    (1)生成公钥和私钥(三台虚拟机都执行) ssh-keygen -t rsa 一路回车即可(三次回车)
    在这里插入图片描述
    (2)将公钥追加到到authorized_keys中并赋予authorized_keys 600权限(三台虚拟机都执行):
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys

    在这里插入图片描述
    (3)将master节点上的authoized_keys远程传输到slave01和slave02的~/.ssh/目录下(仅在master虚拟机执行)
    scp /root/.ssh/authorized_keys root@slave01:/root/.ssh/
    scp /root/.ssh/authorized_keys root@slave02:/root/.ssh/

    在这里插入图片描述
    在这里插入图片描述
    (4)验证无密码登录 : ssh slave01 不需要输入密码即可登录 exit:退出 (master虚拟机执行)
    在这里插入图片描述
  6. 配置Java环境(此步骤要在master虚拟机中执行)
    (1)安装jdk和hadoop 使用 winscp 进行传输(master虚拟机执行)
    (2)在master虚拟机上创建一个software目录 cd/opt/
    mkdir software
    在这里插入图片描述
    (3)使用winscp连接到master虚拟机,将jdk和hadoop的压缩包传到/opt/software目录下
    在这里插入图片描述
    在这里插入图片描述
    (4)在master中进行jdk的解压操作:tar zxvf jdk-8u241-linux-x64.tar.gz
    修改文件名为: mv jdk1.8.0_241/ jdk1.8
    在这里插入图片描述
    (5)在master中配置jdk环境变量: vi /etc/profile 在末尾追加:

export JAVA_HOME=/opt/software/jdk1.8
export JRE_HOME=/opt/software/jdk1.8/jre
CLASSPATH=.:$JRE_HOME/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export HADOOP_HOME=/opt/software/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述
(6)在master中刷新环境变量 source /etc/profile
验证是否安装成功: java -versionjavac
在这里插入图片描述
16. 配置hadoop环境(此步骤要在master虚拟机中执行)
(1)解压hadoop:tar zxvf hadoop-2.6.5.tar.gz
(2)解压后在hadoop安装目录下创建tmp、logs、hdfs、hdfs/name、hdfs/data五个文件夹
在这里插入图片描述
(3)使用winscp软件进行配置文件的更改:配置文件都在hadoop2.6.5/etc/hadoop下(注意修改后保存)
① hadoop-env.sh
修改第25行的 ${JAVA_HOME}为自己的jdk安装目录(/opt/software/jdk1.8)
在这里插入图片描述
在这里插入图片描述
② yarn-env.sh
修改第23行, 解注释(export JAVA_HOME=/home/y/libexec/jdk1.6.0/)
修改为自己的jdk安装目录(/opt/software/jdk1.8)
在这里插入图片描述
在这里插入图片描述
③ slaves 将localhost 改为slave01 slave02
在这里插入图片描述
在这里插入图片描述
④ 配置 core-site.xml文件
在这里插入图片描述
在这里插入图片描述
⑤ 配置hdfs-site.xml文件
在这里插入图片描述
在这里插入图片描述
⑥ 配置yarn-site.xml文件
在这里插入图片描述
在这里插入图片描述
⑦ 在master命令行中执行以下命令(在opt/software/hadoop-2.6.5/etc/hadoop/目录下执行)
cd /opt/software/hadoop-2.6.5/etc/hadoop/
cp mapred-site.xml.template mapred-site.xml

在这里插入图片描述
⑧ 修改mapred-site.xml文件
在这里插入图片描述
在这里插入图片描述
(4)将master中配置好的环境通过scp命令传递给slave01和slave02
① 在master中将software文件夹拷贝到slave01和slave02的opt目录下
scp -r /opt/software/ root@slave01:/opt/
scp -r /opt/software/ root@slave02:/opt/

② 在master中将/etc/profile文件拷贝到slave01heslave02的/etc目录下
scp /etc/profile root@slave01:/etc/
scp /etc/profile root@slave02:/etc/
在这里插入图片描述
刷新slave01和slave02中的环境变量 验证java和hadoop是否配置成功(可以三台虚拟机都执行)
source /etc/profile:刷新
java -version && java & javac:验证java环境变量
hadoop version:验证hadoop环境变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(5)锁定时间同步(三台虚拟机都执行)
安装时间同步软件ntpdate
yum -y install ntp ntpdate

在这里插入图片描述
和网络时间进行同步
ntpdate cn.pool.ntp.org

在这里插入图片描述
把时间写入硬件进行锁定
hwclock --systohc

在这里插入图片描述
(6)在master中进行格式化操作
① 进入hadoop-2.6.5/bin目录 cd /opt/software/hadoop-2.6.5/bin/
在这里插入图片描述
② 执行以下命令进行格式化: ./hdfs namenode -format

  1. 出现successfully formatted 表示成功
  2. 如果没有成功,做以下操作:
    a. 检查并修改出错的配置文件(修改后一定要传给slave01和slave02一份)
    将特定的配置文件传递给slave01或slave02:
    scp /opt/software/hadoop-2.6.5/etc/hadoop/mapred-site.xml root@slave02:/opt/software/hadoop-2.6.5/etc/hadoop/
    b. 删除三个主机上的hdfs中的name和data文件夹(三台虚拟机都执行)
    cd /opt/software/hadoop-2.6.5
    rm -rf hdfs/

    在这里插入图片描述
    c. 重新新建hdfs目录和hdfs/data 和hdfs/name 目录(三台虚拟机都执行)
    mkdir /opt/software/hadoop-2.6.5/hdfs
    mkdir /opt/software/hadoop-2.6.5/hdfs/data
    mkdir /opt/software/hadoop-2.6.5/hdfs/name

    在这里插入图片描述
    d. 重新格式化(master中执行)
    ./hdfs namenode -format

    在这里插入图片描述
  1. 启动集群服务(master中执行)
    (1)启动hdfs服务:
    ① 进入到特定目录 cd /opt/software/hadoop-2.6.5/sbin/
    ② 启动hdfs服务 ./start-dfs.sh
    ③ 查看当前进程 jps
    ④ 出现以下结果代表集群启动成功:启动
    master中输入jps出现 NameNode 和 SecondaryNameNode
    slave01 和 slave02中注入jps出现 DataNode
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (2)启动yarn服务
    ① 进入到特定目录 cd /opt/software/hadoop-2.6.5/sbin/
    ② 启动yarn服务 ./start-yarn.sh
    ③ 出现以下结果代表集群启动成功:启动
    master中输入jps多了 ResourceManager
    slave01 和 slave02中注入jps多了 NodeManager
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (3) 同时启动hdfs和yarn服务:直接执行 hdfs-all.sh
  2. 测试(访问相关网站)
    (1)访问http://192.168.216.129:50070
    在这里插入图片描述
    (2)访问:http://192.168.216.129:8088
    在这里插入图片描述
    到此就全部结束了!

HDFS常用命令:
hdfs dfs -mkdir /test:在hdfs根目录创建一个名为test的空目录(hadoop fs -mkdir /test);
hdfs dfs -ls /:查看根目录文件;
hdfs dfs -put /opt/software/upload.txt /test:上传指定文件到hdfs指定目录;
hdfs dfs -get /test/upload.txt /opt/software/:下载hdfs中指定文件到本地的指定目录。
在这里插入图片描述

开启、关闭集群操作:

  1. 开启VMware
  2. 分别启动三台虚拟机
  3. 使用xshell连接虚拟机
  4. 开启集群 start-all.sh(只在master中执行)
  5. 关闭集群 stop-all.sh(只在master中执行)
    在这里插入图片描述
  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值