克隆虚拟机组成集群
一、克隆虚拟机
1. 准备基础虚拟机
- 确保基础虚拟机已安装好操作系统(如 Ubuntu)、Java 和 Hadoop。
- 关闭防火墙并禁用 SELinux(如适用):
bash
sudo ufw disable # Ubuntu sudo systemctl disable firewalld # CentOS
- 生成 SSH 密钥并配置无密码登录:
bash
ssh-keygen -t rsa -P "" cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
2. 克隆虚拟机
- 使用虚拟化软件(如 VMware 或 VirtualBox)克隆基础虚拟机。
- 至少克隆 3 台虚拟机(1 个 NameNode + 2 个 DataNode)。
- 为每个克隆机分配唯一的静态 IP 地址(如:192.168.1.101~103)。
二、配置集群
1. 修改主机名和 hosts 文件
- 在每台虚拟机上修改主机名:
bash
sudo hostnamectl set-hostname hadoop-master # 主节点 sudo hostnamectl set-hostname hadoop-slave1 # 从节点1 sudo hostnamectl set-hostname hadoop-slave2 # 从节点2
- 编辑
/etc/hosts
文件,添加所有节点的 IP 和主机名映射:plaintext
192.168.1.101 hadoop-master 192.168.1.102 hadoop-slave1 192.168.1.103 hadoop-slave2
2. 配置 SSH 无密码登录
- 在主节点(
hadoop-master
)上收集所有节点的公钥:bash
ssh-copy-id hadoop-master ssh-copy-id hadoop-slave1 ssh-copy-id hadoop-slave2
- 测试连接:
bash
ssh hadoop-slave1 # 应无需密码登录
3. 配置 Hadoop
在主节点上修改 Hadoop 配置文件(路径:$HADOOP_HOME/etc/hadoop
):
core-site.xml
xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop-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>file:/opt/hadoop/data/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:/opt/hadoop/data/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.resourcemanager.hostname</name><value>hadoop-master</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
workers
plaintext
hadoop-slave1
hadoop-slave2
三、同步配置并启动集群
1. 同步配置文件到所有从节点
bash
scp $HADOOP_HOME/etc/hadoop/* hadoop-slave1:$HADOOP_HOME/etc/hadoop/
scp $HADOOP_HOME/etc/hadoop/* hadoop-slave2:$HADOOP_HOME/etc/hadoop/
2. 格式化 NameNode(仅首次启动时执行)
bash
hdfs namenode -format
3. 启动集群
bash
start-dfs.sh # 启动 HDFS
start-yarn.sh # 启动 YARN
4. 验证集群状态
bash
# 在主节点查看进程
jps# 应看到以下进程:
# - NameNode、ResourceManager(主节点)
# - DataNode、NodeManager(从节点)# 访问 Web UI
http://hadoop-master:9870 # HDFS 管理界面
http://hadoop-master:8088 # YARN 资源管理界面
四、运行 WordCount 测试
bash
# 创建输入目录并上传文件
hdfs dfs -mkdir -p /user/input
hdfs dfs -put $HADOOP_HOME/README.txt /user/input# 执行 WordCount
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /user/input /user/output# 查看结果
hdfs dfs -cat /user/output/part-r-00000