1. 环境准备:安装Java与SSH Hadoop依赖Java环境,首先安装OpenJDK 8(兼容性最佳):
sudo apt update && sudo apt install -y openjdk-8-jdk
java -version # 验证安装(需显示Java版本信息)
若需远程访问集群,安装OpenSSH服务器并配置本地免密登录(单机模式可选):
sudo apt install -y openssh-server
ssh-keygen -t rsa # 生成密钥对(直接回车)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥到授权列表
ssh localhost # 测试本地连接(无需密码)
2. 下载并解压Hadoop
从Apache官网下载稳定版本(如3.3.4),解压至/usr/local/(系统级目录):
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
为简化命令,可重命名目录:
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
3. 配置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 # 立即生效
验证环境变量:
echo \$HADOOP_HOME # 应输出/usr/local/hadoop
4. 配置Hadoop核心文件
进入Hadoop配置目录($HADOOP_HOME/etc/hadoop),修改以下文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- 单机模式地址 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机模式副本数为1 -->
</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>
cp mapred-site.xml.template mapred-site.xml
<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>
5. 创建HDFS数据目录并格式化 创建NameNode和DataNode的存储目录:
sudo mkdir -p /usr/local/hadoop/data/namenode
sudo mkdir -p /usr/local/hadoop/data/datanode
sudo chown -R \$USER:\$USER /usr/local/hadoop/data # 修改目录所有者(避免权限问题)
首次启动前必须格式化NameNode(初始化元数据):
hdfs namenode -format
(注:格式化会清除所有HDFS数据,仅首次启动需执行)
6. 启动HDFS服务 使用以下命令启动HDFS(包含NameNode和DataNode):
start-dfs.sh
验证服务是否启动成功:
jps # 应显示NameNode、DataNode进程
访问HDFS Web界面(默认端口50070):
http://localhost:50070 # 查看HDFS状态
7. 常用HDFS操作命令
hdfs dfs -mkdir -p /user/\$USER/input # 创建/user/当前用户/input目录
hdfs dfs -put ~/test.txt /user/\$USER/input/ # 将本地test.txt上传至HDFS
hdfs dfs -ls /user/\$USER/input # 查看input目录下的文件
hdfs dfs -get /user/\$USER/input/test.txt ~/download_test.txt # 下载至本地
hdfs dfs -rm /user/\$USER/input/test.txt # 删除文件
hdfs dfs -rmdir /user/\$USER/input # 删除空目录
8. 停止HDFS服务 使用以下命令停止HDFS:
stop-dfs.sh