一、前期准备:构建高效部署基础
ulimit -n 65536
)和内核参数(如net.core.somaxconn
),支持更多并发连接。sudo dnf install -y java-1.8.0-openjdk-devel
安装JDK;配置环境变量(JAVA_HOME
指向JDK路径,添加$JAVA_HOME/bin
到PATH
),并通过java -version
验证安装。二、Hadoop核心部署:自动化与规范化
wget
命令下载后解压至/opt/hadoop
(系统级目录,便于统一管理);创建专用目录结构(如/opt/hadoop/tmp
用于临时文件、/data/hadoop/namenode
用于NameNode数据、/data/hadoop/datanode
用于DataNode数据),并设置hadoop:hadoop
用户组所有权(避免权限问题)。/etc/profile.d/hadoop.sh
(系统级环境变量,所有用户生效),添加以下内容:export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
执行source /etc/profile.d/hadoop.sh
使配置生效,确保hadoop
命令全局可用。ssh-keygen -t rsa -b 4096 -N "" -f ~/.ssh/id_rsa
;将公钥复制到所有从节点(DataNode、ResourceManager等):ssh-copy-id hadoop@datanode1
;测试免密登录(ssh datanode1
),确保主节点可无密码访问所有节点(简化集群管理操作)。三、核心配置文件优化:针对性调整参数
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:9000</value> <!-- NameNode RPC地址 -->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value> <!-- 临时文件目录 -->
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/datanode</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager</value> <!-- ResourceManager节点主机名 -->
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
以上配置需根据集群规模(如节点数量、数据量)调整,例如增大yarn.nodemanager.resource.memory-mb
(NodeManager可用内存)以支持更大任务。四、启动与验证:确保集群可用性
hdfs namenode -format
,初始化HDFS元数据(仅首次启动需要)。注意:格式化会清除原有数据,生产环境需谨慎操作。start-dfs.sh # 启动NameNode、DataNode
start-yarn.sh # 启动ResourceManager、NodeManager
jps
命令检查进程:主节点应显示NameNode
、ResourceManager
,从节点应显示DataNode
、NodeManager
;访问Web界面(http://namenode:50070
查看HDFS状态,http://resourcemanager:8088
查看YARN任务队列),确认集群正常运行。五、后续优化:提升集群性能与稳定性
core-site.xml
中配置topology.script.file.name
,指定机架感知脚本),优化数据存储分布(将副本分散到不同机架,提高容错性);调整内核参数(如net.ipv4.tcp_tw_reuse=1
,复用TCP连接,减少网络延迟)。yarn.scheduler.maximum-allocation-mb
设置为NodeManager内存的80%,避免内存溢出);启用数据压缩(如mapreduce.map.output.compress=true
,mapreduce.output.fileoutputformat.compress=true
,使用Snappy或Gzip算法,减少磁盘IO和网络传输)。hdfs dfsadmin -saveNamespace
命令),制定数据恢复预案。