环境准备与集群规划
硬件与软件要求
CDH(Cloudera Distribution Hadoop)集群的搭建需要满足以下基础条件:
项目 | 要求 |
---|---|
操作系统 | CentOS 7.6+/RedHat 7.3+/Ubuntu 18.04+(推荐CentOS) |
CPU | 单节点至少4核(主节点建议8核以上) |
内存 | 单节点至少8GB(主节点建议16GB+) |
磁盘 | 主节点需50GB+(安装软件及元数据存储),数据节点需1TB+ HDD/SSD |
网络 | 所有节点需互通,建议千兆网卡,关闭防火墙或开放必要端口(如22、80、443等) |
Java环境 | JDK 1.8+(CDH自带,但需确认版本兼容性) |
集群角色分配
CDH集群通常包含以下角色,需根据业务需求分配:
| 角色 | 职责 | 推荐节点数量 |
|——————-|———————————————————————-|——————|
| NameNode | HDFS元数据管理(唯一) | 1 |
| DataNode | HDFS数据存储(可多节点) | ≥1 |
| ResourceManager| YARN资源调度(唯一) | 1 |
| NodeManager | YARN任务执行(每数据节点1个) | ≥1 |
| Hive Metastore| Hive元数据管理(可与NameNode共用) | 1(可选独立) |
安装前配置
SSH免密登录
所有节点需配置SSH免密登录(以hadoop
用户为例):
# 在主节点生成密钥对 ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa # 将公钥分发到其他节点 for node in node1 node2 node3; do ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@$node done
系统配置优化
编辑/etc/sysctl.conf
,添加以下参数:
vm.swappiness = 1 # 禁用交换分区 fs.file-max = 1000000 # 增大文件句柄数 net.core.somaxconn = 1024 # 增大TCP连接队列
生效配置:
sysctl -p
主机名与IP映射
在所有节点的/etc/hosts
中添加:
168.1.100 master 192.168.1.101 node1 192.168.1.102 node2
CDH安装步骤
下载与解压Parcel包
从Cloudera官网下载对应版本的CDH Parcel包(如CDH-7.1.7-el7.parcel
),上传至主节点/opt/cloudera/parcels/
目录并解压。
安装CM与CDH
# 添加Cloudera仓库 wget -O /etc/yum.repos.d/cloudera-cdh.repo https://archive.cloudera.com/cdh7/7.1.7/rhel7/x86_64/cdh/cloudera-cdh.repo # 安装CDH Manager Server(仅主节点) yum install -y cloudera-manager-server cloudera-manager-agent # 安装CDH组件(所有节点) yum install -y hadoop-lib-native hadoop-client hadoop-hdfs-namenode hadoop-yarn-resourcemanager
启动CM服务
# 主节点启动CM Server systemctl start cloudera-scm-server systemctl enable cloudera-scm-server # 其他节点启动Agent systemctl start cloudera-scm-agent systemctl enable cloudera-scm-agent
集群配置与启动
通过CM控制台配置集群
- 访问
http://master:7180
,输入默认账号admin/admin
。 - 添加主机组,选择所有节点。
- 分配角色:
- 主节点:NameNode、ResourceManager、Hive Metastore。
- 数据节点:DataNode、NodeManager。
- 配置HDFS:
- NameNode数据目录:
/var/lib/hadoop-hdfs/cache/hdfs/dfs/name
- DataNode数据目录:
/var/lib/hadoop-hdfs/cache/hdfs/dfs/data
- NameNode数据目录:
- 配置YARN:
- 资源调度策略:Capacity Scheduler(默认)
- 内存与CPU分配:按物理资源比例分配。
启动集群服务
在CM控制台中依次启动以下服务:
- ZooKeeper Quorum(若启用HA)
- HDFS NameNode
- HDFS DataNodes
- YARN ResourceManager
- YARN NodeManagers
- Hive Metastore(可选)
验证集群状态
Web界面检查
- HDFS健康状态:
http://master:50070/
- YARN状态:
http://master:8088/
- Hive接口:
http://master:10000/
运行测试任务
在任意节点提交MapReduce任务:
hadoop jar /usr/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /tmp/input /tmp/output
检查输出是否符合预期。
常见问题与优化
性能调优
参数 | 优化建议 |
---|---|
dfs.replication | 根据数据重要性设置为2或3(默认3) |
yarn.scheduler.maximum-allocation-mb | 调整为物理内存的80%(如16GB节点设为12800MB) |
mapreduce.map.memory.mb | 设为物理内存的50%(如8GB节点设为4096MB) |
故障排查
问题 | 解决方案 |
---|---|
NameNode无法启动 | 检查/var/lib/hadoop-hdfs/cache/hdfs 目录权限,确保属主为hdfs:hdfs |
DataNode失联 | 验证SSH免密登录,检查网络连通性(ping 和telnet 测试) |
YARN任务失败 | 查看NodeManager日志(/var/log/hadoop-yarn/ ),检查容器内存分配是否合理 |
FAQs
Q1:CDH版本如何选择?
A1:根据业务需求选择:
- CDH 6.x:适合传统Hadoop生态,兼容旧版组件。
- CDH 7.x:支持Kubernetes集成、HDFS纠删码,推荐新项目使用。
- CDP(Cloudera Data Platform):企业级付费版,提供更高安全性和混合云支持。
Q2:如何扩展已有CDH集群?
A2:
- 在CM控制台中添加新节点到现有主机组。
- 分配角色(如DataNode、NodeManager)。
- 手动同步配置文件(如
hdfs-site.xml
)到新节点。 - 重启相关服务(HDFS或YARN)使配置生效。
小编有话说
CDH集群的搭建只是起点,实际生产环境中需关注以下问题:
- 安全认证:建议启用Kerberos或LDAP,限制未授权访问。
- 监控告警:集成Nagios、Prometheus或Cloudera自带的Alert机制,及时处理磁盘满、内存溢出等问题。
- 数据备份:定期备份NameNode元数据(
fsimage
)和Hive元数据(metastore_db
)。 - 日志管理:集中收集
/var/log/hadoop-*
日志,便于排查问题。
通过以上步骤,您将拥有一个稳定且可扩展的CDH大数据集群,为后续的数据分析、
以上就是关于“服务器搭建cdh集群”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复