CentOS 7下Cloudera Manager及CDH 6.0.1安裝教程

概念介紹

CDH 概覽

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

CDH 提供以下特性:

  • 靈活性:存儲任何類型的數據並使用各種不同的計算框架進行操作,包括批處理、交互式SQL、免費文本搜索、機器學習和統計計算。

  • 集成:在一個完整的Hadoop平臺上快速啓動和運行,該平臺與廣泛的硬件和軟件解決方案一起工作。

  • 安全:處理和控制敏感數據。

  • 可伸縮性:啓用廣泛的應用程序和規模,並擴展它們以滿足您的需求。

  • 高可用性:滿懷信心地執行任務關鍵的業務任務。

  • 兼容性:利用您現有的IT基礎設施和投資。

CDH 組件如下圖:
在這裏插入圖片描述

Cloudera Manager 概覽

Cloudera Manager 是用於管理cdh集羣的端到端應用程序。Cloudera Manager通過向CDH集羣的每個部分提供細粒度的可見性並對其進行控制來設置企業部署標準-授權運營商提高性能、提高服務質量、提高遵從性和降低管理成本。使用Cloudera Manager,您可以輕鬆地部署和集中操作完整的CDH堆棧和其他託管服務。應用程序自動化安裝過程,將部署時間從數週減少到分鐘;爲您提供在集羣範圍內運行主機和服務的實時視圖;提供一個單一的中央控制檯來執行整個集羣的配置更改;並集成各種報告和診斷工具,以幫助您進行操作。
在這裏插入圖片描述
Cloudera Manager 的架構如上圖所示(cs結構),主要由如下幾部分組成:

  • 服務端/Server:
    Cloudera Manager 的核心。主要用於管理 web server 和應用邏輯。它用於安裝軟件,配置,開始和停止服務,以及管理服務運行的集羣。

  • 代理/agent:
    安裝在每臺主機上。它負責啓動和停止的進程,部署配置,觸發安裝和監控主機。

  • 數據庫/Database:
    存儲配置和監控信息。通常可以在一個或多個數據庫服務器上運行的多個邏輯數據庫。例如,所述的 Cloudera 管理器服務和監視,後臺程序使用不同的邏輯數據庫。

  • Cloudera Repository:
    由cloudera manager 提供的軟件分發庫。

  • 客戶端/Clients:
    提供了一個與 Server 交互的接口。

      Cloudera Manager包括server端和agent;server端主要作用是監控集羣分發配置集羣等,agent端主管集羣各節點。
      CDH是CM的安裝包,本地或者雲端,其中包括hadoop的生態系統需要的所有組件,通過Cloudera Manager統一管理和安裝。
      CDH除了可以通過cm安裝也可以通過yum,tar,rpm安裝。
    

環境準備

下面的操作每個節點都需要。

軟件版本選擇

類目 版本 下載地址
操作系統 CentOS Linux release 7.5.1804 (Core) 使用阿里雲鏡像
數據庫 MySQL 5.6.40 MySQL官網下載
JDK jdk-8u162-linux-x64.rpm Oracle 官網下載
Cloudera Manager Cloudera Manager 6.0.1 官方倉庫
CDH CDH 6.0.1 使用parcels安裝

節點準備(四個節點)

名稱 IP CM管理軟件
bd223 10.1.24.223 Cloudera Manager Agent
bd224 10.1.24.224 Cloudera Manager Server&Agent ,MySQL
bd225 10.1.24.225 Cloudera Manager Agent
bd226 10.1.24.226 Cloudera Manager Agent

配置主機名和hosts解析(所有節點)

編輯/etc/hostname,修改主機名,並使用命令hostname使其立刻生效。
編輯/etc/hosts,增加如下內容,用來解析主機名映射。

10.1.24.223		bd223
10.1.24.224		bd224
10.1.24.225		bd225
10.1.24.226		bd226

關閉防火牆

因爲我們是CentOS 7系統,所以使用如下命令關閉防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service

關閉SELinux

安全增強型 Linux(Security-Enhanced Linux)簡稱 SELinux,它是一個 Linux 內核模塊,也是 Linux 的一個安全子系統。SELinux有兩種模式:0:permissive(寬容模式),1:enforcing(強制模式),可以通過getenforce Permissive[Enforcing]查看服務當前狀態。
首先需要將SELinux改爲disabledvim /etc/selinux/config然後修改 SELINUX=disabled。但這種方式只有關機重啓的時候纔有效。如果不方便重啓機器的話,可以先通過命令setenforce 0將服務改爲permissive(寬容模式)

禁用Linux透明大頁面壓縮(THP)服務

# 查看服務狀態,輸出 [always] madvise never 則表明服務開啓, always madvise [never] 表明服務禁用
cat /sys/kernel/mm/transparent_hugepage/defrag
cat /sys/kernel/mm/transparent_hugepage/enabled
# 關閉服務
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
# 還需要將禁用命令加入添加到開機啓動命令
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
chmod +x /etc/rc.d/rc.local

優化swap分區的使用

echo "vm.swappiness=0" >> /etc/sysctl.conf
sysctl -p

禁用所有IPv6

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p

配置server節點對其他節點的免密登錄

  1. 配置登錄免驗證
    vim /etc/ssh/ssh_config,修改StrictHostKeyChecking askStrictHostKeyChecking no
  2. 生成密鑰和公鑰
mkdir ~/.ssh
cd ~/.ssh
# 刪除之前生成的密鑰和公鑰文件
rm -rf id_rsa
rm -rf id_rsa.pub
# 生成密鑰和公鑰,一直回車到結束即可
ssh-keygen -t rsa
# 查看 ~/.ssh下生成 id_rsa  id_rsa.pub
ls ~/.ssh
# 配置密碼
ssh-copy-id bd223~bd226 # 輸入對應服務器的密碼

配置ntp時鐘同步

  1. 安裝ntp服務,yum install -y ntp
  2. 配置server主服務器(bd224)ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
# 規定10.1.24.0網段服務器的一些權限
restrict 10.1.24.0 mask 255.255.255.0 nomodify notrap
server 115.28.122.198 prefer #alibaba
server 120.25.108.11 #alibaba
server 202.120.2.101 #上海交大
server 210.72.145.44 # 中國國家受時中心
server 202.112.10.36 # 1.cn.pool.ntp.org
server 59.124.196.83 # 0.asia.pool.ntp.org
restrict 115.28.122.198 nomodify notrap noquery
restrict 120.25.108.11 nomodify notrap noquery
restrict 202.120.2.101 nomodify notrap noquery
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
server 127.127.1.0 # local clock
# stratum是時間服務器的層次,設爲0則爲頂級,如果要向別的NTP服務器更新時間,就不要設爲0
fudge 127.127.1.0 stratum 7
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
tinker panic 600
disable monitor
  1. 配置其他服務器(bd223、bd225、bd226)的ntp.conf
driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
restrict 10.1.24.0 mask 255.255.255.0 nomodify notrap
# 向bd224進行對時
server bd224 prefer
restrict bd224 nomodify notrap noquery
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 8
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
tinker panic 0
disable monitor
  1. 啓動ntp服務,service ntpd start
  2. 查看時鐘同步情況
ntpstat
ntpq -p
  1. 設置ntp服務開啓自啓,chkconfig ntpd on

安裝RPC服務

RPC服務,主要是在nfs共享(網絡文件共享)時候負責通知客戶端,服務器的端口號的。簡單理解rpc就是一箇中介服務。

  1. 安裝服務:yum install -y rpcbind
  2. 修改配置文件:vim /etc/systemd/system/sockets.target.wants/rpcbind.socket,修改後的內容如下:
[Unit]
Description=RPCbind Server Activation Socket

[Socket]
ListenStream=/var/run/rpcbind.sock
ListenStream=0.0.0.0:111

[Install]
WantedBy=sockets.target
  1. 啓動並設置開機自啓
systemctl daemon-reload
systemctl start rpcbind.socket
systemctl start rpcbind
systemctl enable rpcbind.socket
systemctl enable rpcbind

安裝jdk1.8+

這個網上教程很多,這裏就不做過多贅述了。只要安裝完成之後使用java -version查看是否安裝成功即可。

安裝MySQL

安裝MySQL教程鏈接如下:Linux安裝mysql5.6.40

但是這裏需要注意的是MySQL的配置問題。我搭建的時候,MySQL是用的之前搭建的雙機熱備的MySQL,所以配置還是沿用的之前的,啓動cloudera-scm-server的時候一直不成功,後來修改了/etc/my.cnf之後,就可以了。所以特此貼一份成功的MySQL 的配置。

[mysqld]
server_id=1
expire_logs_days=2
binlog_do_db=gp
replicate-ignore-db=mysql,information_schema,performance_schema
symbolic-links=0
basedir=/usr/local/mysql/mysql-5.6.40-linux-glibc2.12-x86_64
datadir=/home/mysql/data
port=3306
socket=/usr/local/mysql/mysql-5.6.40-linux-glibc2.12-x86_64/mysql.sock
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[client]
socket=/usr/local/mysql/mysql-5.6.40-linux-glibc2.12-x86_64/mysql.sock

安裝完成之後需要爲Cloudera各軟件創建數據庫,DML語句如下:

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

安裝 CM 和 CDH

安裝配置 CM

# 安裝deamon程序 【所有主機】
yum install -y cloudera-manager-daemons-6.0.1-610811.el7.x86_64.rpm
# 安裝agent程序 【所有主機】
yum install -y cloudera-manager-agent-6.0.1-610811.el7.x86_64.rpm
# 安裝server程序 【管理主機bd224】
yum install -y cloudera-manager-server-6.0.1-610811.el7.x86_64.rpm
# 安裝server程序 【使用MySQL可跳過--管理主機bd224】
yum install -y cloudera-manager-server-db-2-6.0.1-610811.el7.x86_64.rpm

修改配置文件

  1. 只有主節點bd224需要,無需修改,但是需要知道有這麼個文件
    vim /etc/default/cloudera-scm-server
  2. 所有節點都需要,修改 server_host=bd224
    vim /etc/cloudera-scm-agent/config.ini
  3. 只有主節點bd224需要,修改數據庫配置
    vim /etc/cloudera-scm-server/db.properties
    修改後的內容如下:
# The database type
# Currently 'mysql', 'postgresql' and 'oracle' are valid databases.
com.cloudera.cmf.db.type=mysql

# The database host
# If a non standard port is needed, use 'hostname:port'
com.cloudera.cmf.db.host=bd224

# The database name
com.cloudera.cmf.db.name=scm

# The database user
com.cloudera.cmf.db.user=scm

# The database user's password
com.cloudera.cmf.db.password=scm

# The db setup type
# After fresh install it is set to INIT
# and will be changed post config.
# If scm-server uses Embedded DB then it is set to EMBEDDED
# If scm-server uses External DB then it is set to EXTERNAL
com.cloudera.cmf.db.setupType=EXTERNAL

複製數據庫驅動

因爲我們用的是MySQL數據庫,所以只需要MySQL的驅動即可。
通過/etc/default/cloudera-scm-server文件,可以看到數據庫驅動需要放在/usr/share/java/mysql-connector-java.jar

啓動

# 啓動server進程(只有主節點bd224需要啓動)
systemctl start cloudera-scm-server
# 啓動agent進程
systemctl start cloudera-scm-agent
# 如果啓動中用什麼問題,可以查看日誌
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log

如果server啓動失敗,很有可能就是MySQL配置的問題,修改配置或者直接換個MySQL。
啓動完成之後server的日誌顯示了啓動的監聽端口7180

初始化 Cloudera Manager

瀏覽器打開http://10.1.24.224:7180,用戶名和密碼默認都是admin

  1. 繼續。
    在這裏插入圖片描述

  2. 接受許可。
    在這裏插入圖片描述

  3. 我這裏選擇的是免費版,收費版請自行選擇。
    在這裏插入圖片描述

集羣安裝

安裝的時候有兩種選擇。

  1. 各節點的agent程序自己安裝並啓動(本文選擇的方法),那麼就可以跳過安裝agent程序的步驟。
  2. 各節點沒有安裝或啓動agent程序,那麼這時候就需要server來進行安裝了。

已經安裝和啓動agent程序

  1. 繼續。
    在這裏插入圖片描述

  2. 選擇主機。
    在這裏插入圖片描述

  3. 選擇存儲庫。
    在這裏插入圖片描述

  4. 安裝 agents。
    在這裏插入圖片描述

  5. 安裝選定的Parcel,之前我們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo
    在這裏插入圖片描述

  6. 檢查主機正確性。
    在這裏插入圖片描述

沒有安裝和啓動agent程序

  1. 繼續。
    在這裏插入圖片描述

  2. 指定要添加的節點。
    在這裏插入圖片描述

  3. 選擇存儲庫,之前我們已經在 CM Server 節點配置好了。

在這裏插入圖片描述

  1. 不進行勾選,選擇我們自己安裝的 JDK。
    在這裏插入圖片描述

  2. 提供 SSH 登錄憑據。

在這裏插入圖片描述

  1. 安裝 agents。
    在這裏插入圖片描述

  2. 安裝選定的Parcel,之前我們已經下載好,並配置好放在的 CM Server 節點的/opt/cloudera/parcel-repo
    在這裏插入圖片描述

  3. 檢查主機正確性。
    在這裏插入圖片描述

安裝要點

  1. 因爲Parcel文件較大,且下載很慢,所以可以找到文件之後通過自己搭建nginx實現私服下載。
    首先將CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcelCDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.shaCDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.torrentmanifest.json這四個文件放到服務器的某個目錄下。
    然後搭建nginx,將目錄映射出去,映射的地址爲http://10.1.24.134:38080/cdh
    之後在選擇存儲庫這一步,選擇更多選項,將https://archive.cloudera.com/cdh6/{latest_supported}/parcels/修改爲http://10.1.24.134:38080/cdh。如下圖所示:
    選擇更多選項
    在這裏插入圖片描述
    修改下載地址。
    在這裏插入圖片描述
  2. 如果安裝Parcel一直失敗,且agent日誌一直報錯Error, CM server guid updated, expected XXXX, received XXXX,那麼很有可能是之前安裝過agent,且安裝文件沒有刪除乾淨。
    解決辦法:
	rm -rf /var/lib/cloudera-scm-agent/cm_guid
	service cloudera-scm-agent restart

集羣設置

  1. 選擇要安裝的服務,可以根據自己的需求進行軟件安裝。
    在這裏插入圖片描述

  2. 自定義角色分配。
    在這裏插入圖片描述

  3. 數據庫設置。
    在這裏插入圖片描述

  4. 審覈更改,如果有特定目錄的設定或者參數的設定,可以在這裏進行更正。
    在這裏插入圖片描述

  5. 首次運行。
    在這裏插入圖片描述

  6. 安裝完成。
    在這裏插入圖片描述

設置要點

  1. 如果數據庫設置這一步測試連接失敗並顯示沒有驅動信息的話,那麼就需要在服務相應服務器的/usr/share/java/mysql-connector-java.jar放置驅動即可。
    以下兩個目錄我暫時也沒測試是否有用,特此記錄一下。
    Hive /opt/cloudera/parcels/CDH-6.0.1-1.cdh6.0.1.p0.590678/lib/hive/lib/mysql-connector-java-5.1.44-bin.jar
    Oozie /var/lib/oozie/mysql-connector-java-5.1.44-bin.jar

至此就算所有步驟完成了。

完全卸載CDH

刪除的時候確定一下,各自服務器在這些目錄下,是否有重要文件,慎重刪除!都是血和淚的教訓!

rm -rf /opt/dfs
rm -rf /home/opt/dfs
rm -rf /var/run/cloudera-scm-agent/process/*-hdfs-*


rm -rf /var/log/cloudera*
rm -rf /var/lib/cloudera*
rm -rf /etc/spark
rm -rf /etc/hadoop
rm -rf /etc/hbase
rm -rf /etc/hive

rm -rf /tmp/.cloudera_health_monitoring_canary_files
rm -rf /tmp/hbase-cloudera-scm
rm -rf /etc/cloudera-scm-server
rm -rf /etc/cloudera-scm-agent
rm -rf /etc/systemd/system/multi-user.target.wants/cloudera-scm-server.service
rm -rf /tmp/hsperfdata_cloudera-scm
rm -rf /home/opt/*

rm -rf /usr/bin/hbase*
rm -rf /tmp/*hbase
rm -rf /var/log/hbase
rm -rf /var/lib/hbase
rm -rf /var/lib/alternatives/hbase*
rm -rf /etc/hbase*
rm -rf /etc/alternatives/hbase*


rm -rf /usr/bin/sqoop-create-hive-table
rm -rf /usr/bin/hive
rm -rf /usr/bin/hiveserver2
rm -rf /tmp/hive
rm -rf /tmp/hsperfdata_hive
rm -rf /var/log/hive
rm -rf /var/lib/hive
rm -rf /var/lib/alternatives/*hive*
rm -rf /etc/alternatives/*hive*
rm -rf /etc/hive-webhcat
rm -rf /etc/hive-hcatalog

rm -rf /etc/alternatives/oozie
rm -rf /var/lib/alternatives/oozie
rm -rf /var/lib/oozie
rm -rf /usr/bin/oozie

rm -rf /usr/bin/yarn
rm -rf /tmp/hadoop-yarn-nodemanager.pid
rm -rf /tmp/hsperfdata_yarn
rm -rf /var/log/hadoop-yarn
rm -rf /var/lib/yarn-ce
rm -rf /var/lib/hadoop-yarn
rm -rf /var/lib/alternatives/yarn
rm -rf /etc/alternatives/yarn


rm -rf /etc/alternatives/*spark*
rm -rf /var/lib/alternatives/*spark*
rm -rf /usr/bin/*spark*
rm -rf /var/lib/spark
rm -rf /var/log/spark

rm -rf /etc/alternatives/hadoop*
rm -rf /etc/hadoop-*
rm -rf /var/lib/alternatives/hadoop*
rm -rf /var/lib/hadoop-*
rm -rf /var/log/hadoop-*
rm -rf /usr/bin/hadoop*
rm -rf /tmp/hadoop-hdfs-datanode.pid

rm -rf /etc/alternatives/zookeeper-*
rm -rf /etc/zookeeper
rm -rf /var/lib/alternatives/zookeeper-*
rm -rf /var/lib/zookeeper
rm -rf /var/log/zookeeper
rm -rf /tmp/hsperfdata_zookeeper
rm -rf /usr/bin/zookeeper-*

rm -rf /sys/fs/cgroup/systemd/system.slice/run-cloudera

rm -rf /run/cloudera-scm-agent

安裝所需文件鏈接

鏈接: https://pan.baidu.com/s/1Z4CbfbY-Gqr-PbICrn7iQA
提取碼:yj0c

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章