0549-6.1-如何在SUSE12 SP3安装CDH6.1
- 2019 年 11 月 28 日
- 笔记
作者:李继武
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 ServerDateNode、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 |
http://128.18.9.209:7180 |
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
echo "vm.swappiness = 1" >> /etc/sysctl.conf echo 1> /proc/sys/vm/swappiness
2. 从系统镜像挂载点配置repo
vim /etc/zypp/repos/iso.repo
[iso] name=iso enabled=1 autorefresh=0 baseurl=file:///mnt path=/ type=yast2 keeppackages=0
3. 安装httpd
zypper install httpd
4. 利用httpd制作系统镜像本地zypper源
mkdir /srv/www/htdocs/iso cp /mnt/* /srv/www/htdocs/iso cd /srv/www/htdocs/iso zypper install createrepo createrepo .
在apache2的配置文件中添加该文件夹
vim /etc/apache2/httpd.conf
<Directory "/srv/www/htdocs/iso"> Option Indexes AllowFollowSymLinks AllowOverride None </Directory>

5. 利用httpd制作cm本地zypper源和parcel源
mkdir /srv/www/htdocs/cm6.1.0 mkdir /srv/www/htdocs/cdh6.1.0
将cm的安装包上传到cm6.1.0目录下,特别注意的是,SUSE系统还需要下载一个python-psycopg2依赖包上传到cm6.1.0下

cd /srv/www/htdocs/cm6.1.0 createrepo .
在apache2的配置文件中添加这两个文件夹
vim /etc/apache2/httpd.conf
<Directory "/srv/www/htdocs/cm6.1.0"> Option Indexes AllowFollowSymLinks AllowOverride None </Directory> <Directory "/srv/www/htdocs/cdh6.1.0"> Option Indexes AllowFollowSymLinks AllowOverride None </Directory>

6. 所有节点配置镜像源和cm源
vim /etc/zypp/repos/iso.repo
[iso] name=iso enabled=1 autorefresh=0 baseurl=http://128.18.9.202/iso type=rpm-md gpgcheck=0
vim /etc/zypp/repos/cm.repo
[cm] name=cm enabled=1 autorefresh=0 baseurl=http://128.18.9.202/cm6.1.0 type=rpm-md gpgcheck=0
3.2
CM节点安装server、agent
1. 安装jdk1.8
zypper install oracle-j2sdk1.8

2. 安装cloudera-manager-server、cloudera-manager-agent
zypper install cloudera-manager-server cloudera-manager-agent

3. 修改agent的配置文件,修改其连接的server主机,log目录以及lib目录
vim /etc/cloudera-scm-agent/config.ini

在数据盘下创建目录
mkdir -p /data1/var/lib mkdr -p /data1/var/log
将原来的目录移到这两个目录下
mv /var/lib/cloudera-scm-agent /data1/var/lib mv /var/log/cloudera-scm-agent /data1/var/log
启动agent
systemctl start cloudera-scm-agent
4. 修改server的启动脚本,配置log目录
vim /opt/cloudera/cm/bin/cm-server

将目录文件移到数据盘上
mv /var/log/cloudera-scm-server /data1/var/log
5. 初始化cloudera-scm-server的数据库
sh /opt/cloudera/cm/schema/scm_prepare_database.sh -h128.18.9.208 -P5432 postgresql cm cm CmPostgres

6. 配置postgresql数据库驱动
将驱动上传到httpd节点的/srv/www/htdocs/cdh6.1.0目录下,其他节点通过wget进行拉取
mkdir -p /usr/share/java cd /usr/share/java wget http://128.18.9.202/cdh6.1.0/postgresql-42.2.2.jar ln -s postgresql-42.2.2.jar postgresql-connector-java.jar

7. 启动server
systemctl start cloudera-scm-server
3.3
其他节点安装agent
剩余节点都需要手动执行以下操作,手动安装agent并修改配置
1. 安装jdk1.8
zypper install oracle-j2sdk1.8

2. 安装cloudera-manager-agent
zypper install cloudera-manager-agent

3. 修改agent的配置文件,修改其连接的server主机,log目录以及lib目录
vim /etc/cloudera-scm-agent/config.ini

在数据盘下创建目录
mkdir -p /sdata1/var/lib mkdr -p /sdata1/var/log
将原来的目录移到这两个目录下
mv /var/lib/cloudera-scm-agent /sdata1/var/lib mv /var/log/cloudera-scm-agent /sdata1/var/log
4. 配置postgresql数据库驱动
mkdir -p /usr/share/java cd /usr/share/java wget http://128.18.9.202/cdh6.1.0/postgresql-42.2.2.jar ln -s postgresql-42.2.2.jar postgresql-connector-java.jar

5. 启动agent
systemctl start cloudera-scm-agent

3.4
修改数据盘所属用户及权限
由于原来数据盘都是由ods用户挂载,并且权限是700,这将导致root安装集群时无法生成所需目录,最终安装失败
修改这些数据盘目录所属用户为root,所属用户组为root,权限赋予755
chown root:root /data1 chown root:root /data2 chown root:root /data3 chown root:root /data4 chown root:root /data5 chown root:root /data6 chown root:root /sdata1 chown root:root /sdata2 chmod 755 /data1 chmod 755 /data2 chmod 755 /data3 chmod 755 /data4 chmod 755 /data5 chmod 755 /data6 chmod 755 /sdata1 chmod 755 /sdata2
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.countNameNode处理程序计数 |
54 |
|
dfs.datanode.fsdataset.volume.choosing.policyDataNode 卷选择策略 |
Round Robin |
|
dfs.namenode.avoid.read.stale.datanode避免读取失效 DataNode |
false |
|
dfs.namenode.write.stale.datanode.ratio写入失效 DataNode 比率 |
0.5 |
|
dfs.namenode.safemode.threshold-pctSafemode 阈值百分比 |
0.999 |
|
dfs.umaskmode默认值 Umask |
022 |
|
DataNode |
Java Heap Size |
1GB |
dfs.datanode.handler.countDataNode处理程序计数 |
3 |
|
dfs.datanode.max.xcieversDataNode最大传输线程数 |
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启用 ResourceManager Recovery |
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.mbMap 任务内存 |
2GB |
mapreduce.reduce.memory.mbReduce 任务内存 |
4GB |
|
yarn.app.mapreduce.am.resource.mbApplicationMaster 内存 |
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 |