基于你的服务器配置(3 台服务器,每台 16 核、128 GB 内存、1TB SSD 和 4TB SATA 硬盘),以下是如何安装和配置一个 Hadoop/HDFS 集群 的详细指南。
在 Hadoop 集群中,HDFS 是分布式存储系统,通常需要以下角色:
基于你的 3 台服务器,可以采用以下规划:
确保所有服务器都运行 Linux/Ubuntu (建议 Ubuntu 22.04) 系统,并创建统一的 Hadoop 用户:
sudo adduser hadoop
sudo usermod -aG sudo hadoop
su - hadoop
Hadoop 集群需要无密码的 SSH 通信。
在 Server 1 上运行以下命令:
ssh-keygen -t rsa
将生成的公钥 ~/.ssh/id_rsa.pub
分发到所有节点(包括 Server 1 本身)。
~/.ssh/authorized_keys
:ssh-copy-id hadoop@server2_ip
ssh-copy-id hadoop@server3_ip
ssh-copy-id hadoop@server1_ip
验证无密码登录:
ssh hadoop@server2_ip
ssh hadoop@server3_ip
Hadoop 需要 Java 环境:
sudo apt update
sudo apt install openjdk-11-jdk -y
java -version
从 Apache 官方网站下载 Hadoop:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -xvzf hadoop-3.3.6.tar.gz
mv hadoop-3.3.6 ~/hadoop
nano ~/.bashrc
在 ~/.bashrc
添加以下内容:
export HADOOP_HOME=~/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
使环境变量生效:
source ~/.bashrc
以下是需要修改的配置文件:
路径:$HADOOP_HOME/etc/hadoop/core-site.xml
配置:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://server1_ip:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
</property>
</configuration>
路径:$HADOOP_HOME/etc/hadoop/hdfs-site.xml
配置:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/hadoop/hdfs/datanode</value>
</property>
</configuration>
路径:$HADOOP_HOME/etc/hadoop/yarn-site.xml
配置:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>server1_ip</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
路径:$HADOOP_HOME/etc/hadoop/mapred-site.xml
复制模板文件并编辑:
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
配置:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在 Server 1 上格式化 NameNode:
hdfs namenode -format
在 Server 1 上运行:
start-dfs.sh
在 Server 1 上运行:
start-yarn.sh
jps
命令检查每个节点上的服务:
创建 HDFS 目录:
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
上传文件到 HDFS:
hdfs dfs -put /path/to/local/file /user/hadoop/
查看文件:
hdfs dfs -ls /user/hadoop
Hadoop 提供了 Web 界面来监控集群状态:
http://server1_ip:9870
http://server1_ip:8088
你的服务器有两块硬盘(1TB SSD 和 4TB SATA),可以按以下方式配置存储:
在 hdfs-site.xml
中配置多个存储目录:
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///mnt/ssd/data,file:///mnt/sata/data</value>
</property>
确保你挂载了这两个硬盘到相应的目录,如 /mnt/ssd
和 /mnt/sata
。
core-site.xml
、hdfs-site.xml
、yarn-site.xml
)。hdfs dfs
命令和 Web UI 界面。通过上述步骤,你可以成功部署一个 3 节点的 Hadoop/HDFS 集群,并将其用于分布式存储和计算任务。