文章目录Hadoop 单节点集群搭建指南 环境准备 详细安装步骤1. 创建专用用户可选但推荐2. 安装SSH并配置免密登录3. 安装Java4. 下载并安装Hadoop5. 配置Hadoop环境6. 配置核心文件7. 格式化HDFS并启动服务8. 验证安装 运行第一个MapReduce作业 常见问题解决1. SSH连接失败2. 端口占用冲突3. 权限问题4. Java版本不兼容 性能调优建议单节点内存配置优化HDFS配置 目录结构说明 日常管理命令 安全配置可选 监控和日志✅ 验证安装成功Hadoop 单节点集群搭建指南 环境准备系统要求Linux/Unix 系统Ubuntu/CentOS 推荐Java JDK 8 或更高版本SSH 服务至少 4GB RAM 和 20GB 磁盘空间安装前检查# 检查系统版本cat/etc/os-release# 检查Java版本java-version# 检查SSH服务sshlocalhost 详细安装步骤1. 创建专用用户可选但推荐sudoadduser hadoopsudousermod-aGsudohadoopsu- hadoop2. 安装SSH并配置免密登录sudoapt-getupdatesudoapt-getinstallopenssh-server openssh-client# 生成密钥ssh-keygen-trsa-P-f~/.ssh/id_rsacat~/.ssh/id_rsa.pub~/.ssh/authorized_keyschmod600~/.ssh/authorized_keys# 测试免密登录sshlocalhost3. 安装Java# Ubuntusudoapt-getinstallopenjdk-8-jdk# CentOSsudoyuminstalljava-1.8.0-openjdk-devel# 设置环境变量echoexport JAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64~/.bashrcechoexport PATH$PATH:$JAVA_HOME/bin~/.bashrcsource~/.bashrc4. 下载并安装Hadoop# 下载Hadoop 3.4.3wgethttps://downloads.apache.org/hadoop/common/hadoop-3.4.3/hadoop-3.4.3.tar.gz# 解压tar-xzvfhadoop-3.4.3.tar.gzsudomvhadoop-3.4.3 /usr/local/hadoopsudochown-Rhadoop:hadoop /usr/local/hadoop5. 配置Hadoop环境# 编辑 ~/.bashrcnano~/.bashrc# 添加以下内容exportHADOOP_HOME/usr/local/hadoopexportHADOOP_INSTALL$HADOOP_HOMEexportHADOOP_MAPRED_HOME$HADOOP_HOMEexportHADOOP_COMMON_HOME$HADOOP_HOMEexportHADOOP_HDFS_HOME$HADOOP_HOMEexportYARN_HOME$HADOOP_HOMEexportHADOOP_COMMON_LIB_NATIVE_DIR$HADOOP_HOME/lib/nativeexportPATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexportHADOOP_OPTS-Djava.library.path$HADOOP_HOME/lib/native6. 配置核心文件编辑 hadoop-env.shcd$HADOOP_HOME/etc/hadoopnanohadoop-env.sh# 设置JAVA_HOMEexportJAVA_HOME/usr/lib/jvm/java-8-openjdk-amd64配置 core-site.xmlconfigurationpropertynamefs.defaultFS/namevaluehdfs://localhost:9000/value/propertypropertynamehadoop.tmp.dir/namevalue/usr/local/hadoop/tmp/value/property/configuration配置 hdfs-site.xmlconfigurationpropertynamedfs.replication/namevalue1/value/propertypropertynamedfs.namenode.name.dir/namevaluefile:///usr/local/hadoop/hdfs/namenode/value/propertypropertynamedfs.datanode.data.dir/namevaluefile:///usr/local/hadoop/hdfs/datanode/value/property/configuration配置 mapred-site.xmlconfigurationpropertynamemapreduce.framework.name/namevalueyarn/value/property/configuration配置 yarn-site.xmlconfigurationpropertynameyarn.nodemanager.aux-services/namevaluemapreduce_shuffle/value/propertypropertynameyarn.nodemanager.env-whitelist/namevalueJAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME/value/property/configuration7. 格式化HDFS并启动服务# 格式化NameNode只在第一次执行hdfs namenode-format# 启动HDFSstart-dfs.sh# 启动YARNstart-yarn.sh# 启动历史服务器mapred--daemonstart historyserver8. 验证安装# 检查进程jps# 预期输出# 1. NameNode# 2. DataNode# 3. SecondaryNameNode# 4. ResourceManager# 5. NodeManager# 6. JobHistoryServer# 访问Web UI# HDFS NameNode: http://localhost:9870# YARN ResourceManager: http://localhost:8088# MapReduce JobHistory: http://localhost:19888 运行第一个MapReduce作业# 创建HDFS目录hdfs dfs-mkdir/input hdfs dfs-mkdir/output# 上传测试数据echoHello World Hello Hadooptest.txt hdfs dfs-puttest.txt /input/# 运行WordCount示例hadoop jar$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.3.jar wordcount /input/test.txt /output/result# 查看结果hdfs dfs-cat/output/result/part-r-00000 常见问题解决1. SSH连接失败# 检查SSH服务状态sudosystemctl statusssh# 修改SSH配置sudonano/etc/ssh/sshd_config# 修改PermitRootLogin yes# 修改PasswordAuthentication yessudosystemctl restartssh2. 端口占用冲突# 检查端口占用netstat-tlnp|grep:9000netstat-tlnp|grep:9870# 修改配置端口# 在core-site.xml中修改fs.defaultFS端口3. 权限问题# 给Hadoop用户授权sudochown-Rhadoop:hadoop /usr/local/hadoopsudochmod-R755/usr/local/hadoop4. Java版本不兼容# 检查Java版本java-version# 更新JAVA_HOME路径# 确保hadoop-env.sh中的JAVA_HOME路径正确 性能调优建议单节点内存配置优化!-- yarn-site.xml --propertynameyarn.nodemanager.resource.memory-mb/namevalue2048/value/propertypropertynameyarn.scheduler.maximum-allocation-mb/namevalue1536/value/propertypropertynameyarn.nodemanager.vmem-check-enabled/namevaluefalse/value/propertyHDFS配置!-- hdfs-site.xml --propertynamedfs.blocksize/namevalue128m/value/propertypropertynamedfs.namenode.handler.count/namevalue20/value/property 目录结构说明/usr/local/hadoop/ ├── bin/ # 可执行脚本 ├── sbin/ # 管理脚本 ├── etc/hadoop/ # 配置文件 ├── logs/ # 日志文件 ├── tmp/ # 临时文件 ├── hdfs/ # HDFS数据 │ ├── namenode/ # NameNode元数据 │ └── datanode/ # DataNode数据块 └── share/ # 库文件和示例 日常管理命令# 启动所有服务start-all.sh# 停止所有服务stop-all.sh# 检查HDFS状态hdfs dfsadmin-report# 检查HDFS空间hdfs dfs-df-h# 查看运行中的任务yarnapplication-list 安全配置可选# 配置Kerberos仅生产环境需要# 1. 安装Kerberos客户端# 2. 配置krb5.conf# 3. 生成keytab文件# 4. 修改Hadoop配置文件启用安全模式 监控和日志# 查看日志tail-f$HADOOP_HOME/logs/hadoop-*-namenode-*.logtail-f$HADOOP_HOME/logs/hadoop-*-datanode-*.logtail-f$HADOOP_HOME/logs/yarn-*-resourcemanager-*.log# 启用监控# 可以配置Ganglia或Prometheus进行监控✅ 验证安装成功完成以上步骤后您应该能够✅ 访问 http://localhost:9870 查看HDFS状态✅ 访问 http://localhost:8088 查看YARN应用✅ 成功运行WordCount示例作业✅ 在HDFS中创建、上传、下载文件✅ 通过jps命令看到6个Hadoop进程正常运行这个单节点集群为您提供了一个完整的Hadoop开发和测试环境适合学习和原型开发。当您需要扩展到生产环境时可以参考多节点集群部署指南。