1. 准备Linux基础环境
选择稳定的Linux发行版(如Ubuntu Server 20.04 LTS、CentOS 7),确保系统已更新至最新版本(sudo apt update && sudo apt upgrade)。安装必要工具(如wget、vim),用于下载和解压Hadoop安装包。
2. 安装Java运行环境(JRE/JDK)
Hadoop依赖Java环境,推荐安装OpenJDK 8或11(兼容性更好)。以Ubuntu为例,执行以下命令:
sudo apt install openjdk-11-jdk
验证安装:java -version(需显示Java版本信息)、javac -version(验证编译器是否可用)。
3. 下载并解压Hadoop
从Apache Hadoop官网下载最新稳定版本(如3.3.5),解压至指定目录(如/usr/local):
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
sudo tar -zxvf hadoop-3.3.5.tar.gz -C /usr/local/
为方便使用,可将Hadoop目录重命名:sudo mv hadoop-3.3.5 hadoop。
4. 配置Hadoop环境变量
编辑用户家目录下的.bashrc文件(或全局配置文件/etc/profile),添加以下内容:
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 # 根据实际Java安装路径调整
使配置生效:source ~/.bashrc。
5. 配置Hadoop核心文件
进入$HADOOP_HOME/etc/hadoop目录,修改以下关键配置文件:
localhost,集群模式为NameNode IP/主机名):<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/dfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/dfs/datanode</value>
</property>
</configuration>
mapred-site.xml.template生成):指定MapReduce运行框架为YARN:<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
```。
6. 配置SSH免密登录(集群模式必需)
若搭建多节点集群,需配置NameNode与其他节点(DataNode、ResourceManager等)之间的SSH免密登录:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成密钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 将公钥添加至授权文件
ssh-copy-id hadoop@node2 # 复制公钥到其他节点(替换node2为实际主机名/IP)
测试免密登录:ssh hadoop@node2(无需输入密码)。
7. 格式化HDFS并启动集群
HDFS首次启动前需格式化NameNode(注意:格式化会清除HDFS中的所有数据,仅首次启动时执行):
hdfs namenode -format
启动HDFS(NameNode和DataNode)和YARN(ResourceManager和NodeManager)服务:
start-dfs.sh
start-yarn.sh
验证服务是否启动成功:
jps命令查看进程(应包含NameNode、DataNode、ResourceManager、NodeManager);http://localhost:50070,YARN:http://localhost:8088)。8. 运行Hadoop MapReduce作业
通过命令行操作HDFS,上传本地数据并运行示例作业(以WordCount为例):
hdfs dfs -mkdir -p /user/hadoop/input
hdfs dfs -put /local/path/to/input.txt /user/hadoop/input/
wordcount.jar):hadoop jar /path/to/wordcount.jar WordCount /user/hadoop/input /user/hadoop/output
hdfs dfs -cat /user/hadoop/output/part-r-00000
```。