(入门教程)centos-7系统下的Hadoop分布式集群配置部署

(入门教程)centos-7系统下的Hadoop分布式集群配置部署,第1张

环境准备:

我的集群是三个节点,主机名分别为master slave1 slave2

主机名修改

可以用hostnamectl set-hostname

hostnamectl set-hostname master
hostnamectl set-hostname slvae1
hostnamectl set-hostname slave2

修改之后可以用bash 立即执行

bash

在三个节点分别查询一下IP地址 使用ifconfig命令

ifconfig
修改hosts文件

查看并复制三个节点的IP地址 用于修改hosts文件

vi /etc/hosts

进入hosts文件后按键盘上的i键进入编辑模式,在文件中 添加三个节点的IP和主机名

192.168.8.130 master
192.168.8.131 slave1
192.168.8.132 slave2 

按ESC键退出编辑模式 再输入:wq保存并退出文件

三个节点分别关闭防火墙
systemctl stop firewalld
同步时间使用tzselect
tzselect

根据选项分别键入5 9 1 1

当提示:

You can make this change permanent for yourself by appending the line
        TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai    输入

timedatectl set-timezone 'Asia/Shanghai'

然后三个节点分别下载ntp

yum install -y ntp

master是ntp的主服务器,在master上面修改ntp的配置文件

vi /etc/ntp.conf

在文件中添加

server 127.127.1.0
fudge  127.127.1.0  stratum  10 #stratum这个数据0-15都可以

重启ntp服务

/bin/systemctl restart ntpd.service

然后就是从节点同步(slave1 slave2)等个五六分钟吧 然后登录两个从节点

ntpdate master
配置SSH免密

三个节点分别产生公私密钥

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

密钥产生的目录在用户主目录下的.ssh文件中  可以查看

cd ~/.ssh

id_dsa为私钥 id_dsa.pub为公钥 把公钥文件复制为authorized_keys文件(只在主节点的.ssh/路径下 *** 作)

cat id_dsa.pub >> authorized_keys

 然后就可以实现ssh内回环 即可以在主节点上连接自己

ssh master

分别登录两个从节点,并打开.ssh文件使用scp命令远程登录主节点,并且复制主节点的公钥文件到当前目录下,并重命名为master_dsa.pub 这个需要密码验证 

scp master:~/.ssh/id_dsa.pub ./master_dsa.pub
cat master_dsa.pub >> authorized_keys

这样以后主节点就可以连接两个从节点了,在主节点键入ssh 命令

ssh slave1
ssh slave2

第一次登录需要输入密码,之后就不需要啦 

安装jdk

安装jdk可以先在主节点进行 *** 作,主节点安装配置好以后复制给两个从节点。首先查询一下系统是否自带有jdk

java -version

 如果提示有jdk,就键入命令卸载掉

rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

再次输入java -version查询一下是否卸载成功

把上传的jdk压缩包解压到当前目录(tar -zxvf 后面跟的就是压缩包名)

tar -zxvf jdk-8u212-linux-x64.tar.gz

 然后配置环境变量修改profile文件

vim /etc/profile

 在文件底部加入一下内容

export JAVA_HOME=/home/happy/jdk1.8.0_212   #jdk的安装目录
export PATH=$PATH:$JAVA_HOME/bin$PATH

退出文件并执行立即生效的命令

source /etc/profile

然后可以用java -version查询一下安装结果

主节点的jdk安装好以后,可以使用scp命令复制给从节点,后面Hadoop的安装配置也是这样 *** 作的。scp -r +jdk的路径 root@主机名:从节点准备放置jdk的目录(scp命令使用之前 记得把从节点系统自带的jdk先删除掉,和主节点 *** 作步骤一样。

scp -r /home/happy/jdk1.8.0_212 root@slave1:/home/happy/
scp -r /home/happy/jdk1.8.0_212 root@slave2:/home/happy/

然后把profile文件也复制到从节点上

scp -r /etc/profile root@slave1:/etc/
scp -r /etc/profile root@slave2:/etc/

 然后分别在两个从节点上面执行立即生效命令

source /etc/profile

  *** 作完成以后,可以查询一下 java -version

Hadoop的配置部署

Hadoop的安装和配置部署也是现在主节点上完成 *** 作,然后使用scp命令把配置好的环境复制到两个从节点上面去。首先在当前目录解压已经上传好的压缩包

tar -zxvf /home/happy/hadoop-2.7.7.tar.gz

使用cd命令打开Hadoop文件夹

cd /home/happy/hadoop-2.7.7/etc/hadoop

可以使用ll命令查询一下Hadoop文件夹里面的东西,我们要配置的文件大部分都在里面

配置环境变量hadoop-env.sh文件

hadoop-env.sh我们只需要配置jdk的路径就可以了

vim hadoop-env.sh

在文件中找到一行代码:#export JAVA_HOME=${JAVA_HOME}将其修改为

export JAVA_HOME=/home/happy/jdk1.8.0_212   #配置的是你自己的jdk路径

编辑好以后wq保存并退出,Hadoop的环境变量hadoop-env.sh配置完成,此时Hadoop具备了运行时的环境

配置环境变量yarn-env.sh

YARN负责管理Hadoop集群的资源,这个模块也是用JAVA语言开发的,所以同样需要配置其运行时的环境变量jdk

vim yarn-env.sh

在文件比较靠前的部分找到#export JAVA_HOME=/home/y/..../jdk1.6.0/并修改

export JAVA_HOME=/home/happy/jdk1.8.0_212   #配置的是你自己的jdk路径

 编辑好以后wq保存并退出

配置核心组件core-site.xml

这个文件的配置是关于集群中分布式文件系统的入口地址和分布式文件系统中数据落地到服务器本地磁盘位置的。HDFS是分布式存储文件的核心系统,他的入口地址决定了Hadoop集群架构的主节点hdfs://master:9000  协议为hdfs 主机为master也就是主节点 端口号为9000

vim core-site.xml

在文件中添加一下内容


fs.defaultFS
hdfs://master:9000



hadoop.tmp.dir
/home/happy/hadoopdata

配置hdfs-site.xml文件

这个主要是配置数据块副本个数的,在Hadoop集群中,主节点是不存储数据副本的,所以副本都存储在从节点上面,我们这个集群是三台服务器,其中从节点是两个,所以这里的数据块副本数只能配置1或2 。具体的数据块副本这个概念关系到HDFS文件存储数据的机制,我就不做赘述了。

vim hdfs-site.xml


dfs.replication
2

配置YARN资源系统yarn-site.xml

yarn是主从结构,运行在主节点上的守护进程是ResourceManager,负责整个集群资源的管理协调;运行在从节点上的守护进程是NodeManager,负责从节点本地的资源管理协调。Hadoop集群有两大核心模块:HDFS分布式文件系统和MapReduce分布式并行计算框架。MR在运行一个计算任务的时候需要集群的内存和CPU的资源,这个时候MR就会向ResourceManager申请计算需要的集群资源。下面开始配置这个yarn-site.xml

vim yarn-site.xml

yarn.nodemanager.aux-services
mapreduce_shuffle



yarn.resourcemanager.address
master:18040



yarn.resourcemanager.scheduler.address
master:18030



yarn.resourcemanager.resource-tracker.address
master:18025



yarn.resourcemanager.admin.address
master:18141



yarn.resourcemanager.webapp.address
master:18088
配置计算框架mapred-site.xml

前面配置的YARN,主要负责分布式集群的资源管理,现在配置mapred-site.xml是为了将Hadoop MapReduce分布式并行计算框架在运行的时候需要的内存 CPU这些资源交给YARN来协调分配。因为当前文件夹里面是没有mapred-site.xml文件的,所以首先需要用cp命令复制一下

cp mapred-site.xml.template  mapred-site.xml
vim mapred-site.xml


mapreduce.framework.name
yarn

在master里面配置slaves

主节点的角色在配置HDFS分布式文件系统的入口地址已经做了配置说明啦,从节点的角色配置是在slaves文件中进行的。

vim slaves

编辑slaves文件 里面只需要剩下slave1 slave2即可,如下

slave1
slave2 

 现在主节点的配置就已经结束啦。我们可以scp复制到两个从节点就可以啦

scp -r /home/happy/hadoop-2.7.7 root@slave1:/home/happy/
scp -r /home/happy/hadoop-2.7.7 root@slave2:/home/happy/
配置Hadoop启动的系统环境 配置profile文件
vim /etc/profile
# # #Hadoop Path configuration
export HADOOP_HOME=/home/happy/hadoop-2.7.7
export PATH=$HADOOP_HOME/sbin:$PATH

在profile文件中添加如上代码以后执行生效的命令

source /etc/profile

登录两个从节点重复 *** 作profile *** 作

创建数据目录

之前配置那个core-site.xml的时候配置Hadoop集群HDFS分布式文件系统的入口地址hdfs://master:9000还有那个HDFS分布式文件系统存储数据最终落地到各个数据节点上的本地磁盘的那个hadoopdata目录是需要自己创建的(三个节点都要进行这一步 *** 作)

mkdir /home/happy/hadoopdata
启动Hadoop集群

首先格式化一下文件系统HDFS

hdfs namenode -format

然后会出现一堆东西 最后几行会有一个 Exiting with status 0 表示格式化成功 如果是1就是失败

失败的话就排查一下环境配置是不是哪里弄错了。格式化成功以后就可以开始启动集群啦。

Hadoop是主从架构,启动集群的 *** 作需要在主节点master上完成

cd /home/happy/hadoop-2.7.7
sbin/start-all.sh

执行命令后,在提示处输入yes

然后查看进程是否启动输入jps

正常情况下应该是

master里面分别是jps ,resourcemanager ,secondarnamenode ,namenode

 slave1 和slave2 里面分别是jps ,datenode ,nodemanager

Web UI查看集群是否启动成功

在浏览器查看http://master:50070/检查namenode和datanode是否正常

在浏览器查看http://master:18088/查看YARN是否正常

好啦,祝你顺利!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/731232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存