作者:李继武
1
基础设施
2.1
硬件配置
机器名称 | 系统版本 | 配置 | 用途 | |
gdodsdcs2 (128.18.9.209) | SLES12 SP3 | CPU | 16Cores | CM节点 |
内存 | 32GB | |||
硬盘 | 80GB(raid1,安装操作系统) 100GB * 1 数据盘 | |||
gdodsspark1 (128.18.9.202) | SLES12 SP3 | CPU | 56Cores | Master节点 兼数据节点 |
内存 | 356GB | |||
硬盘 | 280GB(安装操作系统) 1.5TB * 6数据盘(SAT) 1.1TB * 1数据盘(SSD) 1.7TB * 1数据盘(SSD) | |||
gdodsspark2 (128.18.9.203) | SLES12 SP3 | CPU | 56Cores | Master节点 兼数据节点 |
内存 | 356GB | |||
硬盘 | 280GB(安装操作系统) 1.5TB * 6数据盘(SAT) 1.1TB * 1数据盘(SSD) 1.7TB * 1数据盘(SSD) | |||
Gdodsspark[3-6] (128.18.9.20[4-7]) | SLES12 SP3 | CPU | 56Cores | DataNode节点 |
内存 | 356GB | |||
硬盘 | 280GB(安装操作系统) 1.5TB * 6数据盘(SAT) 1.1TB * 1数据盘(SSD) 1.7TB * 1数据盘(SSD) |
2.2
软件环境
操作系统 | SLES12 SP3 |
CM | 6.1.0 |
JDK | 1.8.0_141 |
CDH | 6.1.0 |
Hadoop | 3.0.0 |
Hive | 2.1.1 |
Spark | 2.4.0 |
Zookeeper | 3.4.5 |
sqoop | 1.4.7 |
Postgresql | 9.6.10 |
2.3
角色部署
类型 | IP地址 | 安装服务 |
管理节点1 | 128.18.9.209 | Cloudera Manager、Cloudera Manager Service |
管理节点2 | 128.18.9.202 | NameNode(Standby)、JournalNode、 FailoverController、Zookeeper、 ResourceManager(Active)、 JournalNode、Zookeeper、Balancer、Hive MetaStore、Gateway、DateNode、 Hive Server2、NodeManager、 SparkHistory Server |
管理节点3 | 128.18.9.203 | NameNode(Active)、JournalNode、 FailoverController、Zookeeper、 ResourceManager(Standby)、HiveServer2、Gateway、Hive MetaStore、JobHistory Server DateNode、NodeManager |
数据节点 | 128.18.9.204 | DataNode、NodeManager、Gateway、JournalNode、Zookeeper |
数据节点 | 128.18.9.20[5-7] | DataNode、NodeManager、Gateway |
2.4
Access UI
Service Name | Address | Username/Password |
Cloudera Manager | admin/admin |
2.5
Postgresql
元数据库使用的是外部数据库:Postgresql数据库
Address:128.18.9.208:5432
Database | Username | Password | Remark |
metastore | hive | HivePostgres | Database of Hive metastore |
am | am | AmPostgres | Database of Activity Monitor |
cm | cm | CmPostgres | Database of Cloudera Manager |
rm | rm | RmPostgres | Database of Reports Manager |
2.6
数据目录信息
服务 | 角色 | 目录 |
CM | Service Monitor | /data1/var/lib/ cloudera-service-monitor |
Host Monitor | /data1/var/lib/cloudera-host-monitor | |
Event Server | /data1/var/lib/cloudera-scm-eventserver | |
Reports Manager | /data1/var/lib/cloudera-scm-headlamp | |
HDFS | NameNode | /sdata1/dfs/nn |
JournalNode | /data1/dfs/jn | |
Datanode | /data1/dfs/dn /data2/dfs/dn /data3/dfs/dn /data4/dfs/dn /data5/dfs/dn /data6/dfs/dn /sdata1/dfs/dn /sdata2/dfs/dn | |
YARN | nodeManager | /data1/yarn/nm /data2/yarn/nm /data3/yarn/nm /data4/yarn/nm /data5/yarn/nm /data6/yarn/nm |
Zookerper | Zookerper | /data1/var/lib/zookerper |
3
集群基本配置及部署安装
因节点之间通过root用户相互ssh的权限被关闭,所以不能使用控制台自动化安装agent,需要手动到所有节点安装agent,并修改相关配置。
3.1
前置准备
以下条件原集群已配置完成:
Hosts文件已配置
Ntp时钟同步
防火墙已关闭
Selinux已关闭
1. 修改swappiness
2. 从系统镜像挂载点配置repo
vim /etc/zypp/repos/iso.repo
3. 安装httpd
4. 利用httpd制作系统镜像本地zypper源
在apache2的配置文件中添加该文件夹
vim /etc/apache2/httpd.conf
5. 利用httpd制作cm本地zypper源和parcel源
将cm的安装包上传到cm6.1.0目录下,特别注意的是,SUSE系统还需要下载一个python-psycopg2依赖包上传到cm6.1.0下
在apache2的配置文件中添加这两个文件夹
vim /etc/apache2/httpd.conf
6. 所有节点配置镜像源和cm源
vim /etc/zypp/repos/iso.repo
vim /etc/zypp/repos/cm.repo
3.2
CM节点安装server、agent
1. 安装jdk1.8
2. 安装cloudera-manager-server、cloudera-manager-agent
3. 修改agent的配置文件,修改其连接的server主机,log目录以及lib目录
在数据盘下创建目录
将原来的目录移到这两个目录下
启动agent
4. 修改server的启动脚本,配置log目录
将目录文件移到数据盘上
5. 初始化cloudera-scm-server的数据库
6. 配置postgresql数据库驱动
将驱动上传到httpd节点的/srv/www/htdocs/cdh6.1.0目录下,其他节点通过wget进行拉取
7. 启动server
3.3
其他节点安装agent
剩余节点都需要手动执行以下操作,手动安装agent并修改配置
1. 安装jdk1.8
2. 安装cloudera-manager-agent
3. 修改agent的配置文件,修改其连接的server主机,log目录以及lib目录
在数据盘下创建目录
将原来的目录移到这两个目录下
4. 配置postgresql数据库驱动
5. 启动agent
3.4
修改数据盘所属用户及权限
由于原来数据盘都是由ods用户挂载,并且权限是700,这将导致root安装集群时无法生成所需目录,最终安装失败
修改这些数据盘目录所属用户为root,所属用户组为root,权限赋予755
4
控制台安装
1. 打开http://128.18.9.209:7180,以admin/admin登录
2. 点“继续”
3. 勾选同意,点继续
4. 选择“60天试用版”,点击继续
5. 点击“继续”
6. 点击“当前管理主机”,全部勾选,点击“继续”
7. 点击“更多选项”
8. 将其他的parcel路径删掉,添加自己制作的parcel包下载路径
9. 点击继续
10. 开始下载并分发parcel包,等待下载分发激活完成
11. 确保下方的主机检查项全部通过,点击“继续”
12. 点击“自定义服务”,勾选需要的服务
13. 输入元数据库的信息,测试连接
14. 配置相关目录
Datenode数据目录暂时默认即可,后期根据不同的节点分配不同的角色组,来分配不同的目录。
Namenode数据目录:
SecondaryNamenode数据目录:
CM服务数据目录:
NodeManager数据目录:
Zookeeper数据目录:
15. 点击“继续”,等待安装完成。
16. 配置DataNode目录,先配置角色组,设置Datanode角色为三个组,Datenode Default Group,onlywithzk,withnamenode:
17. 根据不同的角色来分配datanode目录,以为namenode、zk、journalNode留出独立的数据盘:
5
启用HA
本集群启用了HDFS,YARN的高可用
JournalNode数据目录为:
6
配置组件的log,tmp等目录
7
集群基本配置
7.1
Cloudera Manager
这些服务主要是提供监控功能,目前的调整主要集中在内存放,以便有足够的资源完成集群管理。
服务 | 选项 | 配置值 |
Activity Monitor | Java Heap Size | 4GB |
Service Monitor | Java Heap Size | 4GB |
Host Monitor | Java Heap Size | 4GB |
Event Server | Java Heap Size | 4GB |
Alert Publisher | Java Heap Size | 2GB |
Reports Manager | Java Heap Size | 4GB |
7.2
HDFS配置
服务 | 选项 | 配置值 |
NameNode | Java Heap Size | 4GB |
dfs.namenode.handler.count NameNode处理程序计数 | 54 | |
dfs.datanode.fsdataset.volume.choosing.policy DataNode 卷选择策略 | Round Robin | |
dfs.namenode.avoid.read.stale.datanode 避免读取失效 DataNode | false | |
dfs.namenode.write.stale.datanode.ratio 写入失效 DataNode 比率 | 0.5 | |
dfs.namenode.safemode.threshold-pct Safemode 阈值百分比 | 0.999 | |
dfs.umaskmode 默认值 Umask | 022 | |
DataNode | Java Heap Size | 1GB |
dfs.datanode.handler.count DataNode处理程序计数 | 3 | |
dfs.datanode.max.xcievers DataNode最大传输线程数 | 4096 | |
JournalNode | Java Heap Size | 1GB |
Failover Controller | Java Heap Size | 512MB |
7.3
YARN配置
服务 | 选项 | 配置值 |
ResourceManager | Java Heap Size | 4GB |
yarn.scheduler.minimum-allocation-mb 最小容器内存 | 1GB | |
yarn.scheduler.increment-allocation-mb 容器增量内存 | 512MB | |
yarn.scheduler.maximum-allocation-mb 最大容器内存 | 230GB | |
yarn.scheduler.minimum-allocation-vcores 最小容器虚拟内核 | 1 | |
yarn.scheduler.increment-allocation-vcores 容器虚拟内核增量 | 1 | |
yarn.scheduler.maximum-allocation-vcores 最大容器虚拟内核 | 56 | |
yarn.resourcemanager.recovery.enabled 启用 | false | |
NodeManager | Java Heap Size | 1GB |
yarn.nodemanager.resource.memory-mb 容器内存 | 230GB | |
yarn.nodemanager.resource.cpu-vcores 容器虚拟内核数量 | 56 | |
yarn.nodemanager.remote-app-log-dir 删除应用程序日志目录 | /tmp/logs | |
Gateway | mapreduce.map.memory.mb Map 任务内存 | 2GB |
mapreduce.reduce.memory.mb Reduce 任务内存 | 4GB | |
yarn.app.mapreduce.am.resource.mb ApplicationMaster 内存 | 1GB |
7.4
Zookeeper配置
服务 | 选项 | 配置值 |
Zookeeper | maxClientCnxns 最大客户端连接数 | 180 |
Java Heap Size | 1GB | |
maxSessionTimeout 最大会话超时 | 120000 |
7.5
Hive配置
服务 | 选项 | 配置值 |
HiveServer2 | Java Heap Size | 4GB |
Hive MetaStore | Java Heap Size | 8GB |
Hive Gateway | Java Heap Size | 2GB |