Linux 环境(Ubuntu)部署 Hadoop 环境

前置准备

  • 准备三台机器 cat /etc/hosts
192.168.1.7 hadoop-master
192.168.1.11 hadoop-slave01
192.168.1.12 hadoop-slave02
  • Linux 环境 cat /etc/os-release
PRETTY_NAME="Ubuntu 24.10"
NAME="Ubuntu"
VERSION_ID="24.10"
VERSION="24.10 (Oracular Oriole)"
VERSION_CODENAME=oracular
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=oracular
LOGO=ubuntu-logo
  • 配置三台机器免密登录
    参考 https://blog.csdn.net/xchenhao/article/details/105005312

  • 在三台机器配置 JDK 环境
    参考 https://blog.csdn.net/xchenhao/article/details/144866090

  • Hadoop
    下载 https://hadoop.apache.org/releases.html

规划

hadoop-masterhadoop-slave01hadoop-slave02
HDFSNameNode
DataNode
DataNodeSecondary
NameNode
YARNNodeManager
JobHistoryServer
ResourceManager
NodeManager
NodeManager

操作

在 hadoop-master 执行

# 下载 hadoop 压缩包
$ wget https://dlcdn.apache.org/hadoop/common/hadoop-3.4.1/hadoop-3.4.1.tar.gz$ mkdir /opt
$ tar xvf hadoop-3.4.1.tar.gz -C /opt$ cd /opt/hadoop-3.4.1# 配置 HADOOP_HOME 环境变量
$ echo 'export HADOOP_HOME=/opt/hadoop-3.4.1' >> /etc/profile
# 将 hadoop 相关命令添加至 PATH 中
$ echo 'export PATH=$HADOOP_HOME/bin:$PATH' >> /etc/profile
source /etc/profile# 查看 hadoop 版本
$ hadoop version
Hadoop 3.4.1
Source code repository https://github.com/apache/hadoop.git -r 4d7825309348956336b8f06a08322b78422849b1
Compiled by mthakur on 2024-10-09T14:57Z
Compiled on platform linux-x86_64
Compiled with protoc 3.23.4
From source with checksum 7292fe9dba5e2e44e3a9f763fce3e680
This command was run using /opt/hadoop-3.4.1/share/hadoop/common/hadoop-common-3.4.1.jar# 创建 hadoop 数据目录
$ mkdir $HADOOP_HOME/data

在 hadoop-master 调整配置

  • $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    在文件中添加
JAVA_HOME=/opt/jdk1.8.0_431
  • $HADOOP_HOME/etc/hadoop/core-site.xml
<configuration><!--hdfs 的 配置--><!-- 设置 namenode 节点 --><!-- 注意: hadoop1.x时代默认端⼝9000 hadoop2.x时代默认端⼝8020 hadoop3.x时 代默认端⼝ 9820 --><property><name>fs.defaultFS</name><value>hdfs://hadoop-master:9820</value></property> <!-- hdfs的基础路径,被其他属性所依赖的⼀个基础路径 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop-3.4.1/data</value></property><!--配置 HDFS 网页登录使用的静态用户为 xchenhao --><property><name>hadoop.http.staticuser.user</name><value>xchenhao</value></property>
</configuration>
  • $HADOOP_HOME/etc/hadoop/hdfs-site.xml
<configuration><!-- namenode 守护进程的http地址:主机名和端⼝号。参考守护进程布局 --><property><name>dfs.namenode.http-address</name><value>hadoop-master:9870</value></property><!--secondarynamenode 守护进程的 http 地址:主机名和端⼝号。参考守护进程布局 --><property><name>dfs.namenode.secondary.http-address</name><value>hadoop-slave02:9868</value></property>
</configuration>
  • $HADOOP_HOME/etc/hadoop/mapred-site.xml
<configuration><!--指定 MapReduce 程序运行在Yarn上--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!--历史服务器端地址--><property><name>mapreduce.jobhistory.address</name><value>hadoop-master:10020</value></property><!--历史服务器 web 端地址--><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop-master:19888</value></property>
</configuration>
  • $HADOOP_HOME/etc/hadoop/workers
hadoop-master
hadoop-slave01
hadoop-slave02
  • $HADOOP_HOME/etc/hadoop/yarn-site.xml
<configuration><!--指定 MR 走 shuffle --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--指定 ResourceManager 的地址--><property><name>yarn.resourcemanager.hostname</name><value>hadoop-slave01</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><!--开启日志聚集功能--><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>
</configuration>

将 hadoop-master 相关文件分发至 hadoop-slave01、hadoop-slave02

文件或目录
/opt/hadoop-3.4.1
/etc/profile

注:可用 rsync 命令进行文件分发 xrsync.sh /opt/hadoop-3.4.1
脚本如下:

#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍历集群所有机器
for host in hadoop-master hadoop-slave01 hadoop-slave02
doecho ==================== $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:$pdirelseecho $file does not exists!fidone
done

验证

(1)准备群集启/停脚本 xhadoop.sh
脚本如下:

#!/bin/bashif [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 in
"start")echo " =================== 启动hadoop集群==================="echo " ---------------启动hdfs ---------------"ssh hadoop-master "source /etc/profile && $HADOOP_HOME/sbin/start-dfs.sh"echo " ---------------启动yarn ---------------"ssh hadoop-slave01 "source /etc/profile && $HADOOP_HOME/sbin/start-yarn.sh"echo " ---------------启动historyserver ---------------"ssh hadoop-master "source /etc/profile && $HADOOP_HOME/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭hadoop集群==================="echo " ---------------关闭historyserver ---------------"ssh hadoop-master "source /etc/profile && $HADOOP_HOME/bin/mapred --daemon stop historyserver"echo " ---------------关闭yarn ---------------"ssh hadoop-slave01 "source /etc/profile && $HADOOP_HOME/sbin/stop-yarn.sh"echo " ---------------关闭hdfs ---------------"ssh hadoop-master "source /etc/profile && $HADOOP_HOME/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac

(2)启动集群

$ xhadoop.sh start=================== 启动hadoop集群===================---------------启动hdfs ---------------
Starting namenodes on [hadoop-master]
Starting datanodes
Starting secondary namenodes [hadoop-slave02]---------------启动yarn ---------------
Starting resourcemanager
Starting nodemanagers---------------启动historyserver ---------------

(3)查看各机器 hadoop 组件进程

$ jpsall.sh
=============== hadoop-master ===============
12245 DataNode
12549 NodeManager
12729 JobHistoryServer
12108 NameNode
12959 Jps
=============== hadoop-slave01 ===============
11584 DataNode
12368 Jps
11907 NodeManager
11775 ResourceManager
=============== hadoop-slave02 ===============
7446 SecondaryNameNode
7558 NodeManager
7309 DataNode
7791 Jps

脚本如下

#!/bin/shfor host in hadoop-master hadoop-slave01 hadoop-slave02
doecho =============== $host ===============ssh $host "source /etc/profile && $JAVA_HOME/bin/jps"
done

(4)相关后台

NameNode 相关信息 Web 后台http://hadoop-master:9870
Yarn Web 后台http://hadoop-slave01:8088
HistoryServer 后台http://hadoop-master:19888

(5)停止集群

$ xhadoop.sh stop
$ jpsall.sh

参考

https://blog.csdn.net/huxili2020/article/details/117809913

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

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

相关文章

IDEA中Maven依赖包导入失败报红的潜在原因

在上网试了别人的八个问题总结之后依然没有解决&#xff1a; IDEA中Maven依赖包导入失败报红问题总结最有效8种解决方案_idea导入依赖还是报红-CSDN博客https://blog.csdn.net/qq_43705131/article/details/106165960 江郎才尽之后突然想到一个原因&#xff1a;<dep…

JavaScrip中对于数组的操作的方法(!!是否改变原数组)

1. push() 功能&#xff1a;向数组的末尾添加一个或多个元素&#xff0c;并返回新数组的长度。&#xff08;改变原数组&#xff09;示例&#xff1a; let arr [1, 2, 3]; arr.push(4); // [1, 2, 3, 4] 2. pop() 功能&#xff1a;移除数组的最后一个元素&#xff0c;并返回…

C语言基本知识复习浓缩版:标识符、函数、进制、数据类型

C语言基本知识复习浓缩版&#xff1a;标识符、函数、进制、数据类型 【c语言期末复习3小时速成【完整全集】期末速成含考试题c语言期末速成突击复习C语言补考C语言期末大一】 B站看到的复习C语言视频&#xff0c;感觉非常棒&#xff0c;就跟着进行了一下学习。众所周知&#…

GMDH自组织网络模型时间序列预测,可预测未来

GMDH自组织网络模型时间序列预测&#xff0c;可预测未来 目录 GMDH自组织网络模型时间序列预测&#xff0c;可预测未来效果一览基本介绍模型构建程序设计学习总结参考资料 效果一览 基本介绍 GMDH自组织网络模型是自组织数据挖掘中的一种模型方法&#xff0c;是基于计算机科学和…

【docker系列】可视化Docker 管理工具——Portainer

1. 介绍 Portainer是一个可视化的Docker操作界面&#xff0c;提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作&#xff08;包括上传下载镜像&#xff0c;创建容器等操作&#xff09;、事件日志显示、容器控制台操作、Swarm集群和服务等集中管理和操作、登录…

开源靶场1

我来为您介绍一些知名的开源漏洞靶场平台: DVWA (Damn Vulnerable Web Application) 最流行的 Web 漏洞靶场之一包含 SQL 注入、XSS、文件包含等常见漏洞基于 PHP MySQL适合 Web 安全入门学习 WebGoat OWASP 开源项目基于 Java包含大量 Web 安全漏洞练习提供详细的教程和解…

Linux/Ubuntu/银河麒麟 arm64 飞腾FT2000 下使用 arm64版本 linuxdeployqt 打包Qt程序

文章目录 一、前言二、环境三、准备1、下载Linuxdeployqt源码2、下载Appimagetool-aarch64.AppImage四、编译linuxdeployqt1.配置环境变量2.编译linuxdeployqt五、安装patchelf六、配置Appimagetool七、打包Qt程序重要提示:测试启动应用八、其他九、最后一、前言 因为项目需要…

OpenCV相机标定与3D重建(49)将视差图(disparity map)重投影到三维空间中函数reprojectImageTo3D()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 将视差图像重投影到3D空间。 cv::reprojectImageTo3D 是 OpenCV 库中的一个函数&#xff0c;用于将视差图&#xff08;disparity map&#xff09…

Python 通过命令行在 unittest.TestCase 中运行单元测试

文章目录 unittest 模块简介编写单元测试在命令行中运行所有测试在命令行中运行单个测试使用装饰器跳过测试总结常用断言方法 unittest 模块简介 unittest是Python标准库中的一个模块&#xff0c;用于编写和运行单元测试。它提供了一个单元测试框架&#xff0c;使得编写测试用…

Rabbitmq Fanout如何保证不重复消费及应用场景

rabbitmq fanout业务场景&#xff0c;一个交换机对应多个队列&#xff0c;不会重复消费吗 在 RabbitMQ 中&#xff0c;使用 Fanout 类型的交换机时&#xff0c;确实可以将一个交换机绑定到多个队列。每当有消息发布到这个交换机时&#xff0c;交换机会把消息广播到所有绑定的队…

pg数据库运维经验2024

这篇文章主要是讲pg运维常见问题&#xff0c;两三年见一次的疑难杂症就不说了。 主要是技术性运维总结&#xff0c;主打通俗易懂和快速上手&#xff0c;尽量避免源码层面等深入分析。 SQL性能与执行计划 执行计划突变 pg官方不支持hint功能&#xff0c;并且计划永远不支持&…

缓存-Redis-常见问题-缓存击穿-永不过期+逻辑过期(全面 易理解)

缓存击穿&#xff08;Cache Breakdown&#xff09; 是在高并发场景下&#xff0c;当某个热点数据在缓存中失效或不存在时&#xff0c;瞬间大量请求同时击中数据库&#xff0c;导致数据库压力骤增甚至崩溃的现象。为了解决这一问题&#xff0c;“永不过期” “逻辑过期” 的策略…

Hadoop 实战笔记(一) -- Windows 安装 Hadoop 3.x

环境准备 安装 JAVA 1.8 Java环境搭建之JDK下载及安装下载 Hadoop 3.3.5 安装包 Hadoop 下载&#xff1a;https://archive.apache.org/dist/hadoop/common/ 一、JAVA JDK 环境检查 二、Hadoop(HDFS)环境搭建 1. 解压安装文件 hadoop-3.3.5.tar 2. 配置环境变量 HADOOP_HO…

点赞模块的实现思路

在现代应用程序中&#xff0c;点赞功能已经成为用户互动的重要方式。无论是社交媒体平台、新闻网站还是在线论坛&#xff0c;点赞功能都可以帮助用户表达对内容的认可和喜爱。 点赞功能的基本原理是将用户对某个内容的赞记录到数据库中。当用户点击点赞时&#xff0c;系统会检…

个人博客搭建(二)—Typora+PicGo+OSS

个人博客站—运维鹿: http://www.kervin24.top CSDN博客—做个超努力的小奚&#xff1a; 做个超努力的小奚-CSDN博客 一、前言 博客搭建完一直没有更新&#xff0c;因为WordPress自带的文档编辑器不方便&#xff0c;以前用CSDN写作的时候&#xff0c;习惯了Typora。最近对比了…

【向量数据库】搜索算法

最近几年&#xff0c;一种叫做向量数据库的产品&#xff0c;正趁着AI的热潮开始崭露头角。伴随着AI时代的到来&#xff0c;向量将成为一种重要的数据形式&#xff0c;而传统数据库并不适合用来存储和检索向量数据&#xff0c;因此我们大约需要一种专门设计的数据库来处理这些问…

前端开发中常用的插件库

ahooks 一个高质量且可靠的React Hooks库。class-variance-authority&#xff08;CVA&#xff09; 是一个专注于解决CSS类管理问题的库。classnames 是一个在React开发中非常流行的JavaScript工具库&#xff0c;它可以帮助开发者有条件地连接类名字符串。copy-to-clipboard 一个…

什么是cline?

Cline 是一个功能强大的 AI 编程助手&#xff0c;专为 Visual Studio Code&#xff08;VSCode&#xff09;设计。它通过结合大语言模型&#xff08;如 Claude、GPT 等&#xff09;和工具链&#xff0c;帮助开发者自动化任务、生成代码、执行命令等。以下是对 Cline 的深入理解和…

启动tomcat出现的The JRE_HOME environment variable is not defined correctl

很久没使用Tomcat了&#xff0c;最近配置JDK 17 Tomcat 10&#xff0c;竟然报错 the JRE_HOME environment variable is not defined correctly很明显就是环境变量没有配置 JRE_HOME这个变量&#xff0c;但我明明是环境变量是配置了JAVA_HOME以及JRE_HOME这两个变量。 奇怪了…

ARM CCA机密计算安全模型之安全生命周期管理

安全之安全(security)博客目录导读 目录 一、固件启用的调试 二、CCA系统安全生命周期 三、重新供应 四、可信子系统与CCA HES 启用 CCA&#xff08;机密计算架构&#xff09;的安全系统是指 CCA 平台的实现处于可信状态。 由于多种原因&#xff0c;CCA 启用系统可能处于不…