一 , CDN介紹和解決的問題
CDH是由cloudera進行開發的大資料一站式平臺管理解決方案,基於Hadoop生態的第三方發行版本,這樣的描述相信大家還是挺難理解的,我們一起來梳理下CDH帶來的改觀.
作坊和工廠有什麼區別? 一個是做出來東西就好了,一個是精細化流水線生產
用這個來對比自建Hadoop和CDH再好不過,要理解其中的區別我們需要先對CDH有個基礎的認知,先從瞭解CDH解決了常見的什麼問題
元件相容
- 複雜的生態環境。在Hadoop生態圈中,元件的選擇、使用,比如Hive,Mahout,Sqoop,Flume,Spark,Oozie等等,需要大量考慮相容性的問題,版本是否相容,元件是否有衝突,編譯是否能通過等。經常會浪費大量的時間去編譯元件,解決版本衝突問題。
- CDH每個版本都會有相容認證都是經過嚴格的測試之後公佈的,理論上來說只要統一CDH版本就不會出現相容問題
穩定安全
- 不同的版本會有不同的漏洞很容易被被利用,又不敢輕易更新
- 版本更新快。通常情況,比如CDH每個季度會有一個update,每一年會有一個release。基於穩定版本Apache Hadoop,並應用了最新Bug修復或Feature的patch
安裝配置管理
- 複雜的叢集部署、安裝、配置。通常按照叢集需要編寫大量的配置檔案,分發到每一臺節點上,容易出錯,效率低下,還需要大量的查閱資料文件。
- 統一的網頁進行安裝配置,非常詳細的文件以及配置的分類註解以及推薦配置(基本都已經是最優配置)
資源監控管理運維
- 複雜的叢集運維。對叢集的監控,運維,需要安裝第三方的其他軟體,如ganglia,nagois等,運維難度較大。
- 運維簡單。提供了管理、監控、診斷、配置修改的工具,管理配置方便,定位問題快速、準確,使運維工作簡單,有效。
企業服務
- 只能求助社群的幫助,響應差,解決問題需要碰運氣.
- 程式碼基於Apache協議,100%開源。同時提供企業付費服務一對一支援,作為保障的後盾
PS: 使用CDH部署叢集不能代替對各個元件進行單獨的學習瞭解的工作,非常推薦大家從單個元件安裝部署開始最後在統一使用CDH部署
二 , 準備工作
環境準備
- CentOS 7.4 64位
- JDK 1.8
- Cloudera Manager 5.15.0
需要準備一臺cm伺服器 兩臺master伺服器 使用三臺節點伺服器
伺服器最低要求 4核心8G
所有節點修改hostname
> hostnamectl --static set-hostname cm
> hostnamectl --static set-hostname master-1
> hostnamectl --static set-hostname master-2
> hostnamectl --static set-hostname slave-1
> hostnamectl --static set-hostname slave-2
> hostnamectl --static set-hostname slave-3
複製程式碼
修改節點的hosts可以直接通過主機名進行訪問
> vim /etc/hosts
# 修改為大家自己伺服器的IP地址
192.168.3.10 cm
192.168.3.21 master-1
192.168.3.22 master-2
192.168.3.31 slave-1
192.168.3.32 slave-2
192.168.3.33 slave-3
複製程式碼
依賴檔案安裝包準備
> mkdir -p /app/install
> cd /app/install
複製程式碼
> wget http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz
> wget http://archive.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
> wget http://archive.cloudera.com/cdh5/parcels/5.15.0/CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
> wget http://pic.w-blog.cn/mysql-connector-java.jar
複製程式碼
JDK1.8需要自行下載 jdk-8u101-linux-x64.tar.gz
最終我們可以看到有如下檔案:
下載慢可選多執行緒下載工具 axel
cd /app/install
wget http://www.ha97.com/code/axel-2.4.tar.gz
tar zxvf axel-2.4.tar.gz
cd axel-2.4
./configure
make
make install
cd ..
複製程式碼
所有節點關閉防火牆和selinux
關閉防火牆:
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
複製程式碼
關閉selinux:
vim /etc/selinux/config
找到SELINUX改為:
SELINUX=disabled
複製程式碼
所有節點ssh免密碼登入
先在cm 上執行:
ssh-keygen -t rsa #一路回車到完成
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cm #將公鑰拷貝到本機的authorized_keys上
複製程式碼
再在其他節點分別執行以下命令:
注意此處不變,將公鑰拷貝到cm的authorized_k
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cm
複製程式碼
在CM上,將authorized_keys分發到其他節點伺服器:
scp ~/.ssh/authorized_keys root@master-1:~/.ssh/
scp ~/.ssh/authorized_keys root@master-2:~/.ssh/
scp ~/.ssh/authorized_keys root@slave-1:~/.ssh/
scp ~/.ssh/authorized_keys root@slave-2:~/.ssh/
scp ~/.ssh/authorized_keys root@slave-3:~/.ssh/複製程式碼
歡迎工作一到五年的Java工程師朋友們加入Java架構開發:855801563
本群提供免費的學習指導 架構資料 以及免費的解答
不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導