大數據clouderaManager5.14.0離線部署
Cloudera Manager是cloudera公司提供的一種大數據的解決方案,可以通過ClouderaManager管理界面來對我們的集群進行安裝和操作,提供了良好的UI界面交互,使得我們管理集群不用熟悉任何的linux技術,只需要通過網頁瀏覽器就可以實現我們的集群的操作和管理,讓我們使用和管理集群更加的方便。
1、ClouderaManager整體架構
Cloudera Manager的核心是Cloudera Manager Server。Server托管Admin Console Web Server和應用程序邏輯。它負責安裝軟件、配置、啟動和停止服務以及管理運行服務的群集。
解釋:
- Agent:安裝在每臺主機上。它負責啟動和停止進程,解壓縮配置,觸發安裝和監控主機
- Management Service:執行各種監控、報警和報告功能的一組角色的服務。
- Database:存儲配置和監控信息
- Cloudera Repository:可供Cloudera Manager分配的軟件的存儲庫(repo庫)
- Client:用于與服務器進行交互的接口:
- Admin Console:管理員控制臺
- API:開發人員使用 API可以創建自定義的Cloudera Manager應用程序
Cloudera Management Service
- Cloudera Management Service 可作為一組角色實施各種管理功能
- Activity Monitor:收集有關服務運行的活動的信息
- Host Monitor:收集有關主機的運行狀況和指標信息
- Service Monitor:收集有關服務的運行狀況和指標信息
- Event Server:聚合組件的事件并將其用于警報和搜索
- Alert Publisher :為特定類型的事件生成和提供警報
- Reports Manager:生成圖表報告,它提供用戶、用戶組的目錄的磁盤使用率、磁盤、io等歷史視圖
信號檢測
默認情況下,Agent 每隔 15 秒向 Cloudera Manager Server 發送一次檢測信號。但是,為了減少用戶延遲,在狀態變化時會提高頻率。
狀態管理
- 模型狀態捕獲什么進程應在何處運行以及具有什么配置
- 運行時狀態是哪些進程正在何處運行以及正在執行哪些命令(例如,重新平衡 HDFS 或執行備份/災難恢復計劃或滾動升級或停止)
- 當您更新配置(例如Hue Server Web 端口)時,您即更新了模型狀態。但是,如果 Hue 在更新時正在運行,則它仍將使用舊端口。當出現這種不匹配情況時,角色會標記為具有”過時的配置”。要重新同步,您需重啟角色(這會觸發重新生成配置和重啟進程)
- 特殊情況如果要加入一些clouder manager控制臺沒有的屬性時候都在高級里面嵌入
服務器和客戶端配置
- 如使用HDFS,文件 /etc/hadoop/conf/hdfs-site.xml 僅包含與 HDFS 客戶端相關的配置
- 而 HDFS 角色實例(例如,NameNode 和 DataNode)會從/var/run/cloudera-scm-agent/process/unique-process-name下的每個進程專用目錄獲取它們的配置
進程管理
- 在 Cloudera Manager 管理的群集中,只能通過 Cloudera Manager 啟動或停止服務。ClouderaManager 使用一種名為 supervisord的開源進程管理工具,它會重定向日志文件,通知進程失敗,為合適用戶設置調用進程的有效用戶 ID 等等
- Cloudera Manager 支持自動重啟崩潰進程。如果一個角色實例在啟動后反復失敗,Cloudera Manager還會用不良狀態標記該實例
- 特別需要注意的是,停止 Cloudera Manager 和 Cloudera Manager Agent 不會停止群集;所有正在運行的實例都將保持運行
- Agent 的一項主要職責是啟動和停止進程。當 Agent 從檢測信號檢測到新進程時,Agent 會在/var/run/cloudera-scm-agent 中為它創建一個目錄,并解壓縮配置
- Agent 受到監控,屬于 Cloudera Manager 的主機監控的一部分:如果 Agent 停止檢測信號,主機將被標記為運行狀況不良
主機管理
- Cloudera Manager 自動將作為群集中的托管主機身份:JDK、Cloudera Manager Agent、CDH、Impala、Solr 等參與所需的所有軟件部署到主機
- Cloudera Manager 提供用于管理參與主機生命周期的操作以及添加和刪除主機的操作
- Cloudera Management Service Host Monitor 角色執行運行狀況檢查并收集主機度量,以使您可以監控主機的運行狀況和性能
安全
身份驗證
Hadoop中身份驗證的目的僅僅是證明用戶或服務確實是他或她所聲稱的用戶或服務,通常,企業中的身份驗證通過單個分布式系統(例如,輕型目錄訪問協議 (LDAP) 目錄)進行管理。LDAP身份驗證包含由各種存儲系統提供支持的簡單用戶名/密碼服務
Hadoop 生態系統的許多組件會匯總到一起來使用 Kerberos 身份驗證并提供用于在 LDAP 或 AD 中管理和存儲憑據的選項
授權
CDH 當前提供以下形式的訪問控制:
適用于目錄和文件的傳統 POSIX 樣式的權限
適用于 HDFS 的擴展的訪問控制列表 (ACL)
Apache HBase 使用 ACL 來按列、列族和列族限定符授權各種操作 (READ, WRITE, CREATE, ADMIN)
使用 Apache Sentry 基于角色進行訪問控制
加密
需要獲得企業版的Cloudera(Cloudera Navigator 許可)
2、clouderaManager環境安裝前準備
準備兩臺虛擬機,其中一臺作為我們的主節點,安裝我們的ClouderaManager Server與ClouderaManager agent,另外一臺作為我們的從節點只安裝我們的clouderaManager agent
機器規劃如下:

統一服務器的兩個路徑:
- mkdir -p /export/softwares/
- mkdir -p /export/servers/
2.1、兩臺機器更改主機名
第一臺機器更改主機名
- vim /etc/sysconfig/network
- NETWORKING=yes
- HOSTNAME=node01.hadoop.com
第二臺機器更改主機名
- vim /etc/sysconfig/network
- NETWORKING=yes
- HOSTNAME=node02.hadoop.com
2.2、更改主機名與IP地址的映射
兩臺機器更改hosts文件
- vim /etc/hosts
- 192.168.52.100 node01.hadoop.com node01
- 192.168.52.110 node02.hadoop.com node02
2.3、兩臺機器關閉防火墻
- service iptables stop
- chkconfig iptables off
2.4、兩臺機器關閉selinux
- vim /etc/selinux/config
- SELINUX=disabled
2.5、兩臺機器安裝jdk
將我們的jdk的壓縮包上傳到node01.hadoop.com的/export/softwares路徑下
- cd /export/softwares/
- tar -zxvf jdk-8u141-linux-x64.tar.gz -C /export/servers/
- 配置環境變量
- vim /etc/profile
- export JAVA_HOME=/export/servers/jdk1.8.0_141
- export PATH=:$JAVA_HOME/bin:$PATH
- source /etc/profile
第二臺機器同樣安裝jdk即可
2.6、兩臺機器實現SSH免密碼登錄
第一步:兩臺器生成公鑰與私鑰
兩臺機器上面執行以下命令,然后按下三個回車鍵即可生成公鑰與私鑰
ssh-keygen -t rsa

第二步:兩臺機器將公鑰拷貝到同一個文件當中去
兩臺機器執行以下命令
ssh-copy-id node01.hadoop.com
第三步:拷貝authorized_keys到其他機器
第一臺機器上將authorized_keys拷貝到第二臺機器
scp /root/.ssh/authorized_keys node02.hadoop.com:/root/.ssh/
2.7、第二臺機器安裝mysql數據庫
通過yum源,在線安裝mysql
- yum install mysql mysql-server mysql-devel
- /etc/init.d/mysqld start
- /usr/bin/mysql_secure_installation
- grant all privileges on *.* to 'dsjuser'@'%' identified by 'Ypicdsjuat@123' with grant option;
- flush privileges;
2.8、解除linux系統打開文件最大數量的限制
兩臺機器都需要執行
vi /etc/security/limits.conf
添加以下內容
- * soft noproc 11000
- * hard noproc 11000
- * soft nofile 65535
- * hard nofile 65535
2.9、設置linux交換區內存
兩臺機器都要執行
執行命令:
- echo 10 > /proc/sys/vm/swappiness
- 并編輯文件sysctl.conf:
- vim /etc/sysctl.conf
- 添加或修改
- vm.swappiness = 0
- 兩臺機器都要執行:
- echo never > /sys/kernel/mm/transparent_hugepage/defrag
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
- 并編輯文件rc.local :
- vim /etc/rc.local
- echo never > /sys/kernel/mm/transparent_hugepage/defrag
- echo never > /sys/kernel/mm/transparent_hugepage/enabled
2.10、兩臺機器時鐘同步
兩臺機器需要進行時鐘同步操作,保證兩臺機器時間相同
同步阿里云服務器時間:
- yum install vixie-cron crontabs
- crontab –e
- */1 * * * * /usr/sbin/ntpdate ntp4.aliyun.com;
3、clouderaManager安裝資源下載
第一步:下載安裝資源并上傳到服務器
我們這里安裝CM5.14.0這個版本,需要下載以下這些資源,一共是四個文件即可
下載cm5的壓縮包
- 下載地址:http://archive.cloudera.com/cm5/cm/5/
- 具體文件地址:
- http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.14.0_x86_64.tar.gz
- 下載cm5的parcel包
- 下載地址:
- http://archive.cloudera.com/cdh5/parcels/
- 第一個文件具體下載地址:
- http://archive.cloudera.com/cdh5/parcels/5.14.0/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel
- 第二個文件具體下載地址:
- http://archive.cloudera.com/cdh5/parcels/5.14.0/CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1
- 第三個文件具體下載地址:
- http://archive.cloudera.com/cdh5/parcels/5.14.0/manifest.json
將這四個安裝包都上傳到第一臺機器的/opt/softwares路徑下:

第二步:解壓壓縮包到指定路徑
解壓CM安裝包到/opt路徑下去
- cd /export/softwares
- tar -zxvf cloudera-manager-el6-cm5.14.0_x86_64.tar.gz -C /opt/
第三步:將我們的parcel包的三個文件拷貝到對應路徑
將我們的parcel包含三個文件,拷貝到/opt/cloudera/parcel-repo路徑下面去,并記得有個文件需要重命名
- cd /export/softwares/
- cp CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/
重命名標黃的這個文件
- cd /opt/cloudera/parcel-repo/
- mv CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha1 CDH-5.14.0-1.cdh5.14.0.p0.24-el6.parcel.sha=
第四步:所有節點添加普通用戶并給予sudo權限
在node01機器上面添加普通用戶并賦予sudo權限
執行以下命令創建普通用戶cloudera-scm
- useradd --system --home=/opt/cm-5.14.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
賦予cloudera-scm普通用戶的sudo權限
- vim /etc/sudoers
- cloudera-scm ALL=(ALL) NOPASSWD: ALL
第五步:更改主節點的配置文件
node01機器上面更改配置文件
- vim /opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini
- server_host=node01.hadoop.com
第六步:將/opt目錄下的安裝包發放到其他機器
將第一臺機器的安裝包發放到其他機器
- cd /opt
- scp -r cloudera/ cm-5.14.0/ node02:/opt
第七步:創建一些數據庫備用
node02機器上面創建數據庫
- hive 數據庫
- create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- 集群監控數據庫
- create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- hue 數據庫
- create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- oozie 數據庫
- create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
第八步:準備數據庫連接的驅動包
在所有機器上面都準備一份數據庫的連接驅動jar包放到/usr/share/java路徑下
準備一份mysql的驅動連接包,放到/usr/share/java路徑下去
- cd /export/softwares/
- wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz
- tar -zxvf mysql-connector-java-5.1.45.tar.gz
- cd /export/softwares/mysql-connector-java-5.1.45
- cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/mysql-connector-java.jar
拷貝驅動包到第二臺機器
- cd /usr/share/java
- scp mysql-connector-java.jar node02:$PWD
第九步:為clouderaManager創建數據庫
- /opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh mysql -hnode02 -uroot -p123456 --scm-host node01 scm root 123456
命令說明:/opt/cm-5.14.0/share/cmf/schema/scm_prepare_database.sh 數據庫類型 -h數據庫主機 –u數據庫用戶名 –p數據庫密碼 --scm-host cm主機 數據庫名稱 用戶名 密碼

第十步:啟動服務
主節點啟動clouderaManager Server與ClouderaManager agent服務
- /opt/cm-5.14.0/etc/init.d/cloudera-scm-server start
- /opt/cm-5.14.0/etc/init.d/cloudera-scm-agent start
從節點node02啟動ClouderaManager agent服務
第十一步:瀏覽器頁面訪問
http://node01:7180/cmf/login
默認用戶名admin密碼 admin
