本文目录导读:
《Hadoop集群3台虚拟机搭建完整教程》
图片来源于网络,如有侵权联系删除
环境准备
1、虚拟机软件
- 这里我们选择VMware Workstation(VirtualBox等也可以),安装完成后,打开VMware Workstation。
2、操作系统镜像
- 下载CentOS 7(或者其他适合的Linux发行版,如Ubuntu等,但本教程以CentOS 7为例)的镜像文件,在VMware中创建3台虚拟机,每台虚拟机的配置如下:
- 内存:至少2GB(根据实际需求可调整)。
- 硬盘:20GB以上。
- 网络模式:选择NAT模式(方便虚拟机与宿主机及外部网络通信)。
3、安装CentOS 7操作系统
- 在每台虚拟机中安装CentOS 7操作系统,按照安装向导进行操作,在安装过程中,设置好root密码、创建普通用户等,安装完成后,更新系统软件包:
- 登录到每台虚拟机,以root用户身份执行命令yum -y update
。
配置主机名和IP地址映射
1、修改主机名
- 在第一台虚拟机中,执行命令hostnamectl set - hostname master
,将其主机名设置为master。
- 在另外两台虚拟机中,分别执行hostnamectl set - hostname slave1
和hostnamectl set - hostname slave2
。
2、配置IP地址映射
- 编辑每台虚拟机的/etc/hosts
文件,添加以下内容:
- 在master虚拟机中添加:
```
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.xxx.xxx master
192.168.xxx.xxx slave1
192.168.xxx.xxx slave2
```
- 其中192.168.xxx.xxx
为每台虚拟机的实际IP地址,可通过ifconfig
命令查看(如果是CentOS 7最小安装版,可能需要先安装net - tools
包,执行yum -y install net - tools
),同样的内容也添加到slave1和slave2虚拟机的/etc/hosts
文件中。
安装JDK
1、下载JDK
- 从Oracle官网下载适合CentOS 7的JDK版本(例如JDK 8),选择tar.gz格式的文件。
2、安装JDK
- 在每台虚拟机上创建/usr/java
目录:mkdir -p /usr/java
。
- 将下载的JDK压缩包上传到每台虚拟机(可以使用scp命令进行上传),然后解压到/usr/java
目录下,如果下载的文件名为jdk - 8uXXX - linux - x64.tar.gz
,则执行命令tar -zxvf jdk - 8uXXX - linux - x64.tar.gz -C /usr/java
。
3、配置环境变量
- 编辑/etc/profile
文件,在文件末尾添加以下内容:
```
export JAVA_HOME = /usr/java/jdk1.8.0_XXX
export PATH = $PATH:$JAVA_HOME/bin
```
- 其中jdk1.8.0_XXX
为实际解压后的JDK目录名,保存文件后,执行命令source /etc/profile
使环境变量生效。
安装Hadoop
1、下载Hadoop
- 从Hadoop官方网站下载稳定版本的Hadoop(例如Hadoop 3.x),选择tar.gz格式的文件。
2、安装Hadoop
- 在每台虚拟机上创建/usr/hadoop
目录:mkdir -p /usr/hadoop
。
图片来源于网络,如有侵权联系删除
- 将下载的Hadoop压缩包上传到每台虚拟机,然后解压到/usr/hadoop
目录下,如果下载的文件名为hadoop - 3.x.x.tar.gz
,则执行命令tar -zxvf hadoop - 3.x.x.tar.gz -C /usr/hadoop
。
3、配置Hadoop环境变量
- 编辑/etc/profile
文件,在文件末尾添加以下内容:
```
export HADOOP_HOME = /usr/hadoop/hadoop - 3.x.x
export PATH = $PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
```
- 保存文件后,执行命令source /etc/profile
使环境变量生效。
4、配置Hadoop核心文件
- 进入$HADOOP_HOME/etc/hadoop
目录。
- 编辑hadoop - env.sh
文件,找到export JAVA_HOME = ${JAVA_HOME}
这一行,将其修改为实际的JAVA_HOME
路径,例如export JAVA_HOME = /usr/java/jdk1.8.0_XXX
。
- 编辑core - site.xml
文件,添加以下内容:
```xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hadoop - 3.x.x/tmp</value>
</property>
</configuration>
```
- 编辑hdfs - site.xml
文件,添加以下内容:
```xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/hadoop/hadoop - 3.x.x/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/hadoop/hadoop - 3.x.x/dfs/data</value>
</property>
</configuration>
图片来源于网络,如有侵权联系删除
```
- 编辑mapred - site.xml
文件,添加以下内容(如果文件不存在,可以从mapred - site.xml.template
复制而来):
```xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
```
- 编辑yarn - site.xml
文件,添加以下内容:
```xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux - services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
```
配置SSH免密码登录
1、生成密钥对
- 在master虚拟机上,以普通用户身份执行命令ssh - keygen - t rsa
,一路回车,生成密钥对。
2、分发公钥
- 将master虚拟机上生成的公钥id_rsa.pub
内容追加到slave1和slave2虚拟机的authorized_keys
文件中,可以使用以下命令:
- 在master虚拟机上执行:
ssh - copy - id slave1
ssh - copy - id slave2
启动Hadoop集群
1、格式化HDFS
- 在master虚拟机上,以hadoop用户(如果没有则创建)身份执行命令hdfs namenode - format
,这一步只需要在首次启动集群时执行。
2、启动集群服务
- 在master虚拟机上,执行命令start - all.sh
,这将启动Hadoop集群中的NameNode、DataNode、ResourceManager、NodeManager等服务。
3、验证集群状态
- 可以通过浏览器访问http://master:9870
(Hadoop 3.x版本的HDFS Web界面)和http://master:8088
(YARN的Web界面)来查看集群的状态,在这些界面中,可以查看文件系统的使用情况、任务执行情况等信息。
至此,基于3台虚拟机的Hadoop集群搭建完成,在实际使用过程中,可以根据需求在集群上运行MapReduce、Spark等大数据处理任务。
评论列表