华为云ECS如何重装环境并手工搭建Hadoop,步骤是什么?

华为云ecs重新安装环境后手工搭建Hadoop集群:完整实操指南

在华为云ECS上重新安装操作系统后,手工搭建多台Linux ECS的Hadoop环境,核心路径是:先规划节点角色,再统一配置SSH免密登录与JDK环境,最后依次安装并启动HDFS和YARN组件。整个过程可以完全通过命令行完成,不依赖任何自动化部署工具,适合学习Hadoop原理或需要精细控制集群配置的场景。

华为云ecs重新安装环境_手工搭建Hadoop环境(多台Linux ECS)

为什么选择手工搭建而不是使用镜像或脚本

很多人在华为云ecs重新安装环境后会纠结:直接用市场镜像一键部署,还是自己动手敲命令,两者有本质区别。

镜像部署节省时间,但屏蔽了大量底层细节,集群出问题时,你往往不知道是哪一层配置错了。手工搭建虽然要多花1-2小时,但你能清晰掌握每个配置文件的作用,这对后续运维和调优非常有价值。

行业共识认为,对于想要深入理解分布式系统原理的开发者,手工搭建至少一次Hadoop集群是必经之路。

华为云ecs重新安装环境后的初始化准备

无论你是重装系统还是新购ECS,都需要先做统一的初始化,这里假设你已经有至少3台Linux ECS,操作系统建议选择CentOS 7.9Ubuntu 20.04,两者在Hadoop生态中都有广泛验证。

基础环境一致性检查

登录每台ECS后,先确认以下几点:

  • 操作系统版本一致,避免因glibc版本差异导致奇怪的兼容性问题
  • 时间同步正常,执行date命令检查,时区建议统一为Asia/Shanghai
  • 主机名规划清晰,例如hadoop-masterhadoop-node1hadoop-node2
  • 安全组规则放行必要端口:8020(NameNode RPC)、9870(NameNode UI)、8088(YARN UI)、8042(NodeManager UI)

主机名修改命令:

hostnamectl set-hostname hadoop-master

修改后编辑/etc/hosts,添加所有节点的IP映射,这是Hadoop集群互相通信的基础。

JDK安装与配置

Hadoop 3.x版本要求JDK 8JDK 11,这里推荐OpenJDK 1.8,兼容性最稳定。

yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

安装后确认版本:

java -version

/etc/profile末尾添加JAVA_HOME环境变量,并执行source /etc/profile使其生效。

多台linux ecs手工搭建hadoop集群:核心配置步骤

这是整个流程的核心部分,一共分为四个阶段,请按照顺序操作,不要跳步。

第一阶段:SSH免密登录配置

Hadoop的NameNode需要通过SSH无密码登录到所有DataNode节点来执行守护进程,这是新手最容易卡住的地方。

主节点上生成密钥对:

ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

将公钥分发到所有节点(包括主节点自己):

ssh-copy-id hadoop-master
ssh-copy-id hadoop-node1
ssh-copy-id hadoop-node2

验证免密登录是否生效:

ssh hadoop-node1 "echo ok"

华为云ECS如何重装环境并手工搭建Hadoop,步骤是什么?

如果不需要输入密码直接输出ok,说明配置成功。

第二阶段:Hadoop安装包准备与目录规划

从Apache官网下载Hadoop 3.3.x稳定版本,上传到主节点的/opt目录下,解压并创建软链接:

tar -zxvf hadoop-3.3.6.tar.gz
ln -s /opt/hadoop-3.3.6 /opt/hadoop

创建数据目录,用于存储NameNode元数据和DataNode数据块:

mkdir -p /data/hadoop/namenode
mkdir -p /data/hadoop/datanode

然后修改/etc/profile,添加HADOOP_HOME环境变量,并将$HADOOP_HOME/bin$HADOOP_HOME/sbin加入PATH。

第三阶段:五个核心配置文件详解

Hadoop的配置集中在$HADOOP_HOME/etc/hadoop/目录下,重点关注以下文件:

core-site.xml:定义文件系统访问入口

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop-master:8020</value>
    </property>
</configuration>

hdfs-site.xml:设置副本数和NameNode/DataNode数据目录

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/hadoop/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/hadoop/datanode</value>
    </property>
</configuration>

这里需要根据你的ECS数量调整dfs.replication,3台ECS时可以设置为3,如果只有2台,建议改为2,否则会有副本不足的告警。

mapred-site.xml:指定MapReduce运行框架

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml:配置ResourceManager和NodeManager

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

workers文件:列出所有DataNode主机名

hadoop-master
hadoop-node1
hadoop-node2

这个文件在Hadoop 3.x中叫workers,在2.x版本中叫slaves,如果你参考旧教程时遇到找不到文件的情况,多半是这个原因。

第四阶段:分发配置并启动集群

将主节点上配置好的整个Hadoop目录和/etc/profile同步到其他节点:

scp -r /opt/hadoop hadoop-node1:/opt/
scp /etc/profile hadoop-node1:/etc/

注意,每个节点的/data/hadoop/datanode目录需要单独创建,同时修改各节点的/etc/hosts文件,确保所有主机名都能正确解析。

首次启动前,需要在主节点格式化NameNode:

hdfs namenode -format

格式化完成后,在主节点上执行一键启动脚本:

start-dfs.sh
start-yarn.sh

使用jps命令检查各节点进程,主节点应看到

华为云ECS如何重装环境并手工搭建Hadoop,步骤是什么?

NameNode、SecondaryNameNode、ResourceManager,从节点应看到DataNode、NodeManager

华为云ecs搭建hadoop集群后如何验证与常见问题排查

集群启动只是第一步,验证可用性才是关键。

验证HDFS基本读写功能

创建一个测试目录并上传文件:

hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test/
hdfs dfs -cat /test/hosts

如果能看到文件内容,说明HDFS读写链路正常,然后跑一个简单的MapReduce作业验证YARN:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 2 4

作业能正常输出结果,说明整个计算框架没问题。

常见错误与解决办法

错误1:DataNode启动后立刻退出

检查日志发现Initialization failed for Block pool,通常是NameNode格式化后clusterID与DataNode不一致,解决办法是删除所有节点的/data/hadoop目录,重新格式化NameNode。

错误2:50070或9870端口无法访问

首先确认安全组是否放行了对应端口,其次检查NameNode进程是否存活,如果是从本机访问,注意云服务器安全组和系统防火墙(firewalld)都要放行。

错误3:节点间通信超时

最常见的场景是华为云ECS默认开启了防火墙,各节点之间无法通过内网IP通信,执行以下命令关闭或配置防火墙:

systemctl stop firewalld
systemctl disable firewalld

华为云ecs重新安装环境搭建hadoop集群需要多少内存

这取决于你的ECS规格和数据规模,根据实际测试经验,3台2核4G的ECS可以流畅运行一个学习用途的Hadoop集群,NameNode节点建议独立承担资源管理角色,如果要做稍微正式的开发测试,4核8G的规格会更舒适。

内存紧张时,可以适当调低YARN的容器内存分配,修改yarn-site.xml中的:

<property>
    <name>yarn.nodemanager.resource.memory-mb</name>
    <value>2048</value>
</property>
<property>
    <name>yarn.scheduler.maximum-allocation-mb</name>
    <value>2048</value>
</property>

这样让每个NodeManager最多使用2GB内存,避免物理内存不足导致节点宕机。

Q&A:华为云ecs重新安装环境搭建hadoop的常见疑问

问:华为云ecs重新安装环境后,之前的Hadoop数据还在吗?

重新安装操作系统会格式化系统盘,所有数据都会被清除,如果Hadoop的数据目录在数据盘上且未格式化,理论上数据还在,但强烈建议重装前备份元数据和数据块,重装后需要完全重建环境,无法直接复用旧的NameNode元数据。

问:多台linux ecs搭建hadoop集群一定要关闭防火墙吗?

不是必须关闭,更推荐做法是在防火墙中放行Hadoop相关的端口,关闭防火墙在测试环境是省事的做法,但在生产环境存在安全隐患,如果你只有2-3台机器做学习用途,关闭防火墙是业内常见的简化操作,据统计,多数的云上Hadoop集群故障与安全组规则配置不当有关,而非防火墙未放行。

问:Hadoop 2.x和3.x配置文件有哪些区别?

核心差异在于:2.x使用slaves文件定义从节点,3.x更名为workers;3.x的NameNode默认Web端口从50070变为9870;HDFS支持了多个NameNode的联邦机制,如果你查到的是旧教程,记得做对应替换。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/536231.html

(0)
酷盾叔的头像酷盾叔
上一篇 2026年8月17日 06:51
下一篇 2026年8月17日 06:53

相关推荐

  • OPPO微信突然没声音怎么解决?

    OPPO手机微信没声音通常由以下原因引起:,1. **设置问题**:检查手机媒体音量是否开启,微信通知权限和声音开关是否启用。,2. **软件冲突/故障**:微信版本过旧、缓存错误、后台被杀或与其他应用冲突。,3. **系统干扰**:开启了勿扰模式、静音模式或蓝牙耳机连接异常。,4. **硬件故障**:扬声器损坏(较少见)。,简答:**,OPPO手机微信没声音,请先检查媒体音量、微信通知权限和应用内声音设置是否开启,重启微信或手机,若无效,更新微信版本,排查勿扰模式、静音设置或蓝牙连接,最后考虑系统设置重置或硬件问题。

    2025年6月28日
    2500
  • 日本国家域名是.jp,这个域名代表的是哪个国家的缩写呢?

    日本作为全球重要的经济和科技大国,在网络世界中也有其独特的域名,下面将详细介绍日本的域名以及相关的网络知识,日本国家域名日本的域名是“.jp”,国家顶级域名(Country Code Top-Level Domain,简称ccTLD)是国际互联网中用于标识国家或地区的域名,每个国家或地区都有一个唯一的ccTLD……

    2026年3月8日
    1900
  • 小说缓存消失背后的技术原理是什么?为何会出现这种现象?

    小说缓存消失的原因有很多,以下是一些常见的原因:原因描述网络连接不稳定当网络连接不稳定时,缓存的数据可能会丢失,这是因为数据在传输过程中可能被中断,导致缓存数据无法正确保存,缓存空间不足当设备上的缓存空间不足时,系统会自动删除一些缓存数据,以确保有足够的空间存储新的数据,系统更新或重置当操作系统进行更新或设备被……

    2025年11月18日
    9300
  • 在域名结构中,究竟哪一部分代表主机?

    在域名解析中,了解各个组成部分的作用对于维护和管理网站至关重要,域名由多个部分组成,主机”是其中的一个关键组成部分,本文将详细介绍域名中的主机部分,并探讨其在网站运营中的重要性,域名结构解析我们需要了解域名的结构,一个典型的域名由以下几部分组成:二级域名:位于顶级域名之前,如“www”,主机名:位于二级域名之前……

    2026年5月28日
    1100
  • 国内抢注域名,究竟哪个平台最靠谱,成功率最高?揭秘抢注域名平台选择难题!

    国内抢注域名哪个平台好?在互联网时代,域名已经成为企业或个人品牌的重要资产,随着域名的日益稀缺,抢注域名成为了一种常见的现象,在国内,哪个平台是抢注域名的首选呢?本文将从专业、权威、可信和体验四个方面,为您详细介绍国内抢注域名的优秀平台,专业酷盾(kd.cn)作为国内知名的网络安全公司,酷盾(kd.cn)提供了……

    2026年4月29日
    1400

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN