Hadoop 2.6.3动态增加/删除DataNode节点

假设集群操作系统均为:CentOS 6.7 x64
Hadoop版本为:2.6.3

  • 一、动态增加DataNode

1、准备新的DataNode节点机器,配置SSH互信,可以直接复制已有DataNode中.ssh目录中的authorized_keys和id_rsa
2、复制Hadoop运行目录、hdfs目录及tmp目录至新的DataNode
3、在新DataNode上启动hadoop

..sbin/hadoop-daemon.sh start datanode
..sbin/yarn-daemon.sh start datanode

4、在NameNode上刷新节点

..bin/hdfs dfsadmin -refreshNodes
..sbin/start-balancer.sh

5、为方便下次启动,可以将新DataNode的域名和ip加入/etc/hosts中

  • 二、动态删除DataNode

1、配置NameNode的hdfs-site.xml,适当减小dfs.replication副本数,增加dfs.hosts.exclude配置

 <property>
    <name>dfs.hosts.exclude</name>
    <value>/usr/local/hadoop2/etc/hadoop/excludes</value>
 </property>

2、在对应路径(/etc/hadoop/)下新建excludes文件,并写入待删除DataNode的ip或域名
3、在NameNode上刷新所有DataNode

..bin/hdfs dfsadmin -refreshNodes
..sbin/start-balancer.sh

4、此时,可以在web检测界面(ip:50070)上可以观测到DataNode逐渐变为Dead。


作者:冰 河
来源:优快云
原文:https://blog.youkuaiyun.com/l1028386804/article/details/78255746
版权声明:本文为博主原创文章,转载请附上博文链接!

### 正确配置 HDFS 的 NameNode 和 DataNode 目录并启动 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 使用以下命令启动 NameNode 和 DataNode: ```bash $HADOOP_HOME/sbin/start-dfs.sh ``` 可以使用 `jps` 命令查看当前 JVM 进程列表,确认 NameNode 和 DataNode 已经正常启动。如果一切顺利,应该能看到如下进程: - 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 集群的基础搭建与调试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值