hadoop-3.2.1完全分布式配置 和 群起集群,50070改成了9870端口

前置操作

              jdk和hadoop环境变量要配置好

三台服务器的名称分别是

hadoop112、hadoop113、hadoop114

修改了/etc/hosts文件将三个名称绑定了服务器

例如
hadoop112  192.168.1.112
hadoop113  192.168.1.113
hadoop114  192.168.1.114

注意

hadoop和jdk目录在/opt文件夹下,

其中环境变量如下

如果后面配置文件出现了hadoop路径问题,根据自己的实际环境修改一下

配置地图:

hadoop完全分布式配置表格
  hadoop112 hadoop113 hadoop114
HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

 

修改workers文件(相当于2.x版本的slaves文件)不能有空格和空行

以下操作均是修改配置文件,在  hadoop-3.2.1/etc/hadoop  文件夹下

首先修改workers文件! 不然后面DataNode结点不能全部启动

vim workers

写入:workers记录的是datanode地址 

hadoop112
hadoop113
hadoop114

1)核心配置文件

配置core-site.xml        注意路径问题!

sudo vim core-site.xml

在该文件中编写如下配置 

<!-- 指定HDFS中NameNode的地址 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop112:9000</value>
</property>
 
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
	<name>hadoop.tmp.dir</name>
	<value>/opt/module/hadoop-3.2.1/data/tmp</value>
</property>
<!-- 缓存文件大小 -->
<property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
</property>

(2)HDFS配置文件

2.1、配置hadoop-env.sh

      sudo vim hadoop-env.sh

添加java环境变量的值,可以通过echo $JAVA_HOME得到java的家目录(前提是安装配置好了java)

在文件开头添加即可

      export JAVA_HOME=/opt/module/jdk1.8.0_211/

2.2、配置hdfs-site.xml

      sudo vim hdfs-site.xml

写入文件 注意复制到<configuration>标签内

<!-- 副本数设置为3 -->
<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>
 
<!-- 指定 hadoop 辅助名称节点的地址 -->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop114:50090</value>
</property>

<!-- 指定名称结点缓存数据的路径  -->
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/module/hadoop-3.2.1/data/tmp</value>
</property>

<!-- 指定数据结点缓存数据的路径  -->
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/module/hadoop-3.2.1/data/data</value>
</property>

(3)YARN配置文件

3.1、配置yarn-env.sh

     sudo vim yarn-env.sh 

写入

     export JAVA_HOME=/opt/module/jdk1.8.0_211/

3.2、配置yarn-site.xml

       sudo vim yarn-site.xml

注意复制到<configuration>标签内

<!-- Reducer获取数据的方式 -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
 
<!-- 指定启动YARN的ResourceManager的主机地址 -->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop113</value>
</property>

(4)MapReduce配置文件

4.1、配置mapred-env.sh

           sudo vim mapred-env.sh 

写入

    export JAVA_HOME=/opt/module/jdk1.8.0_211/

4.2、配置mapred-site.xml

      sudo vim mapred-site.xml

<!-- 指定以Yarn方式运行 -->
<property>
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
<property>
     <name>yarn.app.mapreduce.am.env</name>
     <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
     <name>mapreduce.map.env</name>
     <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
     <name>mapreduce.reduce.env</name>
     <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

分发配置文件=====xsync脚本看这篇博客

https://blog.csdn.net/qq_41813208/article/details/102575933

通过xsync脚本分发

执行下面命令,将修改后的hadoop配置文件同步到hadoop113、hadoop114服务器

xsync /opt/moudel/hadoop-3.2.1

检验一下hadoop113、hadoop114服务器的配置文件有没有和hadoop112一样同步了

比如查看一下core-site.xml文件

cat /opt/module/hadoop-3.2.1/etc/hadoop/core-site.xml

是否和hadoop112一样

群起服务器部分

最后群起集群
首先需要退出所有服务器的DataNode、NameNode、SecondaryNameNode进程

关闭输入jps显示除jps的所有进程

注意!!!
        启动hdfs前需要格式化namenode     

如果是第一次使用则需要执行

hdfs namenode -format  

后面不可以使用这条命令,原因如下链接  https://blog.csdn.net/qq_41813208/article/details/100753659

(注意*如果前面以及格式化了就不用再格式化了原因,见博客namenode不能一直格式化的原因)

一、启动hdfs
关闭方法

输入:stop-dfs.sh

启动方法

start-dfs.sh

即可这个脚本文件在hadoop根目录sbin/下

二、启动YARN
巨大的坑需要注意一下!
必须要在hadoop113上启动,原因在于ResourceManeger在hadoop113上!
执行

start-yarn.sh

得到启动结果,如果中途遇到输入密码,则配置一下无密登录

关于无密登录参考这两篇博客:

https://blog.csdn.net/qq_41813208/article/details/102597273

https://blog.csdn.net/qq_41813208/article/details/102575933

全部启动的情况如下图,

启动hdfs时会启动HDFS一行的进程

启动Yarn是会启动YARN一行的进程
 

  hadoop112 hadoop113 hadoop114
HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

最后验证一下 

注意:hadoop-3.x版本的端口由50070改成了9870端口

如果访问不到页面,则关闭服务器的防火墙

在hadoop112上关闭,输入sudo systemctl stop firewalld.service 即可关闭防火墙,就可以访问到下面的页面

永久关闭sudo systemctl disable firewalld.service

浏览器输入hadoop112的ip+9870端口访问页面表示成功!

http://hadoop112:9870

问题解决篇

如果出现其他结点都启动起来了,但是名称结点起不来。说明namenode经过了多次格式化,解决方法是

首先先关闭集群

删除 对应文件(就是前面core-site.xml配置中hadoop.tmp.dir配置对应的路径),然后重新格式化一下。

hdfs namenode -format

原因:https://blog.csdn.net/qq_41813208/article/details/100753659

重新格式化后,启动hdfs 

输入 start-dfs.sh 

 这时候你会发现那么node结点启动起来了。

发布了242 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41813208/article/details/102693026