Hadoop伪分布式集群的搭建

大数据组件的搭建

一、Hadoop 集群的搭建

1、先检查是否有外网

ping www.baidu.con

2、永久关闭防火墙

systemctl disable firewalld.service
注:一次性关闭命令:systemctl stop firewalld

3、创建一个用户并且设置密码

useradd 用户名(WBH)
passwd 密码(123456)

4、配置普通用户的操作权限(即刚刚所创建的用户)

vim /etc/sudoers
进入之后输入set nu
输入如下所示代码块,赋予权限后退出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YOajpQfX-1680530344722)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230319174059412.png)]

5、在opt目录下面创建两个目录并且赋予所属用户和组

mkdir /opt/module(存放解压后的文件)
mkdir /opt/software(存放压缩的软件包)
改变上述文件夹的所属用户和组
chown WBH:WBH /opt/module (前者为用户后者为组)
chown WBH:WBH /opt/software

6、卸载系统自带的jdk

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

7、重启虚拟机

reboot

此时克隆三台虚拟机,进行以下操作

1、修改虚拟机IP地址为静态IP(每一台都需要设置)

vim /etc/sysconfig/network-scripts/ifcfg-ens33
进入后修改如下内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hXs7GCjZ-1680530344723)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230319175109074.png)]

重启网卡:systemctl restart network
查看当前ip:ifconfig

注意: 要保证Linux系统ifcfg-ens33文件中IP地址、虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

2、修改主机名

vim /etc/hostname

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AC0rxpVp-1680530344723)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230319175611326.png)]

3、修改映射文件

vim /etc/hosts

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LlTetQ5g-1680530344724)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230319175428255.png)]

4、修改Windows主机的Hosts文件

进入C:\Windows\System32\drivers\etc目录下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zwFaS02Z-1680530344724)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230319175953580.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wRStc124-1680530344724)(C:\Users\ASUS\AppData\Roaming\Typora\typora-user-images\image-20230319180212379.png)]

开始安装jdk和Hadoop(在master机器中执行以下操作)

1、首先确定电脑中的jdk是否已经卸载完毕

(1)使用xftp将jdk和hadoop压缩包上传至software目录下面

(2)开始安装jdk

tar -zxvf /opt/software/jdk名字 -C /opt/module/

(3)开始安装hadoop

tar -zxvf /opt/software/hadoop名字 -C /opt/module/

(4)环境变量配置

新建文件夹存放配置的环境变量
sudo vim /etc/profile.d/my_env.sh
进入到此文件夹后添加如下内容
#!/bin/bash
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH=$PATH:/home/WBH/bin

(5)保存退出后加载环境变量

source /etc/profile

(6)验证是否已经安装成功

验证Java是否已经安装成功
java -version
验证hadoop是否已经安装成功
hadoop version

SSH免密登录设置

在根目录输入“ll -a”查看是否有“.ssh”目录

如果没有:

(1)先输入“ssh localhost”

(2)根据提示输入“yes”

(3)输入密码(当前用户密码)

(4)输入“exit”退出,此时就自动创建了.ssh目录

进入到  .ssh目录
cd .ssh

(5)生成公钥和私钥文件

ssh-keygen -t rsa
一路回车

(6)分配密钥对

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2
注:每一台机器都需要执行一次,完成后切换至master机器的root用户,再来一次。

编写集群分发脚本(分发配置方法一,master主机操作)

前提条件:ssh免密登录已经设置成功

(1)创建目录(创建bin目录,然后创建xsync文件)

先在普通用户操作
cd
mkdier bin 
vim bin/xsync

(2)编写分发脚本

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
    echo Not Enough Arguement!
    exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================  $host  ====================
    #3. 遍历所有目录,挨个发送
    for file in $@
    do
        #4. 判断文件是否存在
        if [ -e $file ]
            then
                #5. 获取父目录
                pdir=$(cd -P $(dirname $file); pwd)
 
                #6. 获取当前文件的名称
                fname=$(basename $file)
                ssh $host "mkdir -p $pdir"
                rsync -av $pdir/$fname $host:$pdir
            else
                echo $file does not exists!
        fi
    done
done
备注:注意一定要修改主机名

(3)给脚本赋予权限

cd bin/
chmod 777 xsync
ll

(4)上述过程完成后,命令行输入“su - root”输入密码进入root(管理员)用户把xsync复制到相同位置

su root
mkdir bin 
cp /home/lisa/bin/xsync /root/bin/

(5)利用分发脚本分发配置以及安装包

切换至普通用户
把jdk和hadoop安装到另外两台节点上面
xsync /opt/module 

分发环境变量配置文件(需要切换至普通用户的bin目录下执行)
sudo xsync /etc/profile.d/my_env.sh

成功后切换至另外两台机器重新加载环境变量(另外两台机器都需要来一次)
source /etc/profile
查看jdk和hadoop的安装是否成功
java -version
hadoop version

编写集群分发脚本(分发配置方法二,master主机操作)

(1)设置节点文件

vi hadoop-3.1.3/etc/hadoop/master
master
vi hadoop-3.1.3/etc/hadoop/slaves
slave1
slave2
[root@master hadoop]# scp -r /usr/hadoop/ root@slave1:/usr/
[root@master hadoop]# scp -r /etc/profile slave1:/etc/
[root@slave1 ~]# source /etc/profile

(2)分发组件

scp -r /opt/module/hadoop3.1.3/ root@slave1:/opt/module
scp -r /etc/profile slave1:/etc/
source /etc/profile
注意:slave1和slave2都需要来一遍

给Hadoop进行五个配置文件的添加

(1)进入到配置文件目录

cd /opt/module/hadoop-3.1.3/etc/hadoop

1、进入core-site.xml文件中添加如下内容

<configuration>
<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>

    <!-- 指定hadoop数据的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
</configuration>

2、进入hdfs-site.xml文件中添加如下内容

<configuration>
<!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:9870</value>
    </property>
        <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>slave2:9868</value>
    </property>
</configuration>

3、进入yarn-site.xml文件中添加如下内容

<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>slave1</value>
    </property>

    <!-- 环境变量的继承 -->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>  <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

4、进入mapred-site.xml文件中添加如下内容

<configuration>
<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

5、进入workers文件夹添加如下内容

master
slave1
slave2

(2)分发配置后的环境文件

如果使用的是分发脚本(方法一)则使用此代码进行分发
xsync /opt/module/hadoop-3.1.3/etc/hadoop/
如果使用的是方法二则使用scp命令进行分发,代码演示如上

启动集群

(1)如果是第一次启动需要格式化namenode

hdfs namenode -format
如果不是第一次启动,进入到此文件夹下:
cd /opt/module/hadoop-3.1.3/
rm -rf data (三台机器都需要执行此操作)

(2)启动hdfs(master启动)

进入到sbin目录下
start-dfs.sh
验证方式
jps查看

(2)启动yarn(slave1启动)

进入到sbin目录下
start-yarn.sh
验证方式
jps查看
如果启动集群出现错误,使用如下代码添加文件权限
sudo chmod 777 /opt/module/hadoop-3.1.3/logs

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-28LnvFDD-1680530344725)(D:\WBH\e18f320a1199c78e10a5116dae7d91e.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xzSec5ce-1680530344725)(D:\WBH\977f1b056ad73cc44d6a5d4aab2545c.png)]
amenode -format
如果不是第一次启动,进入到此文件夹下:
cd /opt/module/hadoop-3.1.3/
rm -rf data (三台机器都需要执行此操作)


(2)启动hdfs(master启动)

进入到sbin目录下
start-dfs.sh
验证方式
jps查看


(2)启动yarn(slave1启动)

进入到sbin目录下
start-yarn.sh
验证方式
jps查看


```linux
如果启动集群出现错误,使用如下代码添加文件权限
sudo chmod 777 /opt/module/hadoop-3.1.3/logs

[外链图片转存中…(img-28LnvFDD-1680530344725)]

[外链图片转存中…(img-xzSec5ce-1680530344725)]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

MatthewFelix

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

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

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

打赏作者

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

抵扣说明:

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

余额充值