CentOS上如何部署Hadoop
导读:在 CentOS 上部署 Hadoop 的完整步骤 一 环境准备与系统要求 操作系统与网络:建议使用 CentOS 7/8,配置 静态 IP,确保节点间网络互通。 安全策略:为简化部署,测试环境可临时关闭 SELinux 与 防火墙;生产...
在 CentOS 上部署 Hadoop 的完整步骤
一 环境准备与系统要求
- 操作系统与网络:建议使用 CentOS 7/8,配置 静态 IP,确保节点间网络互通。
- 安全策略:为简化部署,测试环境可临时关闭 SELinux 与 防火墙;生产环境应按需放行端口并细化安全策略。
- Java 环境:Hadoop 3.x 要求 Java 8 或 11,推荐安装 OpenJDK 11。
- 用户与权限:建议创建专用用户(如 hadoopuser)并授予 sudo 权限,避免使用 root 直接运行。
- 资源建议:至少 4GB 内存(建议 8GB+)、20GB+ 可用磁盘空间。
二 单机模式部署步骤(适合开发测试)
- 安装 Java 并配置环境变量
- 安装 OpenJDK 11:
sudo yum install -y java-11-openjdk-devel - 配置 JAVA_HOME(写入
~/.bashrc或/etc/profile):echo 'export JAVA_HOME=/usr/lib/jvm/java-11-openjdk' > > ~/.bashrcecho 'export PATH=$JAVA_HOME/bin:$PATH' > > ~/.bashrcsource ~/.bashrc
- 安装 OpenJDK 11:
- 安装与配置 SSH(本机免密)
sudo yum install -y openssh-serversudo systemctl start sshd & & sudo systemctl enable sshdssh-keygen -t rsa(回车跳过密码)cat ~/.ssh/id_rsa.pub > > ~/.ssh/authorized_keys & & chmod 600 ~/.ssh/authorized_keysssh localhost验证
- 下载并解压 Hadoop(以 3.3.6 为例)
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gztar -xzvf hadoop-3.3.6.tar.gz -C /opt/sudo chown -R hadoopuser:hadoopuser /opt/hadoop-3.3.6
- 配置 Hadoop 环境变量(
~/.bashrc)echo 'export HADOOP_HOME=/opt/hadoop-3.3.6' > > ~/.bashrcecho 'export PATH=$HADOOP_HOME/bin:$PATH' > > ~/.bashrcecho 'export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop' > > ~/.bashrcsource ~/.bashrc
- 核心配置(位于
$HADOOP_HOME/etc/hadoop/)- core-site.xml
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://localhost:9000< /value> < /property> < /configuration> - hdfs-site.xml
< configuration> < property> < name> dfs.replication< /name> < value> 1< /value> < /property> < /configuration> - mapred-site.xml(如文件不存在可复制模板 mapred-site.xml.template)
< configuration> < property> < name> mapreduce.framework.name< /name> < value> yarn< /value> < /property> < /configuration> - yarn-site.xml
< configuration> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < /property> < property> < name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name> < value> org.apache.hadoop.mapred.ShuffleHandler< /value> < /property> < /configuration>
- core-site.xml
- 初始化与启动
- 格式化 HDFS:
hdfs namenode -format(仅首次) - 启动:
start-dfs.sh & & start-yarn.sh
- 格式化 HDFS:
- 验证
jps应看到 NameNode、DataNode、ResourceManager、NodeManager- 浏览器访问:http://localhost:9870(HDFS NameNode Web UI)与 http://localhost:8088(YARN ResourceManager)
三 伪分布式与多节点集群部署要点
- 节点规划与主机名解析
- 规划角色:至少 1 个 NameNode、1 个 ResourceManager、若干 DataNode/NodeManager;准备 SSH 免密登录(主节点到所有节点)。
- 配置 /etc/hosts 或使用 DNS,确保主机名可解析。
- 配置文件关键项(示例为伪分布式,多节点时将主机名替换为实际节点名)
- core-site.xml
< configuration> < property> < name> fs.defaultFS< /name> < value> hdfs://namenode:9000< /value> < /property> < property> < name> hadoop.tmp.dir< /name> < value> /usr/local/hadoop/tmp< /value> < /property> < /configuration> - hdfs-site.xml
< configuration> < property> < name> dfs.replication< /name> < value> 1< /value> < /property> < property> < name> dfs.namenode.name.dir< /name> < value> /usr/local/hadoop/data/namenode< /value> < /property> < property> < name> dfs.datanode.data.dir< /value> < value> /usr/local/hadoop/data/datanode< /value> < /property> < /configuration> - yarn-site.xml
< configuration> < property> < name> yarn.nodemanager.aux-services< /name> < value> mapreduce_shuffle< /value> < /property> < property> < name> yarn.nodemanager.aux-services.mapreduce.shuffle.class< /name> < value> org.apache.hadoop.mapred.ShuffleHandler< /value> < /property> < property> < name> yarn.resourcemanager.hostname< /name> < value> resourcemanager< /value> < /property> < /configuration>
- core-site.xml
- 启动与验证
- 仅在 NameNode 上执行:
hdfs namenode -format - 启动:
start-dfs.sh & & start-yarn.sh jps检查进程,访问 9870/8088 验证 Web UI。
- 仅在 NameNode 上执行:
四 常见问题与排查
- SSH 无法免密登录:确认
~/.ssh/authorized_keys权限为 600,并确保sshd已启动。 - Java 版本不兼容:Hadoop 3.x 需 Java 8/11,用
java -version校验,必要时切换 JAVA_HOME。 - 端口被占用或访问受限:检查 9870/8088 端口占用与防火墙/SELinux 策略。
- 权限问题:若以 hadoopuser 运行,确保 HDFS 目录与日志目录属主正确。
- 配置未生效:修改环境变量后执行
source ~/.bashrc或重启会话。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上如何部署Hadoop
本文地址: https://pptw.com/jishu/756477.html
