CDH(Cloudera Distribution of Apache Hadoop) 是 Apache Hadoop 和相關項目中最完整、通過測試和流行的發行版。CDH 提供 Hadoop 的核心元素,可伸縮存儲和可擴展分佈式計算,以及基於 web 的用戶界面和關鍵的企業功能。CDH 是 apache 受權的開放源碼,是唯一提供統一批處理、交互式 SQL 和交互式搜索以及基於角色的訪問控制的 Hadoop 解決方案。html
關於更多 CDH 的介紹,請參見官方文檔:java
Cloudera Manager 是用於管理 CDH 集羣的端到端應用程序。Cloudera Manager 爲企業部署設定了標準,爲 CDH 集羣的每一個部分提供粒度可見性和控制權,受權運營商提升性能、提升服務質量、增長聽從性和下降管理成本。使用 Cloudera Manager,您能夠輕鬆地部署和集中操做完整的 CDH 堆棧和其餘託管服務。應用程序使安裝過程自動化,將部署時間從幾周減小到幾分鐘; 爲您提供集羣範圍內運行的主機和服務的實時視圖; 提供一個單一的中央控制檯,用於跨集羣執行配置更改; 並整合了各類報告和診斷工具,以幫助您優化性能和利用率。mysql
要有效地使用 Cloudera Manager,您應該首先理解其術語。這些術語之間的關係以下所示,其定義以下:linux
以下圖所示,Cloudera Manager 的核心是 Cloudera Manager Server。Server 託管管理控制檯 Web 服務器和應用程序邏輯,並負責安裝軟件、配置、啓動和中止服務,以及管理服務運行所在的集羣。web
Cloudera Manager Server 與其餘幾個組件一塊兒工做: sql
Cloudera Manager 的主要功能是安裝和升級 CDH 和其餘託管服務。Cloudera Manager 支持兩種軟件發佈格式:package 和 parcel。數據庫
package 是一種二進制分發格式,其中包含已編譯的代碼和元信息,如包描述、版本和依賴關係。包管理系統評估這些元信息,以容許包搜索、升級到更新的版本,並確保包的全部依賴關係都獲得知足。Cloudera Manager 爲每一個受支持的操做系統使用本地系統包管理器。apache
Parcel 是包含程序文件以及 Cloudera Manager 使用的附加元數據的二進制發佈格式。centos
關於 Cloudera Manager 更多功能,請查看官方文檔:
https://docs.cloudera.com/documentation/enterprise/latest/topics/cm_intro_primer.html
類目 | 版本 | 下載地址 |
---|---|---|
操做系統 | 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 會產生較多的監控數據和日誌,須要給予系統盤充足的空間,存儲的位置主要有如下:
/var/lib/cloudera-scm-server/
/var/lib/cloudera-service-monitor/
/var/lib/cloudera-host-monitor/
/var/lib/cloudera-scm-eventserver/
/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
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
這裏使用 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,您可使用 Cloudera Manager 安裝由 Cloudera 提供的 Oracle JDK 版本,也能夠直接從 Oracle 安裝不一樣的 Oracle JDK,或者直接安裝 OpenJDK。
/usr/java/JDK-version
。若是使用 Cloudera Manager 提供的 JDK,能夠直接執行下面的命令。
sudo yum install oracle-j2sdk1.8
由於在線安裝會比較慢,在這裏,咱們使用 Oracle 維護的 JDK,能夠去 Oracle 官網進行下載。
rpm -ivh jdk-8u181-linux-x64.rpm
使用倉庫安裝會比較慢,建議先把須要的 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-daemons
是 server
和 agent
必須安裝的。
建議離線安裝,把 rpm 包下載到服務器上面,傳到其餘節點一份,再本地安裝,速度會快不少。
yum localinstall cloudera-manager-*.rpm -y
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,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
使用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';
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 數據庫後,啓動 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.
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/*
打開瀏覽器,輸入 namenode 的公網 IP:7180
,用戶名和密碼默認都是admin
。
歡迎頁面提供了 Cloudera Manager 的簡要概述,以及正在安裝的版本的發行說明的連接。單擊「繼續」繼續安裝。
接受許可證頁面提供了最終用戶許可證條款和條件。閱讀許可協議並單擊標記爲 Yes 的複選框,若是您接受許可協議的條款和條件,我將接受最終用戶許可條款和條件。單擊「繼續」繼續。
在 Select Edition 頁面上,您能夠選擇要安裝的 Cloudera Manager 版本,還能夠選擇安裝許可證:
Add Cluster-Installation 嚮導的歡迎頁面提供了安裝和配置過程的簡要概述,以及到相關文檔的一些連接。單擊「繼續」繼續安裝。
Cluster Basics 頁面容許您指定 Cluster Name 並選擇 Cluster Type:
選擇運行 CDH 和其餘託管服務的主機。
Select Repository 頁面容許您爲 Cloudera Manager Agent 和 CDH 以及其餘軟件指定存儲庫。
CDH parcel 以前咱們已經在 CM Server 節點配置好了,版本也同樣。
不進行勾選,選擇咱們本身安裝的 JDK。
提供 SSH 登陸憑據。
安裝 Agents,由於以前咱們已經經過 yum 本地安裝包安裝了,因此這裏速度會很快。
安裝選定的 Parcel,以前咱們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo
。
Inspect 集羣頁面提供了檢查網絡性能的工具,以及用於搜索常見配置問題的 Host Inspector。
Select Services 頁容許您選擇要安裝和配置的服務。確保您擁有要使用的服務的適當的許可證密鑰。
Assign Roles 頁建議爲集羣中的主機分配角色。您能夠單擊角色的主機名來選擇不一樣的主機。還能夠單擊 View By Host 按鈕查看分配給主機的全部角色。下面是官方的一個推薦。
在數據庫設置頁上,選擇以前建立的數據庫主機、名稱、用戶名和密碼。對於支持它的服務,可使用 JDBC URL 覆蓋添加細粒度的自定義。
Review Changes 頁面列出了幾個配置參數的默認設置和建議設置,包括數據目錄。
Command Details 頁面列出了 First Run 命令的詳細信息。您能夠展開正在運行的命令,以查看任何步驟的詳細信息,包括日誌文件和命令輸出。能夠經過選擇「顯示全部步驟」、「僅顯示失敗的步驟」或「僅顯示正在運行的步驟」篩選視圖。
Summary 頁報告安裝嚮導的成功或失敗。單擊「完成」以完成嚮導。安裝完成。
Cloudera 建議您經過單擊主屏幕右上角的登陸用戶名並單擊「更改密碼」 ,儘快更改默認密碼。
Cloudera Manager 是用於管理 CDH 集羣的端到端應用程序。Cloudera Manager 提供 CDH 集羣每一個部分的細粒度可見性和控制權,受權運營商提升性能、提升服務質量、加強聽從性和下降管理成本。使用 Cloudera Manager,您能夠輕鬆地部署和集中操做完整的 CDH 堆棧和其餘託管服務。應用程序自動化了安裝過程,將部署時間從幾周減小到幾分鐘; 提供了集羣範圍內的主機和服務運行的實時視圖; 提供了一個單一的中央控制檯,用於跨集羣執行配置更改; 並整合了全套報告和診斷工具,以幫助優化性能和利用率。Cloudera Manager 還提供了一個可用於自動化集羣操做的 API。
HDFS
HIVE
SPARK