天天看點

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

哈喽大家好呀,僅經過了一段時間大資料相關的博文又和大家見面了,筆者之前有寫過一套Hadoop大資料相關的部落格,為什麼今天又要開坑呢?當然是有原因,随着不斷的學習了解,慢慢意識到之前做法存在很多缺陷,最終對比了比較成熟的解決方案EMR和CDH,最終選擇了使用CDH來搭建大資料管理平台,那麼我們就開始新的一趴,企業級大資料管理平台CDH的學習吧!

附上:

喵了個咪的部落格:

w-blog.cn cloudera官網: https://www.cloudera.com/ 官方文檔位址: https://www.cloudera.com/documentation/enterprise/latest.html

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