2020-11-3 centos搭建hadoop完全分布式集群

centos搭建hadoop完全分布式集群

参考链接:
1.完全分布式Hadoop集群在虚拟机CentOS7上搭建https://blog.csdn.net/weixin_41627032/article/details/103328922
2.搭建Hadoop的伪分布式集群 https://www.panziye.com/bigdata/287.html

我是创建了三台虚拟机搭建的hadoop集群 可能也不是真正意义上的完全分布式集群

三台虚拟机的静态ip为(参考个人情况)
(如何设置静态ip见前面的博客)
192.168.58.140(用作master节点)
192.168.58.141(用作slave1节点)
192.168.58.142(用作slave2节点)在这里插入图片描述

修改主机名称

(三台主机都修改)
通过hostnamectl set-hostname 新主机名命令修改三台主机(虚拟机)的主机名,修改后通过hostname命令查看是否修改成功
以master为例:(此张截图来源于参考链接2)
在这里插入图片描述输入vi /etc/hosts命令修改host文件(三台主机都改),加入主机的ip和主机名
2020-11-3 centos搭建hadoop完全分布式集群_第1张图片
重启三台主机 或者用xshell或者securtCRT重新链接后发现主机名称已改变
2020-11-3 centos搭建hadoop完全分布式集群_第2张图片
2020-11-3 centos搭建hadoop完全分布式集群_第3张图片

关闭防火墙

(三台都关闭虚拟机)
通过 firewall-cmd --state查看防火墙状态 running代表开启 not running代表关闭。在这里插入图片描述
通过systemctl stop firewalld.service命令关闭防火墙在这里插入图片描述
通过systemctl disable firewalld.service命令禁止防火墙开机启动
在这里插入图片描述
在参考博客中有一个步骤是永久关闭selinux
在这里插入图片描述
将SELINUX=enforcing改成disabled wq!保存后重启虚拟机使之生效
2020-11-3 centos搭建hadoop完全分布式集群_第4张图片
新建HADOOP用户(三台主机都新建 而且用户和用户组都要相同)
输入adduser hadoop创建用户 passwd hadoop设置密码
2020-11-3 centos搭建hadoop完全分布式集群_第5张图片
查看用户信息
在这里插入图片描述
2020-11-3 centos搭建hadoop完全分布式集群_第6张图片
使用usermod -a -G hadoop hadoop把hadoop用户加入到hadoop用户组 前一个hadoop是用户组名 后一个是用户名
用cat /etc/group|grep hadoop查看结果

在这里插入图片描述
输入vi /etc/sudoers 将hadoop用户赋予root权限 从而可以使用sudo命令
输入hadoop ALL=(root) NOPASSWD:ALL

2020-11-3 centos搭建hadoop完全分布式集群_第7张图片
按esc后输入 :wq!强制保存退出

设置ssh免密登录

(三台主机)
使用hadoop用户重新登录虚拟机
在这里插入图片描述
此部分参考的链接1
配置免密登录基本原理就是,把自己的公钥(一串字符串)复制到别人的authorized_keys文件里,当一个主机要SSH连接另一个主机时,如果本机的authorized_keys文件存有那个主机的公钥,那么就不需要输密码,否则,就连主机SSH自己都要输密码。
需要让master节点自己对自己、自己对所有slave免密
让每一台slave节点都自己对自己、自己对master免密

对于master
进入cd ~/.ssh
执行ssh-keygen -t rsa生成密钥(连按3次回车),
对自身免密ssh-copy-id master
对所有从节点免密 ssh-copy-id slave1 ssh-copy-id slave2,
这个命令就是自动把公钥复制到指定主机的authorized_keys文件中去

对于slave1
进入cd ~/.ssh
执行ssh-keygen -t rsa生成密钥(连按3次回车),
对自身免密ssh-copy-id slave1
对master节点免密ssh-copy-id master
有需要也可以对slave2节点加密 ssh-copy-id slave2

对于slave2
进入cd ~/.ssh
执行ssh-keygen -t rsa生成密钥(连按3次回车),
对自身免密ssh-copy-id slave2
对master节点免密ssh-copy-id master
有需要也可以对slave1节点加密 ssh-copy-id slave1

如果ssh设置成功,那master与slave1、slave2之间是可以免密登录的,即不需要再输入密码
在这里插入图片描述

安装jdk

(三台都要)
安装 linux系统版本的jdk 我选择的是jdk11版本
若使用的secureCRT 可以通过SFTP上传在这里插入图片描述
2020-11-3 centos搭建hadoop完全分布式集群_第8张图片
从本地拖拽即可上传在这里插入图片描述
上传结果
2020-11-3 centos搭建hadoop完全分布式集群_第9张图片在/usr下通过sudo mkdir java命令新建一个java文件夹
在这里插入图片描述

将/tmp中的jdk压缩包通过sudo mv jdk-11.0.7_linux-x64_bin.tar.gz /usr/java命令将其剪切到java文件夹中
通过sudo tar zxvf jdk-11.0.7_linux-x64_bin.tar.gz 解压

在这里插入图片描述
设置jdk环境变量
通过sudo vi /etc/profile打开配置文件在最后输入以下内容
2020-11-3 centos搭建hadoop完全分布式集群_第10张图片
按esc后输入:wq! 强制保存退出

通过source /etc/profile更新环境变量,并通过 java -version 验证:
在这里插入图片描述
安装与配置HADOOP
下载的hadoop版本为:在这里插入图片描述
和安装jdk类似 在/usr目录下新建一个hadoop文件夹
在这里插入图片描述
通过secureCRT中的sftp将压缩包拖拽上传至/tmp文件夹中,并通过mv命令剪切至hadoop文件夹中并进行解压
在这里插入图片描述
hadoopdata在此忽略不要管
修改配置文件/etc/profile,增添以下内容
2020-11-3 centos搭建hadoop完全分布式集群_第11张图片
通过source /etc/profile更新环境变量
通过hadoop version验证
在这里插入图片描述

配置hadoop文件

(三台都要 )
主要配置以下四个文件(截图来自参考博客)
2020-11-3 centos搭建hadoop完全分布式集群_第12张图片
找到这几个配置文件:2020-11-3 centos搭建hadoop完全分布式集群_第13张图片
输入sudo vi hadoop-env.sh 修改hadoop-env.sh文件
添加以下内容:

2020-11-3 centos搭建hadoop完全分布式集群_第14张图片
2020-11-3 centos搭建hadoop完全分布式集群_第15张图片
输入sudo vi core-site.xml 修改core-site.xml文件
添加以下内容:

master、slave1、slave2都是 hdfs://master:9820
不用对应slave1、slave2去修改 反正我修改后 后面有点小问题
2020-11-3 centos搭建hadoop完全分布式集群_第16张图片
这里就出现了上面提到的hadoopdata 在后面执行集群的时候会自动创建这个文件夹 所以这个hadoopdata文件并不是解压出来的

2020-11-3 centos搭建hadoop完全分布式集群_第17张图片
输入sudo vi hdfs-site.xml 修改hdfs-site.xml文件 ,添加以下内容:
2020-11-3 centos搭建hadoop完全分布式集群_第18张图片
在这里插入图片描述
输入sudo vi mapred-site.xml 修改mapred-site.xml文件 ,添加以下内容:

2020-11-3 centos搭建hadoop完全分布式集群_第19张图片
在这里插入图片描述
输入sudo vi yarn-site.xml 修改yarn-site.xml文件 ,添加以下内容:
2020-11-3 centos搭建hadoop完全分布式集群_第20张图片

输入sudo vi slaves修改slaves文件 ,添加以下内容:
(注:slaves文件只对master节点有用 ,有几个slave节点就写几个)
2020-11-3 centos搭建hadoop完全分布式集群_第21张图片

启动与验证环境

这时所有的节点必须开机!
输入sudo chmod -R 777/usr/hadoop 将/usr/hadoop目录赋予777权限,否则后面HDFS格式化可能出错

首先要在master节点上格式化hdfs系统
hdfs namenode -format
2020-11-3 centos搭建hadoop完全分布式集群_第22张图片
在master节点的/usr/hadoop/hadoop-2.8.0/sbin 开启hadoop集群2020-11-3 centos搭建hadoop完全分布式集群_第23张图片
分别在所有节点执行jps命令验证是否成功
(也可以通过ssh免密登录在一台主机操作)
2020-11-3 centos搭建hadoop完全分布式集群_第24张图片
此时说明运行成功。

可进一步验证:
在master主机的浏览器 输入http://192.168.58.140:50070
2020-11-3 centos搭建hadoop完全分布式集群_第25张图片
点击DATANODE:
2020-11-3 centos搭建hadoop完全分布式集群_第26张图片
2020-11-3 centos搭建hadoop完全分布式集群_第27张图片
输入http://192.168.58.140:8080/cluster可看到YARN的ResourceManager界面
2020-11-3 centos搭建hadoop完全分布式集群_第28张图片

来自参考博客提示
如果集群启动后,jps命令给出的结果与正确的不符,比如少了一个或多了一个,那么大多就需要重新格式化,重新格式化不是再执行一遍hdfs namenode -format那么简单,需要把所有节点下的/usr/hadoop/hadoopdata目录的结构按照上面说到的方式重新建立,即把之前的都删了,重新建文件夹。(重建之前记得关闭集群) 之后再格式化、启动

关闭集群./stop-all.sh
在这里插入图片描述
2020-11-3 centos搭建hadoop完全分布式集群_第29张图片

你可能感兴趣的:(hadoop,linux,centos,分布式)