Hadoop3.3.6集群安装

news2024/11/27 22:24:00

Hadoop3.3.6 三节点集群安装

准备工作

准备三台机器,大小为4c8g,主节点为 8c16g。并需要保证网络连通性,每台机器都相互ping一下

1、关闭网络防火墙

# 查看网络防火墙状态
sudo systemctl status firewalld
# 立即停止 firewalld
sudo systemctl stop firewalld
# 防止重启后再次启动,可以禁用防火墙服务
sudo systemctl disable firewalld

2、配置三台机器的节点映射

设置IP映射,在/etc/hosts添加如下内容(每个节点都需修改,)

sudo vi /etc/hosts
192.168.10.100 hadoop100 hadoop100.centos.com 
192.168.10.101 hadoop101 hadoop101.centos.com
192.168.10.102 hadoop102 hadoop102.centos.com

编译生效

source /etc/profile

一、安装java 1.8JDK

java 1.8JDK安装
(每个节点都需要安装,安装的版本和目录保持一致)

二、配置节点间免密登录

1 生成密匙

在每台主机上使用 ssh-keygen 命令生成公钥私钥对:

ssh-keygen

连按三次
在这里插入图片描述

2 免密登录

将 hadoop001 的公钥写到本机和远程机器的 ~/ .ssh/authorized_key 文件中:

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop100 依次输入yes,root用户的密码
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop101
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop102

3 验证免密登录

依次输入,可成功跳转后exit回到hadoop100

ssh hadoop100
exit;
ssh hadoop101
exit;
ssh hadoop102
exit;

4、报错处理

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

修改SSH 配置允许公钥认证


vi /etc/ssh/sshd_config
#将PasswordAuthentication设置成为yes(一般在文件的末尾几行):
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication yes

#vi中使用查找功能快速定位
#进入普通模式(如果您已经在插入模式中),按 Esc 键。
#输入 / 后跟您想要搜索的词或短语。
#按 Enter 键进行搜索。
#n 键:移动到下一个匹配项。
#N 键:移动到上一个匹配项。
#例如,要搜索单词 "PermitRootLogin ",您将输入:/PermitRootLogin 

#修改完成后重启ssh服务
systemctl restart sshd.service
# 查看ssh服务状态
sudo systemctl status sshd

三、 Hadoop安装

1、下载hadoop

hadoop3.3.6官方下载

2、解压缩hadoop-3.3.6.tar.gz 文件

tar -zxvf /opt/soft/hadoop-3.3.6.tar.gz -C /opt/app

-z:使用 gzip 解压缩算法。这是用来解压 .gz 结尾的文件的
-x:提取归档文件的内容
-f:指定要处理的归档文件的名称,后面跟着文件名 hadoop-3.3.6.tar.gz
-C:指定解压后的文件应放置在哪个目录下。在这里,目录是 /opt/app

解压后即可,看到/opt/app/hadoop-3.3.6文件夹

3、配置Hadoop环境变量

vim /etc/profile.d/my_env.sh配置JAVA和Hadoop环境变量(每台机器都需要配置

vim /etc/profile.d/my_env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_281-amd64
export HADOOP_HOME=/opt/app/hadoop-3.3.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

修改后执行【source /etc/profile】命令使其生效

4、配置Hadoop的配置文件

# 进入修改目录
cd /opt/app/hadoop-3.3.6/etc/hadoop/

** (1)、修改 hadoop-env.sh**

export JAVA_HOME=/usr/java/jdk1.8.0_431

** (2)、修改配置文件yarn-env.sh 在文件末尾加上**

export JAVA_HOME=/usr/java/jdk1.8.0_431

(3) 修改配置文件 workers

#删除原有 localhost,添加如下内容
#【不能有空格和空行】
hadoop101
hadoop102

注: 修改下面文件中存在,配置放入其中,且只保留一组的

(4) 修改配置文件core-site.xml

<configuration>
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
    <property>
      <name>fs.defaultFS</name>  
      <value>hdfs://hadoop100:8020</value>  
    </property>  
<!-- 指定Hadoop的临时文件的本地存放路径 -->
    <property>
      <name>hadoop.tmp.dir</name>
      <value>/var/log/hadoop/tmp</value>
    </property>
<!-- 设置HDFS web UI用户身份 -->
	<property>
   	  <name>hadoop.http.staticuser.user</name>
	  <value>root</value>
	</property>
<!-- 配置该root(superUser)允许通过代理访问的主机节点 -->
    <property>
      <name>hadoop.proxyuser.root.hosts</name>
      <value>*</value>
    </property>
<!-- 配置该root(superUser)允许通过代理用户所属组 -->
    <property>
       <name>hadoop.proxyuser.root.groups</name>
       <value>*</value>
    </property>
<!-- 配置该root(superUser)允许通过代理的用户-->
    <property>
       <name>hadoop.proxyuser.root.groups</name>
       <value>*</value>
    </property>
</configuration>

(5) 修改配置文件hdfs-site.xml

<configuration>
<!-- 指定HDFS的主节点的元数据文件的本地存放路径 -->
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/opt/app/hadoop-3.3.6/name</value>
    </property>
<!-- 指定HDFS的数据节点的数据文件的本地存放路径 -->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/opt/app/hadoop-3.3.6/data</value>
    </property>
<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop100:9870</value>
    </property>
<!-- 2nn web端访问地址  NameNode和SecondaryNameNode尽量不要安装在同一台服务器-->
    <property>
         <name>dfs.namenode.secondary.http-address</name>
         <value>hadoop101:50090</value>
    </property>
<!-- 指定HDFS的数据分块的备份数量 -->
    <property>
         <name>dfs.replication</name>
         <value>2</value>
    </property>
</configuration>

(6) 修改配置文件mapred-site.xml

<configuration>
<!-- 指定MapReduce所使用的外部管理框架,这里使用Hadoop 3.3.6自带的YARN资源管理器 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- jobhistory properties -->
<!-- 设置 mapreduce 的历史服务器地址和端口号 -->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>hadoop100:10020</value>
    </property>
<!-- mapreduce 历史服务器的 web 访问地址 -->
    <property>
         <name>mapreduce.jobhistory.webapp.address</name>
         <value>hadoop100:19888</value>
    </property>
</configuration>

(7) 修改配置文件yarn-site.xml

<configuration>
<!-- 指定ResourceManager -->
  <property>
         <name>yarn.resourcemanager.hostname</name>
         <value>hadoop100</value>
  </property>    
  <property>
         <name>yarn.resourcemanager.address</name>
         <value>${yarn.resourcemanager.hostname}:8032</value>
  </property>
  <property>
         <name>yarn.resourcemanager.scheduler.address</name>
         <value>${yarn.resourcemanager.hostname}:8030</value>
  </property>
  <property>
         <name>yarn.resourcemanager.webapp.address</name>
         <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>
  <property>
         <name>yarn.resourcemanager.webapp.https.address</name>
         <value>${yarn.resourcemanager.hostname}:8090</value>
  </property>
  <property>
         <name>yarn.resourcemanager.resource-tracker.address</name>
         <value>${yarn.resourcemanager.hostname}:8031</value>
  </property>
  <property>
         <name>yarn.resourcemanager.admin.address</name>
         <value>${yarn.resourcemanager.hostname}:8033</value>
  </property>
  <property>
         <name>yarn.nodemanager.local-dirs</name>
         <value>/data/hadoop/yarn/local</value>
  </property>
<!-- 开启日志聚集功能 -->
  <property>
         <name>yarn.log-aggregation-enable</name>
         <value>true</value>
  </property>
  <property>
        <name>yarn.nodemanager.remote-app-log-dir</name>
        <value>/data/tmp/logs</value>
  </property>
<!-- 设置日志聚集服务器地址 -->
  <property> 
        <name>yarn.log.server.url</name> 
        <value>http://hadoop100:19888/jobhistory/logs/</value>
        <description>URL for job history server</description>
  </property>
  <property>
       	<name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
  </property>
  <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
  </property>
  <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
	<property>  
        <name>yarn.nodemanager.resource.memory-mb</name>  
        <value>2048</value>  
  </property>  
  <property>  
        <name>yarn.scheduler.minimum-allocation-mb</name>  
        <value>512</value>  
  </property>   
  <property>  
        <name>yarn.scheduler.maximum-allocation-mb</name>  
        <value>4096</value>  
  </property> 
  <property> 
        <name>mapreduce.map.memory.mb</name> 
        <value>2048</value> 
  </property> 
  <property> 
        <name>mapreduce.reduce.memory.mb</name> 
        <value>2048</value> 
  </property> 
  <property> 
        <name>yarn.nodemanager.resource.cpu-vcores</name> 
        <value>1</value> 
  </property>
  <property>
        <name>yarn.application.classpath</name>
        <value>
$HADOOP_HOME/etc/hadoop:$HADOOP_HOME/share/hadoop/common/lib/*:$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs:$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/yarn:$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*
    	  </value>
  </property>
        <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
  <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
  </property>
  <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
  </property>
</configuration>

5、修改hadoop启动命令

# 进入到启动命令所在位置hadoop安装路径下的sbin目录下
cd /opt/app/hadoop-3.3.6/sbin

修改start-dfs.sh,stop-dfs.sh,在文件顶部添加

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

修改 start-yarn.sh,stop-yarn.sh,在文件顶部添加

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

6 、分发程序

拷贝 Hadoop 安装文件到集群节点

scp -qr /opt/app/hadoop-3.3.6 hadoop101:/opt/app
scp -r /opt/app/hadoop-3.3.6 hadoop102:/opt/app

7、 初始化

在 hadoop100上执行 namenode 初始化命令
注:Hadoop 集群只需要一次格式化即可,后续启动无需格式化

hdfs namenode -format

8、启动集群

启动命令

# 启动dfs和yarn 等价于start-all.sh
start-dfs.sh
start-yarn.sh
#或直接使用
start-all.sh

# 启动jobhistory
mr-jobhistory-daemon.sh start historyserver

执行jps查询
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在本地电脑添加映射

在 Windows 下 C:\Windows\System32\drivers\etc\hosts 添加 IP 映射

192.168.10.100 hadoop100
192.168.10.101 hadoop101
192.168.10.102 hadoop102

浏览器打开监控端口界面:

http://hadoop100:9870

在这里插入图片描述
http://hadoop100:8088

在这里插入图片描述
http://hadoop100:19888

在这里插入图片描述

9、停止集群

stop-dfs.sh
stop-yarn.sh

或直接使用
stop-all.sh

#关闭historyserver
mr-jobhistory-daemon.sh stop historyserver

三、集群任务执行

【使用hadoop官方自带的词频统计程序测试】

1 、创建word.txt

opt目录下创建word.txt文件,并编辑

touch  words.txt

vi words.txt
#words.txt 内容
linuxidc yyh 
yyh xplinuxidc 
katy ling 
yeyonghao linuxidc 
xpleaf katy

2、上传单词文本文件至hdfs

hdfs dfs -mkdir /input
hdfs dfs -put /opt/words.txt /input

3、执行WordCount程序

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output

在这里插入图片描述
执行成功后

访问HDFS监控界面【hadoop100:9870】查看/output路径下面生成的单词计数结果文件是否正确

在这里插入图片描述
在这里插入图片描述
报错或者执行不下去

在这里插入图片描述
查看任务状态

hadoop job -status job_1720664609595_0001

常见问题

  1. 资源不足:日志中出现类似 Container is running beyond physical memory limits。
  2. 需要调整 yarn.nodemanager.resource.memory-mb 或任务的内存配置。 数据分片异常:日志中出现
    Split location is invalid。 需要检查输入路径和数据的完整性。
  3. 网络异常:日志中出现 Connection refused。 检查节点间的网络连接和防火墙配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2248658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何制作项目网页

一、背景 许多论文里经常会有这样一句话Supplementary material can be found at https://hri-eu.github.io/Lami/&#xff0c;这个就是将论文中的内容或者补充视频放到一个网页上&#xff0c;以更好的展示他们的工作。因此&#xff0c;这里介绍下如何使用前人提供的模板制作我…

JVM调优篇之JVM基础入门AND字节码文件解读

目录 Java程序编译class文件内容常量池附录-访问标识表附录-常量池类型列表 Java程序编译 Java文件通过编译成class文件后&#xff0c;通过JVM虚拟机解释字节码文件转为操作系统执行的二进制码运行。 规范 Java虚拟机有自己的一套规范&#xff0c;遵循这套规范&#xff0c;任…

已存大量数据的mysql库实现主从各种报错----解决方案(看评论)

背景何谓“先死后生”本文使用技术1、实施流程图2、实施2.1、数据库备份2.2、搭建Mysql的Master-Slave2.2.1、准备工作2.2.2、开始部署2.2.3、账号配置2.2.4、slave 同步配置2.2.5、验证 2.3、Master做数据恢复 结语 背景 计划对已有大量数据的mysql库的主从搭建&#xff0c;使…

数据结构 【双向哨兵位循环链表】

链表的结构分为8中&#xff0c;其实搞懂了单链表和双向哨兵位循环链表&#xff0c;这部分的知识也就掌握的差不多了。双向哨兵位循环链表的结构如下&#xff1a; 下面我从0构建一个双向哨兵位循环链表。 1、准备工作 构建节点结构体&#xff0c;双向循环链表的每一个…

高级AI记录笔记(五)

学习位置 B站位置&#xff1a;红豆丨泥 UE AI 教程原作者Youtube位置&#xff1a;https://youtu.be/-t3PbGRazKg?siRVoaBr4476k88gct素材自备 改良近战AI格挡行为 把近战AI的格挡行为从行为树中单独一个任务分块中给删除掉&#xff0c;因为我们希望敌人在受到伤害后立即进行…

彻底解决 macOS 下Matplotlib 中文显示乱码问题

彻底解决 macOS 下Matplotlib 中文显示乱码问题 在使用 Python 的 Matplotlib 库进行数据可视化时&#xff0c;中文字符的显示常常会出现乱码问题&#xff0c;尤其在 macOS 系统上。在网上找了一大堆方法&#xff0c;花了很久&#xff0c;发现不是要安装各种字体就是要改配置&…

11.25.2024刷华为OD

文章目录 HJ76 尼科彻斯定理&#xff08;观察题&#xff0c;不难&#xff09;HJ77 火车进站&#xff08;DFS&#xff09;HJ91 走格子方法&#xff0c;&#xff08;动态规划&#xff0c;递归&#xff0c;有代表性&#xff09;HJ93 数组分组&#xff08;递归&#xff09;语法知识…

突破性算法:让无人机集群在狭窄空间内穿针引线

导读 在建筑救援、森林搜索等任务中&#xff0c;无人机集群经常会遇到狭窄空间限制和动态障碍物变化等挑战。这些挑战会导致集群内部冲突&#xff0c;或在执行任务时因避让动态障碍物而导致系统混乱。实际应用场景和任务的严格特征往往使得全局搜索难以优化&#xff0c;而局部避…

Python中的简单爬虫

文章目录 一. 基于FastAPI之Web站点开发1. 基于FastAPI搭建Web服务器2. Web服务器和浏览器的通讯流程3. 浏览器访问Web服务器的通讯流程4. 加载图片资源代码 二. 基于Web请求的FastAPI通用配置1. 目前Web服务器存在问题2. 基于Web请求的FastAPI通用配置 三. Python爬虫介绍1. 什…

【Shell】运维快捷键及shell各种不同实际运维场景

一&#xff0c;控制台使用技巧 1&#xff0c;操作快捷键 Ctrlr :可以快速查找历史命令 Ctrll :可以清理控制台屏幕 Ctrla \ Ctrle :移动光标到命令行首\行尾 Ctrlw \ Ctrlk :删除光标之前\之后的内容 2&#xff0c;VIM文件编辑快捷键 快捷键ZZ :文件保存并退出 3&#xff…

SlickGrid复选框

分析 1、先在columns首列添加复选框&#xff1b; 2、在SlickGrid注册刚添加的复选框&#xff1b; 3、添加复选框变化事件&#xff1b; 4、注册按钮点击事件&#xff0c;点击获取已选中的行。 展示 代码 复选框样式&#xff08;CSS&#xff09; .slick-cell-checkboxsel {bac…

基于单片机的智慧小区人脸识别门禁系统

本设计基于单片机的智慧小区人脸识别门禁系统。由STM32F103C8T6单片机核心板、显示模块、摄像头模块、舵机模块、按键模块和电源模块组成。可以通过摄像头模块对进入人员人脸数据进行采集&#xff0c;识别成功后&#xff0c;舵机模块动作&#xff0c;模拟门禁打开&#xff0c;门…

【小白学机器学习33】 大数定律python的 pandas.Dataframe 和 pandas.Series基础内容

目录 0 总结 0.1pd.Dataframe有一个比较麻烦琐碎的地方&#xff0c;就是引号 和括号 0.2 pd.Dataframe关于括号的原则 0.3 分清楚几个数据类型和对应的方法的范围 0.4 几个数据结构的构造关系 list → np.array(list) → pd.Series(np.array)/pd.Dataframe 1 python 里…

Edge浏览器保留数据,无损降级退回老版本+禁止更新教程(适用于Chrome)

3 个月前阿虚就已经写文章告警过大家&#xff0c;Chromium 内核的浏览器将在 127 以上版本开始限制仍在使用 Manifest V2 规范的扩展&#xff1a;https://mp.weixin.qq.com/s/v1gINxg5vMh86kdOOmqc6A 像是 IDM、油猴脚本管理器、uBblock 等扩展都会受到影响&#xff0c;后续将无…

基于Spring Boot的装饰工程管理系统论文

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统装饰工程项目信息管理难度大&#xff0c;容错率低&#x…

路由器的工作原理

网络拓扑结构 主机A&#xff1a; IP地址&#xff1a;10.1.0.1/16 MAC地址&#xff1a;MACA 主机B&#xff1a; IP地址&#xff1a;10.2.0.1/16 MAC地址&#xff1a;MACB 网关G0/0/0&#xff1a; IP地址&#xff1a;10.1.0.2/16 MAC地址&#xff1a;MACC 网关G0/0/1&#…

【深度学习|特征增强模块】FFN(前馈神经网络)和E_FFN(增强型前馈神经网络)是transformer特征增强的重要组成部分!

【深度学习|特征增强模块】FFN&#xff08;前馈神经网络&#xff09;和E_FFN&#xff08;增强型前馈神经网络&#xff09;是transformer特征增强的重要组成部分&#xff01; 【深度学习|特征增强模块】FFN&#xff08;前馈神经网络&#xff09;和E_FFN&#xff08;增强型前馈神…

51单片机从入门到精通:理论与实践指南(一)

单片机在智能控制领域的应用已非常普遍&#xff0c;发展也很迅猛&#xff0c;学习和使用单片机的人员越来越多。虽然新型微控制器在不断推出&#xff0c;但51单片机价格低廉、易学易用、性能成熟&#xff0c;在家电和工业控制中有一定的应用&#xff0c;而且学好了51单片机&…

java写一个石头剪刀布小游戏

石头剪刀布是一款经典的手势游戏,通常由两人参与,玩法简单且充满趣味。玩家通过出示手势代表“石头”、“剪刀”或“布”,并根据规则比较手势决定胜负。它广泛用于休闲娱乐、决策或解压活动。 一、功能简介 用户与计算机对战。 用户输入选择:石头、剪刀或布。 计算机随机生…

MATLAB深度学习(六)——LSTM长短期神经网络原理与应用

LSTM的应用可以参见一个相当好的视频&#xff1a;小车倒立摆最优控制教程 - Part1 Simulink Simscape Multibody仿真建模_哔哩哔哩_bilibili 6.1 序列建模——循环神经网络 循环神经网络RNN是一类专门用于处理序列性数据x&#xff0c;&#xff0c;xn的神经网络结构&#xff0c…