Hadoop分布式集群搭建

一、 集群规划

hostname ip hdfs yarn
hadoop01 192.168.31.5 namenode、datanode nodemanager
hadoop02 192.168.31.6 datanode resourcemanager、nodemanager
hadoop03 192.168.31.7 datanode、secondary namenodes nodemanager

 

 

 

 

 

 

 

 

 

二、环境准备

hadoop3.0.0

jdk1.8

 

1)3台虚拟机准备,配置静态ip,修改主机名,修改host映射

vi /etc/hosts

hadoop01  192.168.31.5

hadoop02  192.168.31.6

hadoop03  192.168.31.7

2)关闭3台机器的防火墙

systemctl status firewalld  查看防火墙状态

 

 systemctl stop firewalld  关闭防火墙

 

 3)创建hadoop账户

useradd -m hadoop -s /bin/bash   创建hadoop账户

passwd hadoop 设置密码,我这里设置的是123456

 

 4)配置hadoop账户拥有root权限

修改/etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示

 

 注意/etc/sudoers 文件只是可读的,要修改内容,可先将该文件添加可写权限,然后编辑

hadoop  ALL=(ALL)   ALL

保存

 

 保存完毕后,再将文件权限修改回去即可

chmod -w /etc/sudoers 

5) 安装jdk 

先卸载现有的JDK

rpm -qa | grep java #查询是否安装JDK

rpm -qa | grep java | xargs rpm -e --nodeps #卸载所有带java关键字的包

① 自行下载安装包手动安装,可自定义安装目录

将下载好的jdk上传到服务器上,解压重命名为jdk1.8

② 在/etc/profile文件中设置JAVA_HOME

 保存,是文件生效

source /etc/profile

测试 : java  -version 

6)配置ssh

生成秘钥:ssh-keygen -t rsa  直接回车即可

 将公钥写入authorized_keys文件: 

cd ~/.ssh/

cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys

测试 ssh hadoop01

 hadoop-master可以无密码登录自己了

将hadoop-master的公钥传送到所有的slave上,实现hadoop-master无密码登陆到所有slave上

scp authorized_keys hadoop@hadoop02:~/.ssh/

scp authorized_keys hadoop@hadoop03:~/.ssh/

测试 ok 

 同样

设置hadoop02 能够ssh hadoop01、hadoop03

设置hadoop03能够ssh hadoop01、hadoop02

三、hadoop相关文件配置

1)core-site.xml

 2)hdfs-site.xml

 

 

 

 

3)mapred-site.xml

 4)yarn-site.xml

 

 

5)workers

 

 6)hadoop-env.sh、mapred-env.sh、yarn-env.sh中配置JAVA_HOME

export JAVA_HOME=/home/hadoop/software/jdk1.8

四、文件分发

① 安装rsync

切换到root账号,yum  install rsync -y 

注意:3台机器上都要安装rsync

②、编写同步脚本

mdkir script

cd script

vi xrsync.sh

#!/bin/sh
# 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args...;
exit;
fi
# 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
# 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
# 获取当前用户名称
user=`whoami`
# 循环
for((host=2; host<=3; host++)); do
echo $pdir/$fname $user@hadoop0$host:$pdir
echo ==================hadoop0$host==================
rsync -rvl $pdir/$fname $user@hadoop0$host:$pdir
done

chmod  +x xrsync.sh

文件分发

sh xrsync.sh  /home/hadoop/software/hadoop

 

五、配置 hadoop环境变量

vi ~/.bash_profile

 source ~/.bash_profile

分发到另外两天机器上,同时使之生效

六、格式化namenode

 在hadoop01上 :    bin/hadoop namenode -format 格式化namenode,

七、启动集群

 在hadoop01上 :

sbin/start-dfs.sh    启动hdfs

在hadoop02上启动 yarn

sbin/start-yarn.sh

 

查看启动状态

hadoop01:

 

 

 

 

 hadoo02:

 

 hadoop03:

 

安装成功

 

 

 

测试文件上传:hadoop fs -put  ~/software/script/xrsync.sh  /

 

 数据上传成功!

 

注:

启动hadoop集群脚本 start-hadoop.sh

 

 停止hadoop集群脚本 stop-hadoop.sh

 

posted @ 2021-01-22 21:02  楔子  阅读(115)  评论(0)    收藏  举报