Linux下如何高效部署Hadoop
导读:1. 前期准备:硬件与系统配置 硬件规划:选择高性能硬件,主节点(NameNode/ResourceManager)配置应优于从节点(DataNode/NodeManager)——建议使用SSD替代HDD提升I/O性能,配备多核CPU(如...
1. 前期准备:硬件与系统配置
- 硬件规划:选择高性能硬件,主节点(NameNode/ResourceManager)配置应优于从节点(DataNode/NodeManager)——建议使用SSD替代HDD提升I/O性能,配备多核CPU(如Intel Xeon系列)和大内存(根据集群规模调整,如16GB+ per节点);集群节点间采用10Gbps及以上高速网络,减少数据传输瓶颈。
- 操作系统优化:禁用非必要服务(如telnet、ftp),减少资源消耗;调整系统参数:增加文件描述符限制(
nofile设为65535以上)、网络连接数上限(somaxconn设为32767以上);关闭swap分区(swapoff -a),避免内存不足时系统性能骤降。
2. 基础环境安装与配置
- Java环境:Hadoop依赖Java运行环境,推荐使用OpenJDK 8或11(兼容性更好)。通过包管理器安装(如
sudo apt install openjdk-11-jdk),验证安装(java -version)。 - SSH免密登录:配置主节点到所有从节点的免密登录,避免每次操作输入密码。步骤:生成密钥对(
ssh-keygen -t rsa),将公钥复制到从节点(cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys),测试免密登录(ssh slave1)。
3. Hadoop安装与核心配置
- 下载与解压:从Apache官网下载稳定版本(如Hadoop 3.3.6),解压至指定目录(如
/usr/local/hadoop),设置目录权限(chown -R hadoop:hadoop /usr/local/hadoop)。 - 环境变量配置:编辑
~/.bashrc(或/etc/profile),添加以下内容:执行export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际Java路径调整 export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource ~/.bashrc使配置生效。 - 核心配置文件调整:
core-site.xml:设置HDFS默认文件系统地址(fs.defaultFS)和临时目录(hadoop.tmp.dir),例如:< property> < name> fs.defaultFS< /name> < value> hdfs://master:9000< /value> < /property> < property> < name> hadoop.tmp.dir< /name> < value> /usr/local/hadoop/tmp< /value> < /property>hdfs-site.xml:配置NameNode和DataNode的存储路径(dfs.namenode.name.dir、dfs.datanode.data.dir),以及副本因子(dfs.replication,生产环境建议3,测试环境可设为1):< property> < name> dfs.namenode.name.dir< /name> < value> /usr/local/hadoop/dfs/name< /value> < /property> < property> < name> dfs.datanode.data.dir< /name> < value> /usr/local/hadoop/dfs/data< /value> < /property> < property> < name> dfs.replication< /name> < value> 3< /value> < /property>mapred-site.xml:指定MapReduce运行框架为YARN(mapreduce.framework.name):< property> < name> mapreduce.framework.name< /name> < value> yarn< /value> < /property>yarn-site.xml:配置ResourceManager的辅助服务(yarn.nodemanager.aux-services)和端口:< property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < /property> < property> < name> yarn.resourcemanager.hostname< /name> < value> master< /value> < /property>
4. 集群启动与验证
- 格式化NameNode:首次启动前,需格式化NameNode(仅在首次安装时执行):
hdfs namenode -format - 启动集群:依次执行以下命令启动HDFS和YARN:
start-dfs.sh # 启动HDFS(NameNode、DataNode) start-yarn.sh # 启动YARN(ResourceManager、NodeManager) - 验证状态:使用
jps命令检查进程(主节点应有NameNode、ResourceManager;从节点应有DataNode、NodeManager);访问Web界面(HDFS:http://master:50070,YARN:http://master:8088)确认集群运行状态。
5. 性能优化:提升集群效率
- HDFS参数调优:根据数据规模调整块大小(
dfs.block.size,大文件设为256MB或512MB,小文件可合并后存储);优化NameNode处理能力(dfs.namenode.handler.count,设为10以上,提升并发请求处理能力);启用数据均衡(hdfs balancer命令),定期重新分配数据,避免节点存储不均。 - MapReduce/YARN调优:合理分配任务内存(
mapreduce.map.memory.mb、mapreduce.reduce.memory.mb,根据节点内存调整,如Map任务设为2GB,Reduce任务设为4GB);提高数据本地化(通过机架感知策略topology.script.file.name,让任务尽量在数据所在节点执行,减少网络传输);启用数据压缩(mapreduce.map.output.compress设为true,使用Snappy算法,减少中间数据存储和传输开销)。 - 资源管理优化:使用YARN的公平调度器(
yarn.scheduler.fair.share)或容量调度器(yarn.scheduler.capacity.root.queues),合理分配资源,避免单个作业占用过多资源;调整DataNode数据目录(dfs.datanode.data.dir,使用多块磁盘,如/disk1/data,/disk2/data,提升I/O并行能力)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux下如何高效部署Hadoop
本文地址: https://pptw.com/jishu/745279.html
