一、环境准备
1.1 基础环境信息
•操作系统: CentOS 7•Hadoop 版本: 2.7.7•JDK 版本: OpenJDK 1.8.0•SSH 端口: 31235 (非默认22端口)
1.2 节点规划
| xiangys0134-hadoop01 | |||
| xiangys0134-hadoop02 | |||
| xiangys0134-hadoop03 |
二、基础环境配置
2.1 配置 Hosts 解析
在所有节点上执行,确保集群内主机名互通。
# 编辑 /etc/hosts192.168.10.150 xiangys0134-hadoop01192.168.10.151 xiangys0134-hadoop02192.168.10.152 xiangys0134-hadoop03
2.2 安装 JDK
在所有节点上安装 OpenJDK 8。
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel2.3 配置 SSH 免密登录
由于 SSH 端口非默认 22,需指定端口进行配置。
1.
生成密钥对:
(在 hadoop02 节点执行):
ssh-keygen -t rsa打包并分发公钥:
cd ~/tar -czvf /tmp/ssh-key.tar.gz .sshscp -P 31235 /tmp/ssh-key.tar.gz opadm@192.168.10.150:/tmpscp -P 31235 /tmp/ssh-key.tar.gz opadm@192.168.10.152:/tmp
在 Master 节点解压并配置:
tar -zxvf /tmp/ssh-key.tar.gz -C ~/# 将公钥内容追加到 authorized_keyscat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
测试连接:
ssh -p 31235 opadm@192.168.10.150三、Hadoop 安装与环境变量
3.1 分发安装包
(在 Master 节点操作):
scp -P 31235 hadoop-2.7.7.tar.gz opadm@192.168.10.151:/tmp/scp -P 31235 hadoop-2.7.7.tar.gz opadm@192.168.10.152:/tmp/
1.
解压安装 (所有节点):
sudo tar -zxvf hadoop-2.7.7.tar.gz -C /usr/local/配置环境变量 (在 Master 节点的中添加):
~/.bashrcexport HADOOP_HOME=/usr/local/hadoop-2.7.7export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
执行 ,使配置生效。
source ~/.bashrc四、目录与权限配置
在所有节点上创建数据和日志目录,并修改属主。
sudo mkdir -p /data/hadoop/hdfs/{nn,snn,dn}sudo mkdir -p /var/log/hadoop/yarnsudo chown -R opadm. /data/hadoop/sudo chown -R opadm. /var/log/hadoop/
•nn: NameNode 目录•dn: DataNode 目录•snn: SecondaryNameNode 目录
五、核心配置文件修改
进入 $HADOOP_HOME/etc/hadoop 目录进行配置。
5.1 core-site.xml
<configuration><property><name>io.file.buffer.size</name><value>131072</value></property><property><name>fs.defaultFS</name><value>hdfs://xiangys0134-hadoop01:8020</value></property></configuration>
5.2 hdfs-site.xml
<configuration><!-- NameNode 和 DataNode 路径 --><property><name>dfs.namenode.name.dir</name><value>file:///data/hadoop/hdfs/nn</value></property><property><name>dfs.datanode.data.dir</name><value>file:///data/hadoop/hdfs/dn</value></property><!-- 副本数量 --><property><name>dfs.replication</name><value>2</value></property><!-- 关闭权限检查 --><property><name>dfs.permissions</name><value>false</value></property><!-- SecondaryNameNode 配置 --><property><name>dfs.namenode.secondary.http-address</name><value>xiangys0134-hadoop02:50090</value></property></configuration>
5.3 yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>xiangys0134-hadoop01:8088</value></property><property><name>yarn.resourcemanager.address</name><value>xiangys0134-hadoop01:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>xiangys0134-hadoop01:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>xiangys0134-hadoop01:8031</value></property><property><name>mapreduce.jobhistory.address</name><value>xiangys0134-hadoop01:10020</value></property><!-- 禁用虚拟内存检查 --><property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value></property></configuration>
5.4 mapred-site.xml
首先重命名模板文件:cp mapred-site.xml.template mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>xiangys0134-hadoop03:10020</value></property></configuration>
5.5 配置 Slaves 节点
编辑 slaves 文件,添加所有工作节点:
xiangys0134-hadoop01xiangys0134-hadoop02xiangys0134-hadoop03
六、启动与验证
6.1 格式化 NameNode (仅首次执行)
在 Master 节点执行:
hadoop namenode -format验证:检查 /data/hadoop/hdfs/nn/ 目录下是否生成了 current 文件夹。
6.2 启动 HDFS
start-dfs.sh验证:
jps# 预期进程: NameNode, DataNode, SecondaryNameNode
6.3 启动 YARN
start-yarn.sh七、Web UI 访问
你可以通过浏览器访问以下地址来监控集群状态:
| HDFS Overview | http://192.168.10.150:50070[1] | ||
| YARN ResourceManager | http://192.168.10.150:8088[2] | ||
| SecondaryNameNode | http://192.168.10.151:50090[3] |
八、启用 Kerberos 认证 (可选)
注意: 此部分配置较为复杂,需确保 Kerberos 服务已部署。
1.
core-site.xml:
<property><name>hadoop.security.authentication</name><value>kerberos</value></property><property><name>hadoop.security.authorization</name><value>true</value></property>
hdfs-site.xml (NameNode, DataNode, SNN): 配置对应的 Principal 和 Keytab 路径 (如 dfs.namenode.kerberos.principal)。
yarn-site.xml: 配置 ResourceManager 和 NodeManager 的 Keytab。
4.JAAS 配置: 创建 hdfs_jaas.conf 并在 hadoop-env.sh 中引用。
九、常见问题与提示
•端口变更: 由于 SSH 使用了 31235 端口,所有涉及远程连接的操作都需确保该端口通畅。•主机名一致性: 请务必检查所有配置文件中的主机名是否与实际主机名(hostname 命令输出)完全一致。•权限问题: 确保 Hadoop 运行用户 (opadm) 对数据目录 (/data/hadoop) 拥有完全读写权限。
夜雨聆风