CentOS 7 下 Cloudera 6.3.1 安裝 Hadoop 集羣

1、軟件介紹

一、CDH 概覽

CDH(Cloudera Distribution of Apache Hadoop) 是 Apache Hadoop 和相關項目中最完整、通過測試和流行的發行版。CDH 提供 Hadoop 的核心元素,可伸縮存儲和可擴展分佈式計算,以及基於 web 的用戶界面和關鍵的企業功能。CDH 是 apache 受權的開放源碼,是唯一提供統一批處理、交互式 SQL 和交互式搜索以及基於角色的訪問控制的 Hadoop 解決方案。html

  • 靈活性:儲存任何類型的數據,並使用各類不一樣的計算框架進行操做,包括批處理、交互式 SQL、自由文本搜索、機器學習和統計計算。
  • 集成:在一個完整的 Hadoop 平臺上快速啓動並運行,該平臺可以與各類硬件和軟件解決方案一塊兒工做。
  • 安全:處理和控制敏感數據。
  • 可伸縮性:擴展應用程序的範圍和規模,以知足您的需求。
  • 高可用性:有信心地執行任務關鍵的業務任務。
  • 兼容性:充分利用現有的資訊科技基礎設施和投資。

image-20200905223427582

關於更多 CDH 的介紹,請參見官方文檔:java

https://docs.cloudera.com/documentation/enterprise/latest/topics/cdh_component_documentation_links.htmlnode

二、CM 概述

Cloudera Manager 是用於管理 CDH 集羣的端到端應用程序。Cloudera Manager 爲企業部署設定了標準,爲 CDH 集羣的每一個部分提供粒度可見性和控制權,受權運營商提升性能、提升服務質量、增長聽從性和下降管理成本。使用 Cloudera Manager,您能夠輕鬆地部署和集中操做完整的 CDH 堆棧和其餘託管服務。應用程序使安裝過程自動化,將部署時間從幾周減小到幾分鐘; 爲您提供集羣範圍內運行的主機和服務的實時視圖; 提供一個單一的中央控制檯,用於跨集羣執行配置更改; 並整合了各類報告和診斷工具,以幫助您優化性能和利用率。mysql

術語

要有效地使用 Cloudera Manager,您應該首先理解其術語。這些術語之間的關係以下所示,其定義以下:linux

image-20200905223915812

  • deployment:Cloudera Manager 管理的全部集羣的一個配置。
  • dynamic resource pool:在 Cloudera Manager 中,命名的資源配置和用於在 YARN 應用程序或池中運行的 Impala 查詢之間調度資源的策略。
  • cluster:邏輯實體包含一組主機、安裝在主機上的單個 CDH 版本以及運行在主機上的服務和角色實例。
  • host:運行角色實例的物理或虛擬機器。
  • rack:一組一般由同一開關服務的物理主機的物理實體。
  • service:Linux 系統中的啓動腳本。
  • service instance:在集羣上運行的服務的實例。例如: 「 HDFS-1」和「yarn」。服務實例跨越多個角色實例。
  • role:服務中的一類功能。例如,HDFS 服務具備如下角色: NameNode、 SecondaryNameNode、 DataNode 和 Balancer。
  • role instance:在主機上運行的角色的實例。
  • role group:一組角色實例的一組配置屬性。
  • host template:Cloudera Manager 中的一組角色組。將模板應用於宿主時,將建立每一個角色組的角色實例並將其分配給該宿主。
  • gateway:一般爲特定羣集服務提供客戶端訪問的角色類型。例如,HDFS、 Hive、 Kafka、 MapReduce、 Solr 和 Spark 各自都有網關角色,爲客戶機提供對各自服務的訪問。
  • parcel:包含已編譯代碼和元信息(如包描述、版本和依賴項)的二進制分發格式。
  • static service pool:在 Cloudera Manager 中,集羣資源(cpu、內存和 I/O 權重)跨一組服務的靜態分區。

image-20200905225235033

架構

以下圖所示,Cloudera Manager 的核心是 Cloudera Manager Server。Server 託管管理控制檯 Web 服務器和應用程序邏輯,並負責安裝軟件、配置、啓動和中止服務,以及管理服務運行所在的集羣。web

image-20200905225429436

Cloudera Manager Server 與其餘幾個組件一塊兒工做: sql

  • Agent:每臺主機上都安裝了 Agent,代理負責啓動和中止進程、解壓配置、觸發安裝和監視主機。
  • Management Service:由一組角色組成的服務,這些角色執行各類監視、警報和報告功能。
  • Database:存儲配置和監視信息。一般,多個邏輯數據庫跨一個或多個數據庫服務器運行。例如,Cloudera Manager Server 和監視角色使用不一樣的邏輯數據庫。
  • Cloudera Repository:用於 Cloudera Manager 發佈的軟件庫。
  • Clients:與服務器交互的接口。
    • Admin Console:基於 web 的 UI,管理員使用它管理集羣和 Cloudera Manager。
    • API:用於開發人員建立自定義 Cloudera 管理器應用程序的 API。

軟件分發管理

Cloudera Manager 的主要功能是安裝和升級 CDH 和其餘託管服務。Cloudera Manager 支持兩種軟件發佈格式:packageparcel數據庫

package 是一種二進制分發格式,其中包含已編譯的代碼和元信息,如包描述、版本和依賴關係。包管理系統評估這些元信息,以容許包搜索、升級到更新的版本,並確保包的全部依賴關係都獲得知足。Cloudera Manager 爲每一個受支持的操做系統使用本地系統包管理器。apache

Parcel 是包含程序文件以及 Cloudera Manager 使用的附加元數據的二進制發佈格式。centos

關於 Cloudera Manager 更多功能,請查看官方文檔:

https://docs.cloudera.com/documentation/enterprise/latest/topics/cm_intro_primer.html

2、安裝

一、環境準備

軟件版本

類目 版本 下載地址
操做系統 CentOS Linux release 7.8.2003 (Core) 阿里雲鏡像
數據庫 MYSQL 5.7 現有數據庫
JDK jdk-8u181-linux-x64.rpm Oracle 官網下載
Cloudera Manager Cloudera Manager 6.3.1 官方倉庫
CDH CDH 6.3.2 parcels安裝

節點準備

四臺機器我是在騰訊雲建立的,固然你也可使用本身的虛擬機。

名稱 IP CM管理軟件
namenode01.wzlinux.com 172.17.16.5 Cloudera Manager Server & Agent
datanode01.wzlinux.com 172.17.16.6 Cloudera Manager Agent
datanode02.wzlinux.com 172.17.16.10 Cloudera Manager Agent
datanode03.wzlinux.com 172.17.16.12 Cloudera Manager Agent

存儲空間

由於 Cloudera Manager 會產生較多的監控數據和日誌,須要給予系統盤充足的空間,存儲的位置主要有如下:

  • Cloudera Manager Server/var/lib/cloudera-scm-server/
  • Service Monitor:/var/lib/cloudera-service-monitor/
  • Host Monitor/var/lib/cloudera-host-monitor/
  • Event Server/var/lib/cloudera-scm-eventserver/
  • Reports Manager/var/lib/cloudera-scm-headlamp/

主機名

使用下面命令修改/etc/hostname的主機名,從新鏈接一下機器就能夠生效了。

sudo hostnamectl set-hostname namenode01.wzlinux.com

編輯 /etc/hosts,增長以下:

172.17.16.5 namenode01.wzlinux.com namenode01
172.17.16.6 datanode01.wzlinux.com datanode01
172.17.16.10 datanode02.wzlinux.com datanode02
172.17.16.12 datanode03.wzlinux.com datanode03

關閉防火牆

sudo iptables-save > ~/firewall.rules
sudo systemctl disable firewalld
sudo systemctl stop firewalld

關閉 SELinux

sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0

時間同步

我使用的雲服務,時間基本已經很準了。

echo "$((RANDOM%60)) $((RANDOM%24)) * * * /usr/sbin/ntpdate time1.aliyun.com" >> /var/spool/cron/root

二、安裝 CM

配置倉庫

這裏使用 Cloudera 來維護的倉庫,固然你也能夠建立本地倉庫。咱們使用 Cloudera Manager 6.3.1

wget https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/cloudera-manager.repo -P /etc/yum.repos.d/
rpm --import https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera

安裝 JDK

對於 JDK,您可使用 Cloudera Manager 安裝由 Cloudera 提供的 Oracle JDK 版本,也能夠直接從 Oracle 安裝不一樣的 Oracle JDK,或者直接安裝 OpenJDK。

  • JDK 必須是64位的。不要使用32位 JDK。
  • 已安裝的 JDK 必須是支持的版本,如 Java 需求文檔所述。
  • 必須在每一個集羣主機上安裝相同版本的 JDK。
  • JDK 必須安裝在/usr/java/JDK-version

若是使用 Cloudera Manager 提供的 JDK,能夠直接執行下面的命令。

sudo yum install oracle-j2sdk1.8

由於在線安裝會比較慢,在這裏,咱們使用 Oracle 維護的 JDK,能夠去 Oracle 官網進行下載。

rpm -ivh jdk-8u181-linux-x64.rpm

安裝 CM

使用倉庫安裝會比較慢,建議先把須要的 rpm下載下來,進行離線安裝或者建私有倉庫,主要下面的三個軟件包:

cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

cloudera-manager-daemonsserveragent 必須安裝的。

建議離線安裝,把 rpm 包下載到服務器上面,傳到其餘節點一份,再本地安裝,速度會快不少。

  • namenode01
yum localinstall cloudera-manager-*.rpm -y
  • datanode0[1-3]
yum localinstall cloudera-manager-daemons-*.rpm cloudera-manager-agent-*.rpm -y

安裝數據庫

Cloudera Manager 使用各類數據庫和數據存儲來存儲關於 Cloudera Manager 配置的信息,以及諸如系統健康情況或任務進度等信息。

Cloudera 建議在不一樣的主機上安裝數據庫,而不是在服務上。將數據庫與服務分離有助於將潛在影響與這二者中的故障或資源爭用隔離開來。它還能夠簡化具備專用數據庫管理員的組織的管理。

您可使用您本身的 PostgreSQL、 MariaDB、 MySQL 或 Oracle 數據庫來訪問 Cloudera Manager Server 和其餘使用數據庫的服務。

如下組件都須要數據庫: Cloudera Manager Server,Oozie Server,Sqoop Server,Activity Monitor,Reports Manager,Hive metabstore Server,Hue Server,Sentry Server,Cloudera Navigator Audit Server,and Cloudera Navigator Metadata Server。

我這裏使用已經建立好的數據庫 MySQL 5.7,有關數據庫的安裝,能夠參加官方文檔:

https://docs.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html#cmig_topic_5_5

安裝 MySQL JDBC Driver

咱們須要爲主機安裝 MySQL JDBC Driver,Cloudera 建議將全部須要數據庫的角色合併到有限的主機上,並在這些主機上安裝驅動程序。建議在相同的主機上查找全部這些角色,但不是必需的。確保在每一個運行訪問數據庫角色的主機上安裝 JDBC 驅動程序。爲了簡便,咱們再全部節點上面安裝 MySQL JDBC Driver。

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
tar xf mysql-connector-java-5.1.46.tar.gz

mkdir -p /usr/share/java/
cd mysql-connector-java-5.1.46
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

爲 Cloudera 各軟件建立數據庫

使用root登錄數據庫,建立如下數據庫和帳號。

Service Database User
Cloudera Manager Server scm scm
Activity Monitor amon amon
Reports Manager rman rman
Hue hue hue
Hive Metastore Server metastore hive
Sentry Server sentry sentry
Cloudera Navigator Audit Server nav nav
Cloudera Navigator Metadata Server navms navms
Oozie oozie oozie

使用下面的模板語句建立各個數據庫。

CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';

我寫下我這裏的建庫語句,僅供參考:

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'wzlinux';
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'wzlinux';

設置 CM 數據庫

Cloudera Manager Server 包含一個腳本,能夠爲本身建立和配置數據庫。該腳本能夠:

  • 建立 Cloudera Manager Server 數據庫配置文件。
  • (MariaDB、 MySQL 和 PostgreSQL)建立並配置一個數據庫,供 Cloudera Manager Server 使用。
  • (MariaDB、 MySQL 和 PostgreSQL)爲 Cloudera Manager Server 建立並配置一個用戶賬戶。

數據庫的地址爲db01.wzlinux.com,若是是本機能夠取消。Cloudera Manager Server 主機地址爲namenode01.wzlinux.com

sudo /opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h db01.wzlinux.com --scm-host namenode01.wzlinux.com scm scm

輸入數據庫密碼就建立好了。

Enter SCM password: 
JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
Verifying that we can write to /etc/cloudera-scm-server
Creating SCM configuration file in /etc/cloudera-scm-server
Executing:  /usr/java/jdk1.8.0_181-amd64/bin/java -cp /usr/share/java/mysql-connector-java.jar:/usr/share/java/oracle-connector-java.jar:/usr/share/java/postgresql-connector-java.jar:/opt/cloudera/cm/schema/../lib/* com.cloudera.enterprise.dbutil.DbCommandExecutor /etc/cloudera-scm-server/db.properties com.cloudera.cmf.db.
[                          main] DbCommandExecutor              INFO  Successfully connected to database.
All done, your SCM database is configured correctly!

啓動 Cloudera Manager Server

設置好 Cloudera Manager 數據庫後,啓動 Cloudera Manager Server,並登陸到 Cloudera Manager 管理控制檯。

sudo systemctl start cloudera-scm-server

若是啓動中有什麼問題,能夠查看日誌。

sudo tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

當您看到此日誌條目時,Cloudera Manager 管理控制檯就緒。

INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.

三、安裝 CDH

製做 CDH 本地庫

CM 安裝成功以後,接下來咱們就能夠經過 CM 安裝 CDH 的方式構建企業大數據平臺。因此首先須要把 CDH 的 parcels 包下載到 CM 主服務器上。

一樣爲了加速咱們的安裝,咱們能夠把須要下載的軟件包提早下載下來,也能夠建立CDH私有倉庫

[root@namenode01 ~]# cd /opt/cloudera/parcel-repo
wget https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel

爲咱們下載的文件建立一個 SHA1 hash 文件。

sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha

修改屬主屬組。

sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*

Web 安裝

打開瀏覽器,輸入 namenode 的公網 IP:7180,用戶名和密碼默認都是admin

歡迎頁面提供了 Cloudera Manager 的簡要概述,以及正在安裝的版本的發行說明的連接。單擊「繼續」繼續安裝。

image-20200906131620827

接受許可證頁面提供了最終用戶許可證條款和條件。閱讀許可協議並單擊標記爲 Yes 的複選框,若是您接受許可協議的條款和條件,我將接受最終用戶許可條款和條件。單擊「繼續」繼續。

image-20200906131828850

在 Select Edition 頁面上,您能夠選擇要安裝的 Cloudera Manager 版本,還能夠選擇安裝許可證:

image-20200906131923971

四、建立集羣

Add Cluster-Installation 嚮導的歡迎頁面提供了安裝和配置過程的簡要概述,以及到相關文檔的一些連接。單擊「繼續」繼續安裝。

image-20200906132254582

Cluster Basics 頁面容許您指定 Cluster Name 並選擇 Cluster Type:

  • Regular Cluster: Regular Cluster 包含存儲節點、計算節點和其餘服務,如元數據和安全性並置在單個集羣中。
  • Compute Cluster: 計算集羣只包含計算節點。若要鏈接到現有存儲、元數據或安全服務,必須首先在基本羣集上選擇或建立數據上下文。

image-20200906132842795

選擇運行 CDH 和其餘託管服務的主機。

image-20200906133058576

Select Repository 頁面容許您爲 Cloudera Manager Agent 和 CDH 以及其餘軟件指定存儲庫。

CDH parcel 以前咱們已經在 CM Server 節點配置好了,版本也同樣。

image-20200906133559734

不進行勾選,選擇咱們本身安裝的 JDK。

image-20200906135000072

提供 SSH 登陸憑據。

image-20200906135124020

安裝 Agents,由於以前咱們已經經過 yum 本地安裝包安裝了,因此這裏速度會很快。

image-20200906135441643

安裝選定的 Parcel,以前咱們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo

image-20200906143615713

Inspect 集羣頁面提供了檢查網絡性能的工具,以及用於搜索常見配置問題的 Host Inspector。

image-20200906143859088

3、集羣設置

Select Services 頁容許您選擇要安裝和配置的服務。確保您擁有要使用的服務的適當的許可證密鑰。

image-20200906144056844

Assign Roles 頁建議爲集羣中的主機分配角色。您能夠單擊角色的主機名來選擇不一樣的主機。還能夠單擊 View By Host 按鈕查看分配給主機的全部角色。下面是官方的一個推薦

image-20200906144429641

image-20200906145218060

image-20200906145233862

在數據庫設置頁上,選擇以前建立的數據庫主機、名稱、用戶名和密碼。對於支持它的服務,可使用 JDBC URL 覆蓋添加細粒度的自定義。

image-20200906145758258

Review Changes 頁面列出了幾個配置參數的默認設置和建議設置,包括數據目錄。

image-20200906150328252

Command Details 頁面列出了 First Run 命令的詳細信息。您能夠展開正在運行的命令,以查看任何步驟的詳細信息,包括日誌文件和命令輸出。能夠經過選擇「顯示全部步驟」、「僅顯示失敗的步驟」或「僅顯示正在運行的步驟」篩選視圖。

image-20200906150831166

Summary 頁報告安裝嚮導的成功或失敗。單擊「完成」以完成嚮導。安裝完成。

Cloudera 建議您經過單擊主屏幕右上角的登陸用戶名並單擊「更改密碼」 ,儘快更改默認密碼。

image-20200906150954467

4、管理集羣

Cloudera Manager 是用於管理 CDH 集羣的端到端應用程序。Cloudera Manager 提供 CDH 集羣每一個部分的細粒度可見性和控制權,受權運營商提升性能、提升服務質量、加強聽從性和下降管理成本。使用 Cloudera Manager,您能夠輕鬆地部署和集中操做完整的 CDH 堆棧和其餘託管服務。應用程序自動化了安裝過程,將部署時間從幾周減小到幾分鐘; 提供了集羣範圍內的主機和服務運行的實時視圖; 提供了一個單一的中央控制檯,用於跨集羣執行配置更改; 並整合了全套報告和診斷工具,以幫助優化性能和利用率。Cloudera Manager 還提供了一個可用於自動化集羣操做的 API。

image-20200906151629043

HDFS

image-20200906151928214

HIVE

image-20200906151958686

SPARK

image-20200906152030165

歡迎你們掃碼關注,獲取更多信息

CentOS 7 下 Cloudera 6.3.1 安裝 Hadoop 集羣

相關文章
相關標籤/搜索