CentOS7下的大数据集群(Hadoop生态)安装部署_centos7 搭建大数据集群
一、集群化环境前置准备
1.1 虚拟机集群规划
1.1.1 节点角色分配(3 节点方案)
1.1.2 基础环境配置(所有节点执行)
- 克隆虚拟机:
通过 VMware 克隆 3 台 CentOS 虚拟机,配置固定 IP 并修改主机名(文档段落:-)。bash
hostnamectl set-hostname node1 # 各节点分别设置为node1/node2/node3
- 关闭防火墙与 SELinux(文档段落:-):
bash
systemctl stop firewalld && systemctl disable firewalldsed -i \'s/SELINUX=enforcing/SELINUX=disabled/\' /etc/sysconfig/selinuxreboot
- 配置主机名映射(文档段落:-):
bash
echo \"192.168.88.130 node1\" >> /etc/hostsecho \"192.168.88.131 node2\" >> /etc/hostsecho \"192.168.88.132 node3\" >> /etc/hosts
1.2 SSH 免密登录配置(文档段落:-)
bash
# 生成密钥对(node1执行)ssh-keygen -t rsa -b 4096 -N \"\"# 分发公钥到node2/node3ssh-copy-id node2 && ssh-copy-id node3# 验证免密登录ssh node2 \"echo hello from node1\"
二、JDK 环境统一部署
2.1 下载与安装(所有节点执行)
bash
# 下载JDK 8压缩包(文档段落:-)wget https://download.oracle.com/java/8/latest/jdk-8u351-linux-x64.tar.gz# 解压并创建软链接tar -zxvf jdk-8u351-linux-x64.tar.gz -C /export/serverln -s /export/server/jdk1.8.0_351 /export/server/jdk
2.2 环境变量配置
bash
# 编辑系统配置文件(文档段落:-)vim /etc/profileexport JAVA_HOME=/export/server/jdkexport PATH=$JAVA_HOME/bin:$PATHsource /etc/profile # 立即生效# 验证安装java -version # 应输出\"1.8.0_351\"
三、Hadoop 集群核心组件部署
3.1 安装包下载与解压
bash
# 下载Hadoop 3.3.0(文档段落:-)wget http://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz# 解压并创建软链接(node1执行)tar -zxvf hadoop-3.3.0.tar.gz -C /export/serverln -s /export/server/hadoop-3.3.0 /export/server/hadoop
3.2 核心配置文件修改
3.2.1 hadoop-env.sh
(文档段落:-)
bash
vim /export/server/hadoop/etc/hadoop/hadoop-env.shexport JAVA_HOME=/export/server/jdk # 配置Java路径export HADOOP_HOME=/export/server/hadoop
3.2.2 core-site.xml
(文档段落:-)
xml
fs.defaultFS hdfs://node1:8020 io.file.buffer.size 131072
3.2.3 hdfs-site.xml
(文档段落:-)
xml
dfs.namenode.name.dir /data/nn dfs.datanode.data.dir /data/dn dfs.replication 2
3.2.4 yarn-site.xml
(文档段落:-)
xml
yarn.resourcemanager.hostname node1 yarn.nodemanager.aux-services mapreduce_shuffle
四、集群角色配置与启动
4.1 角色分配与目录创建
4.2 格式化 NameNode(node1 执行)
bash
hadoop namenode -format # 首次启动前执行(文档段落:)
4.3 启动 HDFS 集群
bash
# 启动NameNode和DataNodestart-dfs.sh # 文档段落:# 验证进程(node1应看到NameNode,node2/node3应看到DataNode)jps | grep -E \"NameNode|DataNode\"
4.4 启动 YARN 集群
bash
start-yarn.sh # 文档段落:# 验证进程(node1应看到ResourceManager,node2/node3应看到NodeManager)jps | grep -E \"ResourceManager|NodeManager\"
五、集群状态验证与管理
5.1 网页管理界面
- HDFS 状态:访问
http://node1:9870
,查看文件系统概览、节点列表。 - YARN 状态:访问
http://node1:8088
,查看应用程序运行情况、资源使用统计。
5.2 命令行验证
5.2.1 查看 HDFS 文件系统
bash
hadoop fs -ls / # 列出根目录文件hadoop fs -mkdir /test # 创建测试目录hadoop fs -put /etc/hosts /test/hosts.txt # 上传文件到HDFS
5.2.2 运行 MapReduce 示例程序
bash
# 执行单词计数示例(文档段落:)hadoop jar /export/server/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount /test/hosts.txt /output# 查看结果hadoop fs -cat /output/part-r-00000
六、常见故障排查与优化
6.1 节点无法启动
可能原因:
- 防火墙未关闭:确保所有节点防火墙已禁用(文档段落:)。
- SSH 免密失败:检查
~/.ssh/authorized_keys
是否包含所有节点公钥(文档段落:)。 - 配置文件错误:使用
hadoop namenode -checkpoint
检查配置语法。
6.2 数据写入失败
解决方法:
- 检查
dfs.replication
配置是否与节点数匹配,建议设置为 2 或 3。 - 确保 DataNode 数据目录权限正确:
chown -R hadoop:hadoop /data/dn
。
6.3 性能优化建议
- 调整副本数:生产环境建议
dfs.replication=3
,提升数据可靠性。 - 增加资源配置:在
yarn-site.xml
中配置 NodeManager 内存:xml
yarn.nodemanager.resource.memory-mb 8192
七、Hadoop 生态组件扩展部署(可选)
7.1 HBase 集群部署(依赖 HDFS)
- 配置
hbase-site.xml
(文档段落:-):xml
hbase.rootdir hdfs://node1:8020/hbase hbase.cluster.distributed true
- 启动 HBase:
bash
start-hbase.shhbase shell # 进入HBase命令行,创建表测试
7.2 Kafka 集群部署(依赖 Zookeeper)
- 配置
server.properties
:properties
zookeeper.connect=node1:2181,node2:2181,node3:2181
- 创建主题:
bash
kafka-topics.sh --create --zookeeper node1:2181 --topic test --partitions 3 --replication-factor 2
八、生产环境最佳实践
8.1 高可用架构设计
8.1.1 主备 NameNode
bash
# 配置SecondaryNameNode(node2执行)vim /export/server/hadoop/etc/hadoop/hdfs-site.xml dfs.secondary.http.address node2:50090
8.1.2 磁盘均衡
bash
# 自动平衡DataNode磁盘空间start-balancer.sh -threshold 10 # 允许10%的空间差异
8.2 监控体系搭建
- Prometheus+Grafana:
- 通过
hadoop-exporter
采集指标,配置 Prometheus 抓取规则。 - 在 Grafana 中导入 Hadoop 监控模板,实时展示 CPU、内存、磁盘利用率。
- 通过
- 日志聚合:
使用 Flume 或 Logstash 将 Hadoop 日志收集到 Elasticsearch,通过 Kibana 搜索分析。
九、总结:Hadoop 集群部署核心流程
通过以上步骤,可构建一个稳定可靠的 Hadoop 大数据集群,支持海量数据的存储与计算。生产环境中需注意定期备份 NameNode 元数据(文档段落:),并根据业务流量动态调整节点资源。参考官方文档(Hadoop Documentation)可进一步学习 HA 集群配置、安全认证等高级特性。