1. 系统准备
确保Debian系统已更新至最新版本,安装必要工具包:
sudo apt update && sudo apt upgrade -y
sudo apt install -y net-tools vim ssh
关闭防火墙(若需开启,需配置Hadoop相关端口放行):
sudo ufw disable
2. 安装Java环境
Hadoop依赖Java 8及以上版本,推荐使用OpenJDK(Debian默认仓库提供):
sudo apt install -y openjdk-11-jdk
验证Java安装:
java -version
设置JAVA_HOME环境变量(全局生效):
echo 'JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"' | sudo tee -a /etc/environment
source /etc/environment
3. 下载并解压Hadoop
从Apache官网下载最新稳定版Hadoop(如3.3.6),解压至/usr/local目录:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.6 /usr/local/hadoop # 重命名为hadoop方便管理
4. 配置Hadoop环境变量
编辑~/.bashrc(当前用户)或/etc/profile(全局),添加Hadoop路径:
echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc # 使配置生效
5. 配置Hadoop核心文件
Hadoop配置文件位于$HADOOP_HOME/etc/hadoop目录,需修改以下关键文件:
core-site.xml(Hadoop核心设置):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- 单节点用localhost,集群用NameNode主机名 -->
</property>
</configuration>
hdfs-site.xml(HDFS设置):
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单节点设为1,集群根据节点数调整(如3) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
mapred-site.xml(MapReduce设置):
若文件不存在,先复制模板:
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作为资源管理框架 -->
</property>
</configuration>
yarn-site.xml(YARN设置):
<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>
</property>
</configuration>
6. 格式化HDFS
首次启动前需格式化NameNode(仅第一次执行,会清除原有数据):
hdfs namenode -format
7. 启动Hadoop服务
启动HDFS(NameNode和DataNode):
$HADOOP_HOME/sbin/start-dfs.sh
启动YARN(ResourceManager和NodeManager):
$HADOOP_HOME/sbin/start-yarn.sh
8. 验证安装
检查Hadoop进程是否运行:
jps
正常应看到NameNode、DataNode、ResourceManager、NodeManager等进程。
查看HDFS文件系统:
hdfs dfs -ls /
访问Web界面:
http://localhost:9870(Hadoop 3.x版本)http://localhost:80889. 运行Hadoop示例程序(可选)
Hadoop自带WordCount示例,用于验证MapReduce功能:
# 创建输入目录并上传测试文件
hdfs dfs -mkdir -p /input
echo "hello world hello hadoop" > file.txt
hdfs dfs -put file.txt /input
# 运行WordCount程序
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input/file.txt /output
# 查看输出结果
hdfs dfs -cat /output/part-r-00000
输出应显示单词统计结果(如hello 2、world 1、hadoop 1)。