HDFS在Debian上的配置步骤
HDFS依赖Java运行环境,需先安装OpenJDK(推荐Java 8及以上版本):
sudo apt update
sudo apt install openjdk-11-jdk # 或openjdk-8-jdk(根据Hadoop版本选择)
验证安装:
java -version
确保输出显示Java版本信息,否则需检查安装是否成功。
从Apache官网下载稳定版本的Hadoop(如3.3.1),解压至/usr/local目录:
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz
sudo tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop # 重命名为hadoop方便管理
赋予Hadoop目录执行权限:
sudo chown -R $USER:$USER /usr/local/hadoop
编辑~/.bashrc(当前用户)或/etc/profile(全局),添加Hadoop环境变量:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际Java安装路径调整
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source ~/.bashrc # 或source /etc/profile
验证环境变量:
echo $HADOOP_HOME # 应输出Hadoop安装路径
Hadoop配置文件位于$HADOOP_HOME/etc/hadoop目录,需修改以下关键文件:
配置HDFS默认文件系统和临时目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- NameNode主机名及端口 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value> <!-- 临时文件目录 -->
</property>
</configuration>
配置HDFS副本数、NameNode和DataNode数据目录:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 副本数(单节点设为1,集群设为3+) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value> <!-- NameNode元数据目录 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value> <!-- DataNode数据目录 -->
</property>
</configuration>
配置MapReduce运行框架为YARN:
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> <!-- 使用YARN管理MapReduce任务 -->
</property>
</configuration>
配置YARN资源管理器及Shuffle服务:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- 启用MapReduce Shuffle服务 -->
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value> <!-- Shuffle处理器类 -->
</property>
</configuration>
NameNode是HDFS的核心元数据节点,首次启动前需格式化(仅第一次启动时执行):
hdfs namenode -format
格式化会清除HDFS所有数据,请谨慎操作!
进入Hadoop的sbin目录,启动HDFS服务:
cd $HADOOP_HOME/sbin
./start-dfs.sh
启动后,可通过以下命令查看进程状态:
jps # 应显示NameNode、DataNode进程
创建测试目录并上传文件:
hdfs dfs -mkdir -p /test # 创建/test目录
hdfs dfs -put /etc/hosts /test # 上传本地文件至HDFS
hdfs dfs -ls /test # 列出/test目录内容
访问NameNode的Web界面(默认端口9000):
http://<namenode-ip>:9000
输入NameNode主机名或IP即可查看HDFS状态。
注意事项:
dfs.replication设为1;集群部署需设为3及以上。/usr/local/hadoop/tmp、/usr/local/hadoop/dfs/name、/usr/local/hadoop/dfs/data目录存在且具备读写权限。