一、环境配置
1.vmware17虚拟机
创建虚拟机
2.Ubuntu磁盘镜像
https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/
下载清华镜像源(图片最下面那个)
3.配置hadoop
(1)在虚拟机终端输入sudo ufw disable检查防火墙配置
防火墙已关闭
(2)ssh
a.安装ssh
sudo apt update
sudo apt install openssh-server
输入以下命令检查 openssh-server
是否已安装:
dpkg -l | grep openssh-server
如果输出类似以下内容,说明 SSH 已安装:
b.检查 SSH 服务是否正在运行
sudo systemctl status ssh
Active: active (running) 表示 SSH 服务正在运行。
enabled 表示 SSH 服务已设置为开机自启动。
如果 SSH 服务未运行,输出会显示 inactive
c.检查 SSH 端口是否开放
sudo ss -tuln | grep :22
端口已开放
设置开机自启
sudo systemctl enable ssh
5.配置主机名和hosts列表
输入sudo vi /etc/hosts,将hosts文件中
先在终端输入
然后再文件夹中找到文件并修改一下节点保存
Ubuntu 设置静态 IP 和网关的步骤
1. 编辑 Netplan 配置文件
假设配置文件是 01-netcfg.yaml
,使用 nano
或 vi
编辑:
sudo nano /etc/netplan/01-netcfg.yaml
2. 配置静态 IP 和网关
主机ip是192.168.137.11
连接成功(咸鱼花了6块钱)
5.下载hadoop和jdk、xftp
5.1在虚拟机终端输入ifconfig查看端口号
安装xftp
将下载的JDK和Hadoop从windows传输到Ubuntu中,可以使用Xftp(前提是已安装并开启ssh服务,可参考[2.2节](#2.2 确保Ubuntu环境已安装ssh))或是直接复制过去(前提是虚拟机安装了vmtools,不清楚的可以试试直接复制到虚拟机)
将这两个文件移动到ubuntu中的/usr文件夹中
5.2jdk配置
在桌面解压并移到
sudo tar -xvf /usr/jdk-8u331-linux-x64.tar.gz
sudo mv jdk1.8.0_331 /usr/java
用文本编辑器模式打开
在profile最后添加代码
export JAVA_HOME=/usr/java
# JDK8 添加 JRE_HOME 和 CLASSPATH 配置
export JRE_HOME=$JAVA_HOME/jre
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
输入命令,运行配置环境。
source ~/.profile
建立系统软链接
-
/usr/bin/javac
应该指向 Java 编译器 (javac
)。 -
/usr/bin/java
应该指向 Java 运行时 (java
)。
你已经成功为 javac
设置了替代项,接下来可以为 java
设置替代项:
sudo update-alternatives --install /usr/bin/java java /usr/java/bin/java 1 输入命令查看Java版本
java -version
配置JDK路径
打开文件管理器,找到 Hadoop 安装目录下的 /etc/hadoop/hadoop-env.sh 并使用文本编辑器打开(默认双击)
注意此处是 hadoop-env.sh 而不是 hadoop-env.cmd
在文件末尾添加以下代码(建议直接复制)并保存退出
export JAVA_HOME=/usr/java
5.3配置安装Hadoop
解压压缩包,然后将解压后的文件夹移动到 /usr/hadoop 下(需要输入管理员密码),输入命令
sudo mv hadoop-3.2.3 /usr/hadoop
配置Hadoop
(1)在刚刚的目录下找到 core-site.xml 文件,用文本编辑器打开
在 <configuration> 标签中添加下面的配置,保存并退出
<property> <name>hadoop.tmp.dir</name> <value>file:/usr/hadoop/tmp</value> </property> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property>
(2)继续在文件夹中找到 hdfs-site.xml 文件,用文本编辑器打开
在 <configuration> 标签中添加下面的配置,保存并退出
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/hadoop/tmp/dfs/data</value>
</property>
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>
配置文件系统yarn-site.xml
使用文本编辑器打开并编辑yarn-site.xml文件,在标签中添加:
yarn-site.xml 配置
在 /etc/hadoop/yarn-site.xml
文件中,添加以下内容:
<configuration>
<!-- YARN 资源管理器的主机名和端口 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<!-- YARN 资源管理器的地址 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<!-- YARN 调度器的地址 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<!-- YARN 资源跟踪器的地址 -->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<!-- YARN 管理界面地址 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<!-- YARN NodeManager 的辅助服务 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- YARN NodeManager 的辅助服务类 -->
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- YARN 日志聚合功能 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- YARN 日志保留时间(单位:秒) -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>86400</value> <!-- 1 天 -->
</property>
<!-- YARN 日志目录 -->
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>file:/usr/hadoop/tmp/logs</value>
</property>
</configuration>
修改profile文件
运行source ~/.profile
(2)配置环境
输入cd /usr/hadoop
vi ~/.bashrc
进入文件在最上面添加
export PATH=$PATH:/usr/hadoop/bin:/usr/hadoop/sbin
保存
修改配置文件
source ~/.bashrc
#每次启动前输入【已解决】配置在环境变量中
source /usr/hadoop/etc/hadoop/hadoop-env.sh
hadoop version
就可以看到版本号说明成功
以上全部配置完成。
二、克隆虚拟机
主机名 | IP | 用户 | hdfs | yarn |
node1 | 192.168.137.11 | user1 | ||
node2 | 192.168.137.12 | user1 | ||
node3 | 192.168.137.13 | user1 |
2.ssh免密登录
3.配置集群
-
当前值为
hdfs://localhost:9000
,这是单机模式的配置。 -
在集群模式下,需要将其改为
hdfs://node1:9000
,其中node1
是 NameNode 的主机名。
启动Hadoop
-
cd /usr/hadoop/bin
-
#打开任意终端,进入 /hadoop/bin 路径
-
sudo ./hdfs namenode -format
-
#进行格式化
启动集群
sudo -u user1 $HADOOP_HOME/sbin/start-dfs.sh
sudo -u user1 $HADOOP_HOME/sbin/start-yarn.sh
(1) 停止 YARN**
在 `node1` 上运行以下命令停止 YARN:
```bash
sudo -u user1 $HADOOP_HOME/sbin/stop-yarn.sh
```
#### **(2) 停止 HDFS**
在 `node1` 上运行以下命令停止 HDFS:
```bash
sudo -u user1 $HADOOP_HOME/sbin/stop-dfs.sh
```
#### **(3) 检查进程是否停止**
在 `node1`、`node2` 和 `node3` 上运行以下命令,确保所有 Hadoop 进程已停止:
```bash
jps
```
如果没有输出,说明所有进程已停止。
---
### **2. 关闭虚拟机**
在停止 Hadoop 集群后,可以安全地关闭虚拟机。
#### **(1) 关闭所有节点**
在每台虚拟机上运行以下命令关闭系统:
```bash
sudo shutdown -h now
```
确保所有节点之间的网络连接正常。在每台节点上运行以下命令测试连接:
```bash
ping node1
ping node2
ping node3
```
#### **(3) 启动 Hadoop 集群**
在 `node1` 上运行以下命令启动 Hadoop 集群:
```bash
sudo -u user1 $HADOOP_HOME/sbin/start-dfs.sh
sudo -u user1 $HADOOP_HOME/sbin/start-yarn.sh
```
#### **(4) 检查集群状态**
运行以下命令检查集群状态:
```bash
hdfs dfsadmin -report
yarn node -list
```