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 |