­

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