HDFS完全分布式集群搭建与配置及常见问题总结(上)

前期准备工作:

1、打开虚拟机,连接xshell

测试是否可以成功连接外网

例如:ping www.baidu.com

2、主机名的配置

使用cat /etc/hostname命令分别查看主机名称:

[root@node01 ~]# cat /etc/hostname 
node01
[root@node02 ~]# cat /etc/hostname 
node02
[root@node03 ~]# cat /etc/hostname 
node03

3、检查主机域名

使用cat /etc/hosts命令分别检查三台虚拟机

[root@node02 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.67.110 node01 node01.hadoop.com
192.168.67.120 node02 node02.hadoop.com
192.168.67.130 node03 node03.hadoop.com

对应为IP地址 、主机名称(hostname) 、Hadoop映射地址

注:无论Linux系统还是window系统,主机域名都在此文件中设置

4、使用systemctl status firewalld命令分别查看三台虚拟机的防火墙状态

[root@node01 ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

小圆点为灰色并显示dynamic firewall deamon则防火墙为关闭状态

5、检查ssh免密登录

利用ssh命令可以进入任意一个节点上即为成功

[root@node01 ~]# ssh node02
Last login: Thu Sep 15 09:34:35 2022 from 192.168.67.1
[root@node02 ~]# ssh node01
Last login: Thu Sep 15 09:34:34 2022 from 192.168.67.1
[root@node01 ~]# ssh node03
Last login: Thu Sep 15 09:34:38 2022 from 192.168.67.1
[root@node03 ~]# ssh node01
Last login: Thu Sep 15 10:04:11 2022 from node02
[root@node01 ~]# 

6、使用 java -version命令分别检查三台虚拟机的Java环境

[root@node01 ~]# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

检查完成后正式进入HDFS完全分布式环境配置

创建安装目录:

进入opt:cd /opt

创建software文件夹:mkdir software

进入software文件夹:cd software/

创建hadoop文件夹:mkdir hadoop

进入hadoop文件夹:cd hadoop/

创建hdfs文件夹:mkdir hdfs

进入hdfs文件夹:cd hdfs/

创建data、name、tmp目录:

mkdir data

mkdir name

mkdir tmp

进入/opt/software/hadoop/hdfs路径,在此路径下分别存放data、name、tmp三个路径,分别存放对应内容

创建完成后返回到/opt/software/hadoop路径,上传Hadoop安装包:hadoop-2.9.2.tar.gz,上传成功后,使用ll命令查看上传结果

解压hadoop-2.9.2.tar.gz安装包:tar -zxvf hadoop-2.9.2.tar.gz

解压过后生成一个名为hadoop-2.9.2的目录:

hadoop-2.9.2的目录中为整个Hadoop集群中需要用到的东西

其中etc/hadoop中存放所有要用到的配置文件,我们需要从中挑取一些文件来维持Hadoop集群的配置

开始配置HADOOP_HOME  的环境变量

1、进入etc/profile文件中进行编辑

2、在文件的最底部添加以下配置值

单击键盘a键进行编辑

export JAVA_HOME=/usr/local/java/jdk1.8

export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar

export PATH=$PATH:${JAVA_HOME}/bin

编辑完成后,Esc键退出编辑模式

输入   :wq    保存并退出

3、测试Hadoop是否安装成功

[root@node01 ~]# hadoop version
Hadoop 2.9.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 826afbeae31ca687bc2f8471dc841b66ed2c6704
Compiled by ajisaka on 2018-11-13T12:42Z
Compiled with protoc 2.5.0
From source with checksum 3a9939967262218aa556c684d107985
This command was run using /opt/software/hadoop/hadoop-2.9.2/share/hadoop/common/hadoop-common-2.9.2.jar

查看/opt/software/hadoop/hadoop-2.9.2/etc/hadoop路径中的文件 

4、使用vi hadoop-env.sh命令配置hadoop-env.sh文件

[root@node01 hadoop]# vi hadoop-env.sh 

修改JAVA_HOME和HADOOP配置文件的路径

配置值为:

export JAVA_HOME=/usr/local/java/jdk1.8

export HADOOP_CONF_DIR=/opt/software/hadoop/hadoop-2.9.2/etc/hadoop

5、在/opt/software/hadoop/hadoop-2.9.2/etc/hadoop/路径下配置yarn-env.sh文件

[root@node01 hadoop]# cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
[root@node01 hadoop]# vi hadoop-env.sh

删除#号键,并添加JAVA_HOME环境变量

配置值为:

export JAVA_HOME=/usr/local/java/jdk1.8

6、配置core-site.xml

配置namenode ,把文件系统点改成node01

这里有两个配置:

fs.defaultFS是将指定集群的文件系统类型写成分布式文件系统(HDFS)

hadoop.tmp.dir是hadoop的一个临时文件目录

[root@node01 hadoop]# vi core-site.xml

 配置值为:

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://node01:9000</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/opt/software/hadoop/hdfs/tmp</value>

        </property>

7、配置hdfs-site.xml

要实行三副本策略,表示副本数是3,原始dfs.replication是1,改为3

开启缓存

不开启文件权限

因为这个缓存是跟机器的位数是有关系的,所以我们先用ulimit -l命令来查看一下机器位数。

不过我们的虚拟机一般都是64位的系统所以大部分都会显示64。

所以我们需要配置的缓存大小就是64×1024也就是65536;如果是32位的系统,那么配置的缓存就是32×1

[root@node01 hadoop]# ulimit -l
64
[root@node01 hadoop]# vi hdfs-site.xml

配置值为:

<property>

    <name>dfs.replication</name>

    <value>3</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

    <value>file:/opt/software/hadoop/hdfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

    <value>file:/opt/software/hadoop/hdfs/data</value>

</property>

<property>

    <name>dfs.datanode.max.locked.memory</name>

    <value>65536</value>

</property>

<property>

    <name>dfs.permissions</name>

    <value>false</value>

</property>

8、配置mapred-site.xml

此时,我们会发现没有mapred-site.xml文件,只有一个mapred-site.xml.template临时文件。

所以我们把文件重命名或者复制文件就可以了。

重命名:

[root@node01 hadoop]# mv mapred-site.xml.template mapred-site.xml

复制:

[root@node01 hadoop]# cp mapred-site.xml.template mapred-site.xml

接着配置mapred-site.xml

[root@node01 ~]# cd /opt/software/hadoop/hadoop-2.9.2/etc/hadoop/
[root@node01 hadoop]# vi mapred-site.xml

编辑的内容是为了说明mapereduce整个的一个资源分配是使用yarn这样的一个组件

配置值:

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

9、配置yarn-site.xml

在这里要加入三条配置

一个是yarn相关资源服务器的主机名称,也就是resourcemanager,配置为node01。

一个是nodemanager.aux-services,是和MapReduce计算相关的。把这个值赋成mapreduce_shuffle

还有一个nodemanager.vmem-check-enabled是去关闭虚拟内存检查的,把这个值设成false把它关闭掉。

[root@node01 hadoop]# vi yarn-site.xml

配置值:

<!-- Site specific YARN configuration properties -->

<property>

        <name>yarn.resourcemanager.hostname</name>

        <value>node01</value>

</property>

<property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

</property>

<property>

        <name>yarn.nodemanager.vmem-check-enabled</name>

        <value>false</value>

</property>

10、配置slaves文件

去配置datanode需要的一个节点,在文件里写入三个节点主机名称就可以了

[root@node01 hadoop]# vi slaves

以上所有的配置信息就配置完成了。

同步配置信息 

整个配置写完之后就把所有的配置信息在node02,node03上同时分发一份;需要在node02和node03上分别创建一个目录/路径

[root@node02 ~]# cd /opt/
[root@node02 opt]# mkdir software

然后我们将Hadoop01上面整个关于Hadoop的文件都发到02和03上面

也就是把01上的配置同步到02,03上面

[root@node01 ~]# cd /opt/software/
[root@node01 software]# scp -r hadoop/ node02:$PWD
[root@node01 software]# scp -r hadoop/ node03:$PWD

传完之后可以检查一下node02和node03

 可以看到,文件已经传到node02和node03当中

在02和03里去配置Hadoop相关的环境变量

[root@node02 hadoop]# vi /etc/profile
[root@node03 hadoop]# vi /etc/profile

在文件最下放添加配置,配置值为:

export HADOOP_HOME=/opt/software/hadoop/hadoop-2.9.2

export PATH=${PATH}:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin

配置完成后要加载配置文件,使得配置文件生效。简单来说就是刷新一下

[root@node02 hadoop]# source /etc/profile
[root@node03 hadoop]# source /etc/profile

最后检查Hadoop

[root@node02 hadoop]# hadoop version
Hadoop 2.9.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 826afbeae31ca687bc2f8471dc841b66ed2c6704
Compiled by ajisaka on 2018-11-13T12:42Z
Compiled with protoc 2.5.0
From source with checksum 3a9939967262218aa556c684d107985
This command was run using /opt/software/hadoop/hadoop-2.9.2/share/hadoop/common/hadoop-common-2.9.2.jar
[root@node02 hadoop]# 

[root@node03 hadoop]# hadoop version

node02和node03整个的配置已经完成,至此整个前期HDFS完全分布式的配置就已经完成了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值