作者:李继武


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

角色部署


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java


类型

IP地址

安装服务

管理节点1

128.18.9.209

Cloudera  ManagerCloudera  Manager Service

管理节点2

128.18.9.202

NameNode(Standby)JournalNode

FailoverControllerZookeeper

ResourceManager(Active) JournalNodeZookeeperBalancerHive MetaStoreGatewayDateNode

Hive Server2NodeManager

SparkHistory Server

管理节点3

128.18.9.203

NameNode(Active)JournalNode

FailoverControllerZookeeper

ResourceManager(Standby)HiveServer2GatewayHive  MetaStoreJobHistory  Server

DateNodeNodeManager

数据节点

128.18.9.204

DataNodeNodeManagerGatewayJournalNodeZookeeper

数据节点

128.18.9.20[5-7]

DataNodeNodeManagerGateway


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>


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_02


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下


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_03


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>


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_04


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


0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_05


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


zypper install cloudera-manager-server cloudera-manager-agent


0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_06


3. 修改agent的配置文件,修改其连接的server主机,log目录以及lib目录


vim /etc/cloudera-scm-agent/config.ini


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_07


在数据盘下创建目录


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


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_08


将目录文件移到数据盘上


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


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_09


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


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_10


7. 启动server


systemctl start cloudera-scm-server


3.3

其他节点安装agent


剩余节点都需要手动执行以下操作,手动安装agent并修改配置

1.  安装jdk1.8


zypper install oracle-j2sdk1.8


0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_11


2. 安装cloudera-manager-agent


zypper install cloudera-manager-agent


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_12


3. 修改agent的配置文件,修改其连接的server主机,log目录以及lib目录


vim /etc/cloudera-scm-agent/config.ini


0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_13


在数据盘下创建目录

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


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_14


5. 启动agent


systemctl start cloudera-scm-agent


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_15


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登录


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_16


2. 点“继续”


0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_17


3. 勾选同意,点继续


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_18


4. 选择“60天试用版”,点击继续


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_19


5. 点击“继续”


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_20


6. 点击“当前管理主机”,全部勾选,点击“继续”

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_21


7. 点击“更多选项”


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_22


8. 将其他的parcel路径删掉,添加自己制作的parcel包下载路径


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_23


9. 点击继续


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_24


10. 开始下载并分发parcel包,等待下载分发激活完成


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_25


11. 确保下方的主机检查项全部通过,点击“继续”


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_26


12. 点击“自定义服务”,勾选需要的服务


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_27


13. 输入元数据库的信息,测试连接


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_28


14. 配置相关目录

Datenode数据目录暂时默认即可,后期根据不同的节点分配不同的角色组,来分配不同的目录。


Namenode数据目录:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_29


SecondaryNamenode数据目录:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_30


CM服务数据目录:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_31


NodeManager数据目录:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_32


Zookeeper数据目录:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_33


15. 点击“继续”,等待安装完成。

0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_34


16. 配置DataNode目录,先配置角色组,设置Datanode角色为三个组,Datenode Default Group,onlywithzk,withnamenode:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_35

0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_36

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_37


17. 根据不同的角色来分配datanode目录,以为namenode、zk、journalNode留出独立的数据盘:


0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_38

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_39

0549-6.1-如何在SUSE12 SP3安装CDH6.1_数据盘_40


5

启用HA


本集群启用了HDFS,YARN的高可用


0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_41

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_42


JournalNode数据目录为:

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_43


6

配置组件的log,tmp等目录


0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_44

0549-6.1-如何在SUSE12 SP3安装CDH6.1_java_45

0549-6.1-如何在SUSE12 SP3安装CDH6.1_cloudera_46


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