CDH是Cloudera的Hadoop發行版,徹底開源,比Apache Hadoop在兼容性,安全性,穩定性上有所加強,也是互聯網企業中較爲常見的架構。html
CDH版本:CDH 5.12.2, Parceljava
1,若是是雲主機的話,看看配置就好了
2,根據最小原則,準備6臺物理主機作基礎準備,大體配置以下
PS:具體網關設備什麼的這裏就不討論了node
3,系統版本:Centos7.8 64bit 最小化版本python
yum install net-tools ntpmysql
Jar包名稱:jdk-8u151-linux-x64.rpm
安裝方式:rpm -ivh jdk-8u151-linux-x64.rpm
PS:版本比我大的基本都行linux
根據實際狀況大體安排先有線上主機任務的分配
1,同步host配置
當前分配以下,寫入系統 /etc/hosts文件sql
172.16.3.11 master01 172.16.3.12 master02 172.16.3.101 node01 172.16.3.102 node02 172.16.3.103 node03 172.16.3.104 node04
2,更新主機名
修改主機名開機配置文件,確保重啓後hostname不變動shell
[root@localhost ~]# cat /etc/sysconfig/network # Created by anaconda NETWORKING=yes HOSTNAME=master01
不重啓的狀況下直接更改數據庫
hostnamectl master01
Cloudera 建議將 /proc/sys/vm/swappiness 設置爲最大值 10。當前設置爲 60。
echo 10 > /proc/sys/vm/swappinesscentos
已啓用透明大頁面壓縮,可能會致使重大性能問題。請運行
echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled
以禁用此設置
而後將同一命令添加到 /etc/rc.local 等初始化腳本中,以便在系統重啓時予以設置。如下主機將受到影響:
在rc.local中新增如下選項
echo 10 > /proc/sys/vm/swappiness echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled
#iptables根據實際狀況選擇是否禁用
iptables -F service ntpd restart
修改系統limit
在/etc/security/limits.conf 文件中,# End of file以前新增如下配置
* soft nproc 65536 * hard nproc 65536 * soft nofile 65536 * hard nofile 65536
而後退出從新登錄便可生效
iptables -F
setenforce 0
CDH對於時區和時間匹配要求比較高
使用ntpd服務來自動同步當前時區對應的時間
yum install ntp
使用tzselect來調整當前時區
最後啓動ntpd服務便可
service ntpd restart
首先確認安裝版本
首先查看版本信息,決定要按照的版本
查看版本信息
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html#cmvd_topic_1
截止至2021-03-19信息以下
Cloudera Manager is available in the following releases: Cloudera Manager 5.16.2 is the current release of Cloudera Manager 5.16. Cloudera Manager 5.15.2. 5.14.4, 5.13.3, 5.12.2, 5.11.2, 5.10.2, 5.9.3, 5.8.5, 5.7.6, 5.6.1, 5.5.6, 5.4.10, 5.3.10, 5.2.7, 5.1.6, and 5.0.7 are previous stable releases of Cloudera Manager 5.14, 5.13, 5.12, 5.11, 5.10, 5.9, 5.8, 5.7, 5.6, 5.5, 5.4, 5.3, 5.2, 5.1, and 5.0 respectively.
安裝當前系統對應的yum源
當前爲centos7系統,執行以下源讀取
rpm -Uvh http://archive.cloudera.com/cdh5/one-click-install/redhat/7/x86_64/cloudera-cdh-5-0.x86_64.rpm
操做環境:一臺新主機:192.168.1.100,Centos7 系統便可
1,首先先拉取在線對應版本的repo文件
rpm -Uvh http://archive.cloudera.com/cdh5/one-click-install/redhat/7/x86_64/cloudera-cdh-5-0.x86_64.rpm
[root@master01 parcel-repo]# cat /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version 5.12.2
baseurl = https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.12.2/
gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1
2,安裝本地源工具
yum install -y yum-utils createrepo httpd
3,啓動httpd
service httpd start
4,同步對應原
reposync -r cloudera-manager
5,建立對應repo路徑
mkdir -p /var/www/html/mirrors/cdh/
cp -r cloudera-manager/ /var/www/html/mirrors/cdh/
cd /var/www/html/mirrors/cdh/
createrepo .
完成以後對應的本地源就已經搭建成功了
而後修改repo文件
[root@master01 parcel-repo]# cat /etc/yum.repos.d/cloudera-manager.repo
[cloudera-manager]
name = Cloudera Manager, Version 5.12.2
baseurl = http://192.168.1.100/mirrors/cdh/cloudera-manager/
gpgkey = https://archive.cloudera.com/redhat/cdh/RPM-GPG-KEY-cloudera
gpgcheck = 1
yum install cloudera-manager-daemons cloudera-manager-server
將/etc/yum.repos.d/cloudera-manager.repo文件同步到各個節點
在各個節點執行 yum install cloudera-manager-agent
這樣就能夠走內網本地安裝,避免install速度慢的尷尬
CDH集羣能夠被不少數據庫支持,這裏咱們選擇使用Mysql
安裝MySQL rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 提取成功以後會在/etc/yum.repo.d路徑下方生成兩個yum文件 而後開始安裝: yum install mysql-server -y 啓動: service mysqld restart 如今設置的帳密以下: mysql -uroot -p111111 ps:密碼複雜點哈,別那麼簡單 執行CDH建表語句 /usr/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p111111 --scm-host localhost scm scm scm_password 導入鏈接jar包 mkdir -p /usr/share/java/ cp mysql-connector-java.jar /usr/share/java/
將須要的parcel包放到master01對應路徑下
否則須要下載,會比較慢
server端安裝完成以後,master01會多出一個7180端口
http://172.16.1.11:7180/
admin admin
而後以下圖一步步操做搭建集羣
打鉤贊成
選擇免費版
那個。。。免費版確定不如企業版,,你們視具體狀況而定哈
選擇parcel安裝以及對應版本
直接繼續
輸入主機對應帳號密碼
由於事前已經安裝過agent,因此接下來的節點部署會比較輕鬆
PS:圖中IP和文檔舉例狀況不一樣哈,部署中按照實際ip而定
以前已經部署過parcel包,因此這邊會比較快
根據實際業務狀況,這邊跟我實際需求我選擇了spark
根據實際狀況進行節點分佈
NameNode:主要是用來保存HDFS的元數據信息,好比命名空間信息,塊信息等。當它運行的時候,這些信息是存在內存中的。可是這些信息也能夠持久化到磁盤上。
Secondary NameNode:的整個目的是在HDFS中提供一個檢查點。它只是NameNode的一個助手節點,注意,這不是備份節點,是檢查節點,要特別注意!!!
Balancer:平衡節點之間的數據空間使用率
HttpFS:是cloudera公司提供的一個hadoop hdfs的一個http接口,經過WebHDFS REST API 能夠對hdfs進行讀寫等訪問
NFSGateway:HDFS的NFS網關容許客戶端掛載HDFS並經過NFS與其進行交互,就像它是本地文件系統的一部分同樣。網關支持NFSv3。
Datanode:數據存儲的節點
Hive Gateway:Hive默認網關,默認每一個節點都要有
Hive Metastore Server:Hive元數據的訪問入口,使用Thrift協議,提供對hive元數據的跨語言訪問。
WebHCatServer:WebHCat提供了Rest接口,使用戶可以經過安全的HTTPS協議執行行Hive DDL操做、運行Hive HQL任務、 運行MapReduce任務等。
HiveServer2:Hive庫中數據的訪問入口,一樣適用thrift 協議,提供對Hive中數據的跨語言訪問,好比 常見的python, java 等對hive數據的遠程訪問,beeline 客戶端也是經過HiveServer2方式訪問數據的
PS:相對而言,若是Hive 中存在一張表。訪問這張表的信息 經過 Metastore Server
訪問表的具體內容,經過 HiveServer2
Hue Server:Hue Server是創建在Django Python的Web框架上的Web應用程序
Load Balancer:hue的負載均衡
Service Monitor:收集有關服務的運行情況和指標信息
Activity Monitor:收集有關服務運行的活動的信息
Host Monitor:收集有關主機的運行情況和指標信息
Event Server:聚合組件的事件並將其用於警報和搜索
Alert Publisher :爲特定類型的事件生成和提供警報
Oozie:是一個與Hadoop技術棧的項目集成,支持多種類型的Hadoop做業(例如Java map-reduce,Streaming map-reduce,Pig,Hive,Sqoop和Distcp,Spark)以及系統特定的工做(例如Java程序和shell腳本),用於管理Apache Hadoop做業的工做流調度程序系統。
History Server:歷史任務記錄
Gateway:Spark的節點調度網關
Resource Manager:資源分配與調度
Job History:歷史任務調度記錄
Node Manager:單個節點的資源與任務管理
Server:至少三個節點,合理的話五個節點,主要用於配置管理,分佈式同步等
直接下一步能夠配置對應的數據庫鏈接,具體以下圖
下一步-->就會開始按照以前的部署自動安裝
最後,集羣搭建完畢,歡呼!!!
CDH提供了相對完善的組件和管理機制,但不表明着不須要維護和優化了,後續會逐漸說些優化相關的內容