Hadoop 2.X 动态添加 datanode(详细图文)

这篇博客详细介绍了如何在已运行的Hadoop 2.x集群中动态添加datanode节点,包括复制hadoop目录、修改环境变量、启动datanode、设置HDFS负载均衡和添加到YARN集群的步骤。通过这些步骤,可以在不重启集群的情况下,让新节点顺利加入并管理。

准备工作:
我们的三个节点的集群(master,slave1,slave2)已经安装成功并且启动,具体安装方法可以参照之前的一篇教程Hadoop-2.6.4集群安装(详细图文)
由于我们之前已经克隆出来一台,这次我们可以拿这一台来练习,先备份,搞崩了拿新的再搞!
当然,大家也可以自己重新安装一台,然后要安装配置好 jdk,最好是跟之前安装的版本一致,免得出什么幺蛾子。
既然是动态添加,就意味着机器不重启,其实在实际工作环境中,集群跑起来之后是不会那么容易就重启的。

1 准备工作之后的一堆小工作

机器我们是准备好了,但是我们还需要配置好多东西才可以正式开始。
比如,我们需要修改第四台机器的 hostname,配置静态IP,配置 ssh。这些可以参照之前的安装方法,我也就不再重复一遍了,相信大家这么长时间了,这些东西早就搞的很6了。
这里我把第四台机器的 hostname 配置成了 slave3。
这里写图片描述

声明:在工作环境中最好是不要用 root 用户来配置 hadoop,不然就是徒增麻烦。用我们之前的 hadoop 用户,但是我们是学习阶段,为了方便操作,就一路使用了 root 用户。

2 正式工作

在之前的准备工作之后的一堆小工作做完之后,我们就可以开始配置了。

2.1 复制 hadoop-2.6.4

在 master 主机上,将 hadoop-2.6.4 整个目录复制到 slave3 上:

[root@master hadoop-2.6.4]# hostname
master
[root@master hadoop-2.6.4]# pwd
/usr/hadoop/hadoop-2.6.4
[root@master hadoop-2.6.4]# scp . root@slave3:/usr/hadoop/hadoop-2.6.4
...

[root@master hadoop-2.6.4]#

之后我们到 slave3 主机上,进到 /usr/hadoop/hadoop-2.6.4 目录,将 logs 目录中的文件全删掉:

[root@slave3 ~]# hostname
slave3
[root@slave3 ~]# cd /usr/hadoop/hadoop-2.6.4/logs
[root@slave3 logs]# rm -f *.*
[root@slave3 logs]#

我没有在逗你,”*.*“表示的任意格式的文件,不是表情^&^

2.2 修改 slave3 的环境变量

其实这个我们可以偷个懒,直接拷贝 master 上的就可以了:

[root@master hadoop-2.6.4]# hostname
master
[root@master hadoop-2.6.4]# scp /etc/profile root@slave3:/etc/
~~
[root@master hadoop-2.6.4]# source /etc/profile
[root@master hadoop-2.6.4]# 
2.3 在 slave3 节点上启动 datanode

启动 datanode,但是这次用到的命令不一样:

[root@slave3 sbin]# hostname
slave3
[root@slave3 sbin]# pwd
由于我无法提供图形化内容,我将用文字详细描述在Ubuntu系统中安装Hadoop的步骤。请注意,本教程以Ubuntu 18.04 LTS为例,但同样的步骤应该适用于其他版本的Ubuntu,只需注意可能会有部分命令差异。 ### 前提条件 确保你的Ubuntu系统是最新的,可以通过运行以下命令来更新系统: ```bash sudo apt update && sudo apt upgrade -y ``` ### 安装Java Hadoop是用Java编写的,因此你需要在系统上安装Java。你可以使用OpenJDK,这是Java的一种免费实现。 1. 安装Java Development Kit(JDK): ```bash sudo apt install openjdk-8-jdk -y ``` 2. 验证Java是否安装成功: ```bash java -version ``` ### 安装Hadoop 1. 从Apache官网下载Hadoop的tar.gz包,或者使用wget命令直接下载: ```bash wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz ``` 2. 解压下载的tar.gz包: ```bash tar -xzvf hadoop-3.3.1.tar.gz ``` 3. 将解压后的目录移动到适当的位置(例如`/usr/local`),并重命名为hadoop: ```bash sudo mv hadoop-3.3.1 /usr/local/hadoop ``` 4. 设置环境变量,编辑你的`~/.bashrc`文件: ```bash nano ~/.bashrc ``` 在文件末尾添加以下内容(替换为你的Hadoop安装路径): ```bash export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME ``` 保存并关闭文件后,更新环境变量: ```bash source ~/.bashrc ``` 5. 验证Hadoop是否安装成功: ```bash hadoop version ``` ### 配置Hadoop 1. 编辑Hadoop配置文件,这些文件位于`$HADOOP_HOME/etc/hadoop`目录下。 2. 打开`hadoop-env.sh`并设置Java路径: ```bash nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh ``` 找到`export JAVA_HOME=${JAVA_HOME}`行,修改为: ```bash export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") ``` 3. 配置`core-site.xml`: ```bash nano $HADOOP_HOME/etc/hadoop/core-site.xml ``` 添加以下内容: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` 4. 配置`hdfs-site.xml`: ```bash nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml ``` 添加以下内容以配置副本数量: ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> ``` 5. 配置`mapred-site.xml`: ```bash cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml nano $HADOOP_HOME/etc/hadoop/mapred-site.xml ``` 添加以下内容: ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` 6. 配置`yarn-site.xml`: ```bash nano $HADOOP_HOME/etc/hadoop/yarn-site.xml ``` 添加以下内容: ```xml <configuration> <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> </configuration> ``` 7. 格式化HDFS文件系统: ```bash hdfs namenode -format ``` 8. 启动Hadoop集群: ```bash start-dfs.sh start-yarn.sh ``` 9. 确认Hadoop运行状态: ```bash jps ``` 你应该能看到类似`NameNode`、`DataNode`、`ResourceManager`、`NodeManager`的输出。 ### 注意事项 - 配置文件中的路径和版本号可能需要根据你的实际环境进行调整。 - 确保Hadoop的端口没有被防火墙阻止。 - 如果你在单节点上运行Hadoop,上述配置即可。但在生产环境中,你可能需要配置一个更加复杂的集群环境。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值