阿里云ECS搭建Hadoop问题记录-内外网问题/namenode无法启动/datanode数量错误/yran无法启动等

本文详细介绍了如何在三台ECS上使用JDK-1.8.1和Hadoop-3.3.0搭建Hadoop实例,包括配置hostname、hosts文件、安全组,以及对core-site.xml和yarn-site.xml的配置,解决NameNode和DataNode启动问题,确保HDFS和YARN的Web界面访问正常。

三台ECS搭建Hadoop实例

JDK-1.8.1

Hadoop-3.3.0

CentOS-8.5

话不多说直接进入主题,导致这一列问题的原因内外网问题!!

你的hostname一定要和你设置域名映射进行匹配的上

如果配置完启动了,web页面访问不了

去ECS控制台-实例-点击实例ID-安全组-手动添加安全组-输入端口号即可

如下:

# 查看 hostname
cat /etc/hostname

# 修改hostname
vim /etc/hostname

# 查看 hosts文件
cat /etc/hosts

# 修改host文件
vim /etc/hosts

修改完域名之后查看Hadoop的配置的slaver文件,如果没有自行创建一个即可,也有点版本是workers,切记如果为集群模式的话,三台都要配置的一样 master节点在最上面

然后就是xml文件的配置:注意我已经在Hadoop的文件夹下了

打开core-site.xml

vim etc/hadoop/core-site.xml

配置hdfs地址以及端口

-->
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://bigdata01:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/data</value>
        </property>
</configuration>

接下来配置yarn-site.xml

还是设置域名

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>bigdata01</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>4</value>
</property>
</configuration>

最重要的一步 开启节点与节点之间的访问走外网

<!-- Put site-specific property overrides in this file. -->
<configuration>
                <!-- 这是复制的副本数量 -->
                <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
                <!-- 这是数据节点保存数据的目录,需要自己创建 -->
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:///usr/local/data/dt</value>
        </property>
<property>
    <name>dfs.client.use.datanode.hostname</name>
    <value>true</value>
    <description>only cofig in clients</description>
</property>
</configuration>

!!!注意!!!

这里的配置这是解决NameNode启动报错,或者DataNode启动不全,或Yarn的ResourceManager

启动失败的解决方案,而不是Hadoop集群的安装流程。

JPS查看进程

node1

按照正常的SNN作为备份进程不应该和NN一个节点,这里刚调试完请忽略

node2

node3

查看web界面

HDFS

如果配置的9000端口 HDFS的访问路径为你的hostname和9870端口号

http://bigdata01:9870/dfshealth.html#tab-overview

Yarn

http://bigdata01:8088/cluster/nodes

### 正确配置 HDFS 的 NameNodeDataNode 目录并启动 Hadoop 集群 #### 1. 配置 `hdfs-site.xml` 在 Hadoop 配置文件中,`hdfs-site.xml` 是用于定义 HDFS 名称节点 (NameNode) 和数据节点 (DataNode) 存储目录的关键文件。以下是推荐的配置方式: ```xml <configuration> <!-- 定义 NameNode 的元数据存储目录 --> <property> <name>dfs.namenode.name.dir</name> <value>/data/hadoop/namenode</value> </property> <!-- 定义 DataNode 的数据块存储目录 --> <property> <name>dfs.datanode.data.dir</name> <value>/data/hadoop/datanode</value> </property> <!-- 设置副本数量,默认为 3 --> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` 这里 `/data/hadoop/namenode` 和 `/data/hadoop/datanode` 是实际磁盘上的路径,可以根据实际情况调整[^1]。 --- #### 2. 格式化 NameNode 在首次启动 HDFS 前,需要对 NameNode 进行格式化操作。此操作会初始化 HDFS 文件系统的命名空间。 执行以下命令完成格式化: ```bash $HADOOP_HOME/bin/hdfs namenode -format ``` 这一步会在 `dfs.namenode.name.dir` 指定的目录中创建必要的元数据文件[^1]。 --- #### 3. 启动 HDFS 使用以下命令启动 NameNodeDataNode: ```bash $HADOOP_HOME/sbin/start-dfs.sh ``` 可以使用 `jps` 命令查看当前 JVM 进程列表,确认 NameNodeDataNode 已经正常启动。如果一切顺利,应该能看到如下进程: - NameNode - DataNode - SecondaryNameNode 访问 Web 界面进一步验证 HDFS 是否正常工作: ``` http://<namenode-ip>:9870/ ``` 这里的端口 `9870` 是 Hadoop 2.x 及以上版本的标准端口号,旧版可能是 `50070`[^1]。 --- #### 4. 配置日志目录 为了便于管理和排查问题,建议自定义 Hadoop 日志存储路径。编辑 `$HADOOP_HOME/etc/hadoop/hadoop-env.sh` 文件,添加或修改以下内容: ```bash export HADOOP_LOG_DIR=/var/log/hadoop ``` 这样可以将日志集中存放在 `/var/log/hadoop` 路径下,方便后续分析和维护[^2]。 --- #### 5. 启动 YARN 和 MapReduce YARN 是 Hadoop 的资源调度框架,MapReduce 则依赖于它运行计算任务。确保 `mapred-site.xml` 中有以下配置项: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 接着启动 YARN 组件: ```bash $HADOOP_HOME/sbin/start-yarn.sh ``` 此时可以通过浏览器访问 YARN 的 Resource Manager 页面进行状态监控: ``` http://<resourcemanager-ip>:8088/ ``` 最后,尝试提交一个简单的 WordCount 测试程序以验证集群功能是否正常: ```bash $hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount \ hdfs://<namenode-host>:<port>/input hdfs://<namenode-host>:<port>/output ``` --- ### 总结 通过合理配置 `hdfs-site.xml`、格式化 NameNode启动 DFS 和 YARN,并测试基本作业流程,能够顺利完成 Hadoop 集群的基础搭建与调试。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值