sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本。sudo apt install -y build-essential openssh-server,安装编译工具和SSH服务(用于集群节点间通信)。sudo apt install -y openjdk-8-jdk
java -version # 验证安装(需显示Java版本信息)
配置Java环境变量:编辑~/.bashrc文件,添加以下内容:export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
export PATH=$JAVA_HOME/bin:$PATH
运行source ~/.bashrc使配置生效。wget下载:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
/usr/local/目录:sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop # 重命名为"hadoop"便于管理
sudo chown -R $USER:$USER /usr/local/hadoop
编辑~/.bashrc文件,添加Hadoop相关环境变量:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
运行source ~/.bashrc使配置立即生效。验证Hadoop命令是否可用:
hadoop version # 应显示Hadoop版本信息
进入Hadoop配置目录$HADOOP_HOME/etc/hadoop,修改以下两个关键文件:
配置HDFS的默认文件系统地址(指向本地NameNode):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置HDFS的副本数(单机环境设为1)、NameNode和DataNode的数据存储目录:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机环境设为1,集群环境需调整为大于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>
根据hdfs-site.xml中的配置,创建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 # 设置目录所有者为当前用户
首次启动HDFS前,必须格式化NameNode(初始化元数据存储):
hdfs namenode -format
格式化后会生成/usr/local/hadoop/data/namenode/current目录(包含元数据)。
使用以下命令启动HDFS(包含NameNode和DataNode):
start-dfs.sh
启动后,检查HDFS相关进程是否运行:
jps # 应显示"NameNode"和"DataNode"进程
http://localhost:9870(Hadoop 3.x版本默认端口),若看到HDFS管理界面(显示NameNode和DataNode状态),则说明安装成功。hdfs dfs -mkdir /user/test # 创建HDFS目录
hdfs dfs -put ~/test.txt /user/test # 上传本地文件到HDFS
hdfs dfs -ls /user/test # 列出HDFS目录内容
若需部署多节点HDFS集群,需配置本地主机到自身的SSH无密码登录:
ssh-keygen -t rsa -P '' # 生成SSH密钥(直接回车)
ssh-copy-id $USER@localhost # 将公钥复制到本地主机
ssh localhost # 测试无密码登录(无需输入密码)
通过以上步骤,即可在Ubuntu系统上完成HDFS的安装与基本配置。如需扩展为多节点集群,需重复上述步骤在其他节点安装Hadoop,并修改core-site.xml中的fs.defaultFS为集群NameNode地址,同时配置slaves文件指定DataNode节点列表。