全分布式部署Hadoop集群

本文详细介绍Hadoop集群的规划与部署过程,包括网络环境设置、SSH免密登录配置、Java与Hadoop环境安装、核心配置文件修改以及集群启动与验证步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、集群规划

由于HDFS默认最小复制原则是3份复制,所以规划3个数据节点(datanode),另外规划多一个独立的master运行namenode及相关的集群管理工作

网络规划:

192.168.186.213    mymaster
192.168.186.214    worker1
192.168.186.215    worker2
192.168.186.216    worker3

其中mymaster运行:

NameNode
SecondaryNameNode
ResourceManager

JobHistoryServer

其他的work节点运行
DataNode
NodeManager

2、修改机器网络环境

1、修改/etc/hostname为:

master节点:mymaster

其他worker节点:worker1~worker3

2、修改/etc/hosts

192.168.186.213    mymaster
192.168.186.214    worker1
192.168.186.215    worker2
192.168.186.216    worker3

其实,在Hadoop里面,推荐使用域名而不是直接用IP构建集群,如果非得用也行,只不过需要在namenode的hdfs-site.xml里面添加

<property>
  <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
  <value>false</value>
</property>

否则在集群启动时会报

Datanode denied communication with namenode because hostname cannot be resolved

3、设置SSH免密登陆

这一步需达到:master节点可以免密登陆其他节点。

谈到登陆就不得不谈登陆用户。在hadoop集群中需要用统一一致的用户名管理集群。假设在master上用yong这个用户启动集群,那就必须确保yong这个用户可以在master上用yong为登陆名远程登陆上worker节点,并可以启动相关的hadoop进程,即:

在master上,用yong用户可以免密执行

ssh yong@mymaster

ssh yong@worker1

ssh yong@worker2

ssh yong@worker3

下面是具体操作步骤

在四台机器上执行
$ sudo apt-get install openssh-server
在master上执行
$ ssh-keygen -t rsa -N ""
$ ssh-copy-id -i ~/.ssh/id_rsa.pub yong@mymaster
$ ssh-copy-id -i ~/.ssh/id_rsa.pub yong@worker1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub yong@worker2
$ ssh-copy-id -i ~/.ssh/id_rsa.pub yong@worker3

4、安装Java环境

四台机器全部需要,具体做法是

$ gedit ~/.bashrc
export JAVA_HOME=/mnt/hgfs/java-env/jdk1.8.0_211
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
$ source ~/.bashrc
$ java -version
$ javac -version

5、安装hadoop环境

四台机器全部需要,具体做法是

$ wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
$ tar xzf hadoop-3.1.2.tar.gz
$ gedit ~/.bashrc
export HADOOP_HOME=/mnt/hgfs/hadoop-cluster-env/hadoop-3.1.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$ source ~/.bashrc
$ hadoop version

6、配置master节点

$ cd $HADOOP_HOME
$ mkdir my_config_master
$ gedit ~/.bashrc
export HADOOP_CONF_DIR=$HADOOP_HOME/my_config_master
export HADOOP_LOG_DIR=$HADOOP_HOME/my_log_master
$ source ~/.bashrc
$ cd $HADOOP_CONF_DIR
$ cp -r $HADOOP_HOME/etc/hadoop/* .
$ gedit core-site.xml

  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://mymaster/</value>
  </property>

$ gedit hdfs-site.xml

  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>

$ gedit mapred-site.xml

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

$ gedit yarn-site.xml

  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>mymaster</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

7、配置worker节点

以worker1为例,假设master配置为$HADOOP_HOME/my_config_master

$ cd $HADOOP_HOME
$ mkdir my_config_worker1
$ gedit ~/.bashrc
export HADOOP_CONF_DIR=$HADOOP_HOME/my_config_worker1
export HADOOP_LOG_DIR=$HADOOP_HOME/my_log_worker1
$ source ~/.bashrc
$ cd $HADOOP_CONF_DIR
$ cp -r $HADOOP_HOME/my_config_master/* .

8、启动集群

在master节点上

$ gedit $HADOOP_CONF_DIR/workers

worker1
worker2
worker3

$ hdfs namenode -format

$ start-all.sh

$ mr-jobhistory-daemon.sh start historyserver

9、验证

访问 http://localhost:9870

访问 http://localhost:19888

试着创建一个文件

$ hdfs dfs -mkdir /yong
$ hdfs dfs -put ./test.txt /yong/

如果报错:put: File /test.txt._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 3 datanode(s) running and 3 node(s) are excluded in this operation.

解决:关闭worker节点的防火墙(以centos为例)

$ sudo systemctl stop firewalld.service

$ sudo systemctl disable firewalld.service
$ hdfs dfs -cat /yong/test.txt

### 伪分布式 Hadoop 集群部署教程 #### 1. 下载与解压 Hadoop 安装包 首先需要下载 Hadoop 的安装包,可以使用以下命令从清华大学开源镜像站下载 Hadoop 安装包[^3]。下载完成后,将其解压到指定目录。 ```bash wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.3/hadoop-3.2.3.tar.gz tar -zxvf hadoop-3.2.3.tar.gz -C /usr/local/ ``` #### 2. 配置环境变量 为了方便使用 Hadoop 命令,需要将 Hadoop 的 `bin` 和 `sbin` 目录添加到系统的环境变量中。编辑 `/etc/profile` 文件,添加以下内容: ```bash export HADOOP_HOME=/usr/local/hadoop-3.2.3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 然后使配置生效: ```bash source /etc/profile ``` #### 3. 修改核心配置文件 Hadoop 的配置文件位于 `/usr/local/hadoop/etc/hadoop/` 目录下。伪分布式模式需要修改两个主要的配置文件:`core-site.xml` 和 `hdfs-site.xml`[^2]。 **(1)core-site.xml** 在 `<configuration>` 标签内添加以下内容,用于指定 HDFS 的默认文件系统地址: ```xml <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> ``` **(2)hdfs-site.xml** 在 `<configuration>` 标签内添加以下内容,用于设置副本数量为 1(伪分布式模式下不需要多副本): ```xml <property> <name>dfs.replication</name> <value>1</value> </property> ``` #### 4. 格式化 NameNode 第一次安装 Hadoop 集群,需要对 NameNode 进行格式化。执行以下命令完成格式化操作[^1]: ```bash hdfs namenode -format ``` #### 5. 启动 Hadoop 集群 格式化完成后,可以启动 Hadoop 集群。使用以下命令一键启动 Hadoop 服务: ```bash start-all.sh ``` 启动成功后,可以通过以下命令查看集群状态: ```bash jps ``` 正常情况下,应该能够看到 `NameNode`、`DataNode`、`ResourceManager` 和 `NodeManager` 等进程。 #### 6. 验证 Hadoop 集群 访问 Hadoop 的 Web 界面来验证集群是否正常运行。打开浏览器并输入以下地址: - HDFS 状态页面:`http://localhost:9870` - YARN 状态页面:`http://localhost:8088` 如果页面能够正常显示,并且可以看到集群的相关信息,则说明 Hadoop 集群已经成功部署。 --- ### 注意事项 - 在配置文件中,确保所有路径和端口符合实际需求。 - 如果遇到权限问题,可以尝试使用 `sudo` 提升权限或调整文件夹权限。 - 第一次安装后,后续启动无需再次格式化 NameNode,直接使用 `start-all.sh` 即可[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值