系统更新与基础工具
运行sudo apt update && sudo apt upgrade -y更新系统;安装build-essential(编译工具)、openssh-server(SSH服务,用于集群节点间通信):
sudo apt install -y build-essential openssh-server。
Java环境配置
Hadoop依赖Java 8(推荐OpenJDK):
sudo apt install -y openjdk-8-jdk
java -version # 验证安装(需显示Java 8版本)
配置环境变量(编辑~/.bashrc或/etc/profile):
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # 根据实际路径调整
export PATH=$JAVA_HOME/bin:$PATH
source ~/.bashrc # 生效配置
```。
Hadoop下载与解压
从Apache官网下载稳定版本(如3.3.4),解压至/usr/local/:
wget https://downloads.apache.org/hadoop/common/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 # 重命名为hadoop简化路径
```。
编辑$HADOOP_HOME/etc/hadoop/下的关键配置文件,适配Ubuntu环境:
core-site.xml(核心功能配置)
设置HDFS默认文件系统地址及临时目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- 单机模式;集群需改为namenode主机名 -->
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value> <!-- I/O缓冲区大小(128KB),提升文件读写效率 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value> <!-- 临时目录,需提前创建 -->
</property>
</configuration>
```。
hdfs-site.xml(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/hdfs/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/hdfs/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
```。
yarn-site.xml(YARN资源管理配置,可选但推荐)
若使用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>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value> <!-- NodeManager可用内存(MB) -->
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>8</value> <!-- NodeManager可用CPU核心数 -->
</property>
</configuration>
```。
为HDFS数据目录创建物理路径并赋予权限(避免权限问题导致启动失败):
sudo mkdir -p /usr/local/hadoop/hdfs/namenode
sudo mkdir -p /usr/local/hadoop/hdfs/datanode
sudo mkdir -p /usr/local/hadoop/tmp
sudo chown -R $USER:$USER /usr/local/hadoop/hdfs # 将目录所有者设为当前用户
sudo chmod -R 755 /usr/local/hadoop/tmp # 设置临时目录权限
```。
#### **四、NameNode格式化与集群启动**
1. **格式化NameNode**
首次启动前需格式化NameNode(初始化元数据):
```bash
hdfs namenode -format
(注:格式化会清除原有数据,生产环境需谨慎操作。)
启动HDFS服务
使用以下命令启动HDFS(包含NameNode、DataNode):
start-dfs.sh
验证进程是否启动:
jps # 应显示NameNode、DataNode进程
访问Web界面
浏览器输入http://localhost:50070(HDFS管理界面),查看集群状态。。
硬件配置优化
yarn.nodemanager.resource.memory-mb设置YARN可用内存。HDFS参数调优
<property>
<name>dfs.blocksize</name>
<value>268435456</value> <!-- 256MB -->
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
```。
网络与数据本地化
net.core.somaxconn设为1024,提升并发连接能力)。mapreduce.job.locality.wait调整等待时间,默认3秒),减少网络传输。。常用命令
hdfs dfsadmin -report(显示DataNode信息、存储使用情况)。hdfs dfs -mkdir(创建目录)、hdfs dfs -put(上传文件)、hdfs dfs -ls(列出目录)。stop-dfs.sh。。监控工具
$HADOOP_HOME/logs/),排查性能瓶颈(如NameNode RPC延迟、DataNode连接问题)。。以上配置覆盖了HDFS在Ubuntu上的基础部署与性能优化,可根据实际业务场景(如数据规模、访问频率)调整参数,实现最佳性能。