Hadoop - 企業級大資料管理平臺CDH(介紹和準備工作)

架構師springboot發表於2019-03-14

一 , 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

本群提供免費的學習指導 架構資料 以及免費的解答

不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導


相關文章