02、Hadoop3.x从入门到放弃,第二章:集群环境搭建

embedded/2025/2/26 13:11:14/

Hadoop3x_0">Hadoop3.x从入门到放弃,第二章:集群环境搭建

一、安装JDK并配置环境变量

/etc/profile中部分代码如下:

在这里插入图片描述

for循环profile.d中的sh文件并使之生效,所以我们只需要在profile.d文件夹下配置我们的my_env.sh文件就好了

vim /etc/profile.d/my_env.sh  ##java conf
export JAVA_HOME=/opt/module/jdk1.8.0_271
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/binsource /etc/profile   使配置文件生效

Hadoop_23">二、安装Hadoop并配置环境变量

vim /etc/profile.d/my_env.sh  ##hadoop conf
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbinsource /etc/profile   使配置文件生效##hadoop目录功能
bin : 里面有hadoop的各种命令工具,如:hdfs存储 mapred计算 yarn调度
etc : 里面有大量的配置信息,如hdfs-site.xml   mapred-site.xml   yarn-site.xml  core-site.xml  works
sbin: 里面也有Hadoop的各种命令工具,如:start-dfs.sh  start-yarn.sh   hadoop-daemon.sh  mr-jobhistory-daemon.sh

三、集群配置

在这里插入图片描述

【注意:】
NameNode \ 2NN \ ResourceManager 都比较耗内存,不能安装在同一台机器上。##配置文件分两种:
1、默认配置文件:存放在各自jar包中hadoop-common-3.1.3.jar/core-default.xmlhadoop-hdfs-3.1.3.jar/hdfs-default.xmlhadoop-yarn-common-3.1.3.jar/yarn-default.xmlhadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml2、自定义配置文件%HADOOP_HOME%/etc/hadoop/下core-default.xmlhdfs-default.xmlyarn-default.xmlmapred-default.xml

1、核心配置文件core-site.xml

    <!-- 指定NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop102:8020</value></property><!-- 指定hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value></property><!-- 配置HDFS网页登录使用的静态用户为atguigu --><property><name>hadoop.http.staticuser.user</name><value>root</value></property>

hdfssitexml_91">2、HDFS配置hdfs-site.xml

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

yarnsitexml_106">3、YARN配置yarn-site.xml

	<!-- 指定MR走shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>hadoop103</value></property><!-- 环境变量的继承 HADOOP_MAPRED_HOME 是 3.1.3的一个小BUG 后续版本不需要配置--><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>

4、MapReduce配置mapred-site.xml

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

四、群起集群

1、配置workers

位置:%HADOOP_HOME%/etc/hadoop/workers新增三台服务器的主机名称:
hadoop102
hadoop103
hadoop104
不允许有任何空格

2、启动集群

> 如果集群是第一次启动,需要在hadoop102节点格式化NameNode格式化NameNode会产生新的集群ID,导致NameNode和D阿塔Node的集群id不一致,集群找不到以往的数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止NameNode和DataNode进程。并且要删除所有机器的data和logs目录,然后再进行格式化hdfs namenode -format

在这里插入图片描述

>启动HDFS  (在一台上启动即可)sbin/start-dfs.sh启动后  jps 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

>在配置了ResourceManeger的节点启动yarnsbin/start-dfs.sh启动后 jps

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

>web端查看HDFS的NameNodehttp://hadoop102:9870可以查看hdfs上存储的数据信息

在这里插入图片描述

>web端查看yarn的resourceManegerhttp://hadoop103:8088可以查看yarn上运行的job信息

在这里插入图片描述

3、常见报错

hdfs启动报错

在这里插入图片描述

将start-dfs.sh,stop-dfs.sh(在hadoop安装目录的sbin里)两个文件顶部添加以下参数#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root将start-yarn.sh,stop-yarn.sh(在hadoop安装目录的sbin里)两个文件顶部添加以下参数#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root【注意:添加后,使用xsync 分发到每台机器上】
【之后就可以使用root账号登陆hdfsyarn了】

如果服务崩溃了起不起来了怎么处理

1、先停掉所有服务
./stop-yarn.sh  ./stop-dfs.sh  (实在不行就kill)2、删掉 data 和 logs
rm -rf ./data ./logs3、格式化 namenode
hdfs namenode -format4、启动集群
sbin/start-dfs.sh    对应的服务器启动 sbin/start-yarn.sh

4、测试HDFS和YARN

##创建目录hadoop fs -mkdir /wcinput##上传文件hadoop fs -put ./myfile/words.txt /wcinput##测试yarn
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、配置历史服务器

为了查看程序的历史运行情况,需要配置下历史服务器。
(如查看http://hadoop103:8088  页面上对应任务的 history)

配置mapred-site.xml

    <!--配置历史服务器端地址--><property><name>mapreduce.jobhistory.address</name><value>hadoop102:10020</value></property><!--历史服务器web端地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop102:19888</value></property>【然后sync 同步至所有服务器】
【重新启动服务】
sbin/start-dfs.sh      对应服务器上 启动 sbin/start-yarn.sh【启动历史服务器】
mapred --daemon start historyserver
(mapred这个命令 在%HADOOP_HOME%/bin目录下)【查看进程】
jps

在这里插入图片描述

【查看历史服务】
http://hadoop102:19888可 执行测试 任务
hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /wcinput /wcoutput2

在这里插入图片描述

6、配置日志聚集功能

在这里插入图片描述

什么叫日志聚集:应用运行完成以后,将程序运行日志信息上传到hdfs系统上日志聚集好处:方便查看程序运行详情,方便开发调试注意:开启日志聚集功能,需要重启NodeManager\ResourceManeger\HistoryServer

配置yarn-site.xml

<!--开启日志聚集功能-->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!--开启日志聚集服务器地址-->
<property><name>yarn.log.server.url</name><value>http://hadoop102:19888/jobhistory/logs</value>
</property><!--设置日志保留时间为7天-->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>
【分发配置】 把这个配置 分发到所有服务器上
【重启服务】
sbin/stop-yarn.sh    
mapred --daemon top historyserver
sbin/stop-dfs.sh   

7、集群常用脚本

#########1、各模块分开启动停止:
>整体启动/停止HDFS
start-dfs.sh  /  stop-dfs.sh >整体启动/停止YARN
start-yarn.sh  /  stop-yarn.sh>启动历史服务器
mapred --daemon start historyserver
##########2、各服务组件的逐一启动停止:
>分别启动/停止HDFS组件
hdfs -daemon start/stop 【namenode /  datanode  / secondarynamenode】>启动/停止YARN
yarn -daemon start/stop  【resourcemanager / nodemanager】【脚本如下】:
#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input..."exit ; 
ficase $1 in
"start")echo "========================启动Hadoop集群========================"echo "========================启动HDFS=============================="ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"echo "========================启动YARN=============================="ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"echo "=======================启动 historyserver====================="ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;"stop")echo "======================关闭 HADOOP 集群========================"echo "======================关闭HDFS==============================="ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"echo "=====================关闭YARN================================"ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo "=====================关闭HDFS================================"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error...";;
esac
#########3、查看所有服务器 进程脚本#!/bin/bashfor host in hadoop102 hadoop103  hadoop104
doecho "====================$host====================="ssh $host jps
done

8、常用的端口号

端口名称Hadoop2.xHadoop3.x
NameNode内部通信端口8020/90008020/9000/9820
NameNode HTTP UI500709870
YARN查看执行任务端口80888088
历史服务器通信端口1988819888

9、集群时间同步

#########查看所有节点ntpd服务转改和开机自启动状态############
systemctl status ntpdsystemctl start ntpdsystemctl is-enabled ntpd########修改hadoop102的ntp.conf配置文件
vim /etc/ntp.conf内容如下:> 授权192.168.73.0~192.168.73.255网段上的所有机器可以从这台机器上查询和同步时间【注释 放开】restrict 192.168.73.0 mask 255.255.255.0 nomodify notrap> 集群在局域网中,不使用其他互联网上的时间 【注释掉】#server 0.centos.pool.ntp.org iburst#server 1.centos.pool.ntp.org iburst#server 2.centos.pool.ntp.org iburst#server 3.centos.pool.ntp.org iburst> 当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为急群众的其他节点提供时间同步server 127.127.1.0fudge 127.127.1.0 stratum 10> 修改hadoop102的/etc/sysconfig/ntpd文件vim /etc/sysconfig/ntpd增加如下内容(让硬件时间与系统时间一起同步)SYNC_HWCLOCK=yes>重启ntpd服务systemctl start ntpd> 设置ntpd服务开机启动systemctl enable ntpd
########其他机器操作#######
>关闭所有节点的ntp服务和自启动systemctl stop ntpdsystemctl disable ntpd> 其他机器配置1分钟与时间服务器同步一次sudo crontab -e*/1 * * * * /usr/sbin/ntpdate hadoop102> 修改任意机器时间sudo date -s "2024-04-07 11:11:11"> 1分钟后查看机器是否与时间服务器同步sudo date

http://www.ppmy.cn/embedded/167269.html

相关文章

数据库 安装initializing database不通过

出现一下情况时&#xff1a; 处理方法&#xff1a; 将自己的电脑名称 中文改成英文 即可通过

【MySQL篇】MySQL操作库

目录 1&#xff0c;创建数据库 2&#xff0c;字符集和校验规则 2.1&#xff0c;查看系统默认字符集和校验规则 2.2&#xff0c;查看数据库支持的字符集 2.3&#xff0c;查看数据库支持的字符集校验规则而 2.4&#xff0c;校验规则对数据库的影响 3&#xff0c;操作数据库…

2025考研国家线首次全面下降,涵盖与24年对比分析!

2025年研考国家线发布&#xff0c;“调剂意向采集系统”将于3月28日开通&#xff1b;“调剂服务系统”将于4月8日开通。 “中国研究生招生信息网”中“调剂意向采集系统”将于3月28日开通&#xff0c;已完成一志愿录取的招生单位可发布调剂信息&#xff0c;有调剂意愿的考生可查…

23贪心算法

分发饼干 class Solution { public:int findContentChildren(vector<int>& g, vector<int>& s) {int i0,j0;int count0;sort(s.begin(),s.end());sort(g.begin(),g.end());while(i<g.size()&&j<s.size()){if(g[i]<s[j]){i;j;count;}else…

练习题:53

目录 Python题目 题目 题目分析 需求理解 关键知识点 实现思路分析 复杂度分析 可能遇到的问题及注意事项 代码实现 代码解释 运行思路 1. 变量初始化 2. 进入 while 循环 3. 执行循环体 4. 循环结束判断 5. 输出结果 结束语 Python题目 题目 使用while循环…

单目摄像头物体深度计算基础原理

三维空间物体表面点位与其在图像中对应点之间的相互关系&#xff0c;必须建立相机成像的几何模型&#xff0c;这些几何模型参数就是相机参数&#xff0c;而相机参数的求解就是相机标定。 相机的参数矩阵包括内参和外参&#xff1a; 外参&#xff1a;决定现实坐标到摄像机坐标。…

python unzip file

要在 Python 中解压文件并显示进度&#xff0c;我们需要在解压过程中跟踪文件的提取进度。由于 zipfile 模块本身不直接支持进度显示&#xff0c;我们可以通过手动计算并使用 tqdm 库来显示进度条。 安装 tqdm 首先&#xff0c;确保你已经安装了 tqdm 库&#xff0c;用于显示…

MAC 安装Tensorflow简单方法

MacOS M1 pro安装tensorflow 1、环境配置&#xff08;必需&#xff09; PYTHON版本&#xff1a;3.11.0&#xff0c;python采用homebrew安装。&#xff08;已有python或更高版本可跳过&#xff0c;更高版本未经过测试&#xff0c;题主自认为可行&#xff09; brew install pyt…