19-20学时 分布式大数据框架hadoop实践
Hadoop 在 VMware 虚拟机上的部署手册
1. 前置条件
1.1 硬件与软件要求
宿主机:实验室电脑(建议至少 4 核 CPU、16GB 内存、100GB 可用硬盘空间)。
虚拟化软件:VMware Workstation(推荐 16.x 或更高版本)。
虚拟机配置:
数量:每位同学 1 台虚拟机,建议至少 3-5 台组成集群。
配置:每台虚拟机 2 核 CPU、4GB 内存、20GB 硬盘。
操作系统:Ubuntu 20.04 LTS。
Hadoop 版本:3.3.6。
1.2 网络规划
网络模式:使用 VMware 的 NAT 模式 或 桥接模式(桥接模式更接近真实网络环境)。
IP 分配:
Master 节点:192.168.1.100(固定 IP)。
Slave 节点:192.168.1.101, 192.168.1.102, ...(依次递增)。
主机名:master, slave1, slave2, ...。
2. 虚拟机准备
2.1 创建基础虚拟机
安装 VMware Workstation:
在实验室电脑上安装 VMware Workstation(若未安装,可从官网下载)。创建第一台虚拟机:
打开 VMware,选择“创建新虚拟机”。
选择 Ubuntu 20.04 ISO 文件(从 ubuntu.com 下载)。
配置:2 核 CPU、4GB 内存、20GB 硬盘。
网络适配器:选择“桥接模式”或“NAT 模式”。
安装 Ubuntu 系统,设置用户名为 hadoopuser(或其他统一名称)。
克隆虚拟机:
安装完成后,右键基础虚拟机 -> “管理” -> “克隆”,创建多个副本(例如 3 台:1 个 Master,2 个 Slave)。
为每台虚拟机设置唯一的主机名和 IP。
2.2 配置网络
修改主机名:
在每台虚拟机中:
bash
收起自动换行复制sudo hostnamectl set-hostname master # Master 节点 sudo hostnamectl set-hostname slave1 # Slave1 节点 sudo hostnamectl set-hostname slave2 # Slave2 节点设置固定 IP(以桥接模式为例):
编辑网络配置文件:
bash
收起自动换行复制sudo nano /etc/netplan/01-netcfg.yaml
示例(Master 节点):
yaml
收起自动换行复制network: version: 2 ethernets: ens33: dhcp4: no addresses: - 192.168.1.100/24 gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
Slave1 为 192.168.1.101,Slave2 为 192.168.1.102,依此类推。
应用配置:
bash
收起自动换行复制sudo netplan apply配置 hosts 文件:
在每台虚拟机中编辑 /etc/hosts:
bash
收起自动换行复制sudo nano /etc/hosts
添加:
text
收起自动换行复制192.168.1.100 master 192.168.1.101 slave1 192.168.1.102 slave2测试网络:
bash
收起自动换行复制ping master ping slave1 ping slave2
确保节点间可互相 ping 通。
3. 安装与配置 Hadoop
3.1 安装依赖
在每台虚拟机上执行:
安装 Java:
bash
收起自动换行复制sudo apt update sudo apt install openjdk-11-jdk -y java -version安装 SSH:
bash
收起自动换行复制sudo apt install openssh-server openssh-client -y ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys配置 SSH 无密码登录:
在 Master 节点生成密钥并分发:
bash
收起自动换行复制ssh-copy-id hadoopuser@master ssh-copy-id hadoopuser@slave1 ssh-copy-id hadoopuser@slave2
测试:ssh slave1(应无需密码)。
3.2 安装 Hadoop
下载并解压(每台虚拟机执行):
bash
收起自动换行复制wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz tar -xzf hadoop-3.3.6.tar.gz sudo mv hadoop-3.3.6 /usr/local/hadoop设置环境变量(每台虚拟机):
编辑 ~/.bashrc:
bash
收起自动换行复制nano ~/.bashrc
添加:
bash
收起自动换行复制export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
应用:
bash
收起自动换行复制source ~/.bashrc
3.3 配置 Hadoop
编辑配置文件(位于 $HADOOP_HOME/etc/hadoop/,每台虚拟机一致):
core-site.xml:
xml
收起自动换行复制<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> </configuration>hdfs-site.xml:
xml
收起自动换行复制<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoopuser/hadoopdata/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoopuser/hadoopdata/datanode</value> </property> </configuration>mapred-site.xml:
xml
收起自动换行复制<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>yarn-site.xml:
xml
收起自动换行复制<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> </configuration>
配置 workers 文件(仅 Master 节点):
bash
收起自动换行复制nano $HADOOP_HOME/etc/hadoop/workers
输入:
text
收起自动换行复制slave1 slave2设置 JAVA_HOME(每台虚拟机):
编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh:
bash
收起自动换行复制export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64创建数据目录(每台虚拟机):
bash
收起自动换行复制mkdir -p ~/hadoopdata/namenode mkdir -p ~/hadoopdata/datanode chmod -R 755 ~/hadoopdata
4. 启动与验证
4.1 启动 Hadoop(仅在 Master 节点)
格式化 HDFS:
bash
收起自动换行复制$HADOOP_HOME/bin/hdfs namenode -format启动服务:
bash
收起自动换行复制$HADOOP_HOME/sbin/start-dfs.sh $HADOOP_HOME/sbin/start-yarn.sh
4.2 验证
检查进程:
Master:jps,应看到 NameNode, ResourceManager。
Slave:jps,应看到 DataNode, NodeManager。
访问 Web UI:
HDFS:192.168.1.100:9870
YARN:192.168.1.100:8088
4.3 测试运行
上传文件到 HDFS:
bash
收起自动换行复制$HADOOP_HOME/bin/hdfs dfs -mkdir /input echo "Hello Hadoop Cluster" > test.txt $HADOOP_HOME/bin/hdfs dfs -put test.txt /input运行 WordCount 示例:
bash
收起自动换行复制$HADOOP_HOME/bin/hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input /output $HADOOP_HOME/bin/hdfs dfs -cat /output/part-r-00000
5. 管理与维护
停止服务(Master 节点):
bash
收起自动换行复制$HADOOP_HOME/sbin/stop-dfs.sh $HADOOP_HOME/sbin/stop-yarn.sh查看日志:$HADOOP_HOME/logs。
扩展集群:新增 Slave 节点时,更新 workers 文件并重启服务。
6. 注意事项
资源限制:确保宿主机资源足够,避免虚拟机性能瓶颈。
网络问题:若 ping 不通,检查 VMware 网络设置或防火墙。
教学管理:建议每位同学记录自己的 IP 和主机名,便于协调。
最后编辑:信息技术教研室 更新时间:2025-08-13 10:53