天天看點

超詳細版企業離線部署CDH6.10叢集與配置使用

作者:滌生大資料

進入大資料行業數載,也從一個開發小白走到了今天,期間也曆經過一摸番着石頭過河的探索,到如今的胸有點墨;玩過demo,使用過負責過上千節點的大資料叢集開發與使用;被人面虐過,也面跪過一些人。如今,趁着自己心中有火,眼裡有光的年紀,把自己的一點心得與經驗分享大資料行業的愛好者。也希望有助于後面的童鞋少走彎路,歡迎大家私信交流。

超詳細版企業離線部署CDH6.10叢集與配置使用

1.生産CDH叢集搭建前準備

對于大資料初學者,強烈建議使用cdh版本,使用cm搭建管理叢集進行測試,學習。因為更加好用,友善,直覺,見識下啥叫成熟的架構。學習要先見森林,再見樹木,最後再見森林。不要一頭紮進去linux黑視窗,那不是酷,那是傻。可以說80%的大資料開發者在大廠裡是不允許直接操作linux跳闆機的,而是成型的,成熟的,穩定的大資料web開發環境。

中小型的公司,使用CDH叢集的還是很多,因為實在很友善,免費的且強大的功能。一般中小型公司節點個數從幾十台到幾百台不等,可以考慮使用CDH。但是現在CDH和HDP合并了,從今年2月以後CDH不支援線上下載下傳安裝了(收費),且免費的版本不超過100台節點了,很多功能還用不了。像我們公司上千節點,現在都在遷移開源的 Apache Hadoop3了,元件的二次開發,監控平台開發等成本很高。

但是學會CDH的生産部署,在小公司還是有市場的。安裝部署叢集前,最重要的是先把叢集的主要服務架構部署清楚,一般生産上稍微規模大點的叢集,核心服務都會使用單獨的伺服器,不會在上面開啟計算和存儲節點的。考慮成本的話,也會在不影響叢集核心服務的同時存儲計算等混合使用。

下面以十幾台伺服器為例,全流程展示生産CDH叢集的安裝與使用,展示使用的系統centos6.9,linux指令比較簡單,centos7的話對應指令直接百度。關于CDH叢集元件與介紹等可以百度,也可以參考CDH官網手冊,可以這裡下載下傳

連結:https://pan.baidu.com/s/1MRbwWSgyvo9vQMuI5Xq8OQ 提取碼:abcD

1.1 安裝前伺服器核心配置與檢查

1.1.1.關閉防火牆

參考指令:service iptables status/ stop

1.1.2.關閉 Selinux

參考指令:vim /etc/selinux/config --> SELINUX=disable

1.1.3.所有主機hosts-ip映射到每個hosts

參考指令:vi/cat /etc/hosts

實際上大規模叢集,規範化叢集都不用這種hosts方式,低效,一般都用dns解析。

1.1.4.配置主機賬号密碼一緻

參考指令: passwd

配置所有主機的root或者具有root權限賬号的密碼一緻,友善後面操作。

1.1.5 JDK配置

所有主機的jdk環境可以不部署,下面安裝的時候使用自帶的通過自定義yum源安裝

1.1.6 磁盤格式化,挂載等

一般一台伺服器至少8T*12盤,磁盤需要格式化成某種特定格式,然後挂載到伺服器上。可以使用腳本一鍵格式化,一鍵命名挂載所有磁盤。如果是虛拟機搭建可以不考慮。網上搜下很多成熟的腳本。

1.1.7 NTP時間同步伺服器搭建

各個伺服器之間時間要同步 ,一般所有伺服器的時間以某台節點為準。

1.所有節點安裝ntp服務

參考指令:yum install -y ntp ntpdate

chkconfig ntpd on 設定開機自啟動

2 修改配置檔案:

修改主伺服器 vim /etc/ntp.conf 一下是主服務的配置,安裝時可以粘貼替換使用

driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 127.127.1.0     # local clock
fudge  127.127.1.0 stratum 10
restrict 10.0.0.0 mask 255.0.0.0 nomodify
            

修改其他從伺服器的配置檔案,可以使用一鍵分發腳本,ansible等工具

修改所有從伺服器 vim  /etc/ntp.conf

注釋掉所有server打頭的配置項,添加如下配置項:

server 10-90-50-52-jhdxyjd.mob.local 這個是主伺服器的主機名           

3.先重新開機主伺服器,再重新開機從伺服器,指令一樣

參考指令:service ntpd start

檢視同步狀态ntpq -p,其他從伺服器是否從主伺服器同步時間

超詳細版企業離線部署CDH6.10叢集與配置使用

這些基礎配置,如果是大廠的話,一般會有專門的基礎運維處理;

2. CDH 6.1.0的CM安裝

注意CDH叢集的安裝與開源的Apache Hadoop不同,非常友善。隻需要單節點安裝一個cm server 管理即可,後面所有服務的安裝部署,參數優化等都可以通過部署的cm節點的web界面去操作了。

2.1為啥需要配置yum源?

現在cdh也不支援線上安裝了,除非你有cm的賬号,否則免費版隻支援離線安裝。 CDH叢集的安裝簡單就簡單在他隻需要配置yum源。不需要每個節點都分發cm的安裝包,隻需要配置一個web的網絡yum即可,其他節點安裝使用時,直接從這個節點下載下傳分發使用即可。所有配置yum源就是配置網絡yum源。

cdh6.1生産需要的所有離線包,直接下載下傳即可。

連結:https://pan.baidu.com/s/1MRbwWSgyvo9vQMuI5Xq8OQ 提取碼:abcD

2.2 配置主節點yum源

選一個裝cm的主節點,後面的操作都基于這個節點即可。比如我這裡選擇的是10.90.50.52這台伺服器,在這台節點配置yum源和安裝cm管理。

2.2.1 安裝httpd 服務&啟動httpd

參考指令:yum -y install httpd

chkconfig httpd on 添加開機自啟動

service httpd start 啟動httpd服務

這個安裝好了可以10.90.50.52:80 web打開界面

2.22 配置yum 倉庫

下載下傳所有CDH6.1.0離線安裝需要的包與依賴。

連結:https://pan.baidu.com/s/1MRbwWSgyvo9vQMuI5Xq8OQ 提取碼:abcD

1.上傳 cm6.1.0.tar.gz 到/var/www/html目錄下(目錄沒有話,直接建立,注意這個目錄不要改,是cm預設安裝目錄,可以改,但是你要熟悉)并解壓

參考指令:cd /var/www/html/;tar -zxvf cm6.1.0.tar.gz

超詳細版企業離線部署CDH6.10叢集與配置使用

2.配置yum 源檔案:

參考指令:cd /etc/yum.repos.d/

vim  cloudera-manager.repo 添加如下内容:

#目前ip就是你配置cm主節點與網絡yum源的節點

[cloudera-manager]

name = Cloudera Manager, Version

baseurl = http://10.90.50.52/cm6.1.0/

gpgcheck = 1
            

3.檢查配置是否成功

參考指令:yum list | grep cloudera 有如下輸出即可

超詳細版企業離線部署CDH6.10叢集與配置使用

或者直接在浏覽器中通路 http://10.90.50.52/cm6.1.0/

超詳細版企業離線部署CDH6.10叢集與配置使用

2.3 安裝mysql

mysql主要作用是存儲cm,各個元件等相關中繼資料資訊,比如hive的中繼資料,可以共用一個mysql資料,也可以分開mysql,比如我們之前生産hive中繼資料的存儲用的就是pg,高可用。小叢集一般不分開沒啥事,但為了中繼資料的安全要配置mysql的高可用,或者定時同步mysql中繼資料進行備份。

1.上傳上面下載下傳的mysql安裝包到伺服器,将其解壓到指定路徑,随便都可以。這裡使用的是 /data/centos6為例

參考指令: tar -xvf mysql-5.7.33-1.el6.x86_64.rpm-bundle.tar -C /data/centos6

超詳細版企業離線部署CDH6.10叢集與配置使用

2.進入解壓目錄,執行yum 安裝

cd /data/centos6;

yum install -y  mysql-community-{server,client,common,libs}-*;

可以參考mysql配置你檔案,修改mysql資料存儲路徑等,大規模生産有必要。

more /etc/my.cnf
            
超詳細版企業離線部署CDH6.10叢集與配置使用

3.等待安裝完成,初始化資料目錄

mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql
            

4.初始化完成,啟動mysql服務

service  mysqld  start;  
 
chkconfig mysqld on 設定開機自動
            

5.執行mysql用戶端指令mysql,進入mysql,修改root密碼;

這裡密碼以123456為例
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

mysql> grant all privileges on *.* to 'root' @'%' identified by '123456';  ##修改遠端可通路           

注意後面還需要建立一些資料庫,等使用時在建立吧,這樣你知道為啥建立

2.5 主節點安裝CM-server

2.5.1 jdk的安裝

yum -y install oracle-j2sdk1.8.x86_64

 yum -y install     oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm           

2.5.2 安裝依賴(如果上面報依賴的錯誤)

yum -y install cyrus-sasl-gssapi fuse-libs MySQL-python openssl-devel fuse lsb portmap mod_ssl python-psycopg2 libxslt
            

2.5.3 安裝主服務

yum install -y cloudera-manager-server.x86_64 cloudera-manager-daemons.x86_64  cloudera-manager-agent.x86_64
            

1.安裝後修改 cm_server 的配置檔案

vim /etc/cloudera-scm-server/db.properties

注釋掉此行 #com.cloudera.cmf.db.setupType=INIT

添加如下内如:

com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.setupType=EXTERNAL
com.cloudera.cmf.db.password=scm
            
超詳細版企業離線部署CDH6.10叢集與配置使用

2.登入mysql 建立上面配置的使用者和資料庫

超詳細版企業離線部署CDH6.10叢集與配置使用

mysql> create database scm DEFAULT CHARACTER SET utf8; 
mysql> grant all on scm.* TO 'scm'@'%' IDENTIFIED BY 'scm';           

3.上傳添加安裝包裡的mysql-connector-java.jar包到指定位置

cd /opt/cloudera/cm/lib; 添加進到這個目錄

上傳完以後檢查一下ll /opt/cloudera/cm/lib/mysql-connector-java.jar

超詳細版企業離線部署CDH6.10叢集與配置使用

2.5.4 配置本地的parcel 檔案

cd /opt/cloudera/parcel-repo ,需要将上面百度網盤下載下傳parces檔案copy到這個目錄下。此目錄下有以下三個檔案(注意此目錄的權限,應該是使用者cloudera-scm所屬權限),總共三個檔案,如下圖所示。

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

2.5.5 啟動cm server

1.啟動 cm_server

service cloudera-scm-server start 如果顯示【ok】

2.也進入日志目錄,檢視日志詳情

cd /var/log/cloudera-scm-server/; tail -f cloudera-scm-server.log

出現一下内容表示啟動成功:

超詳細版企業離線部署CDH6.10叢集與配置使用

3.端口檢驗,cm 預設使用7180端口(也可以改),是以要在本地能通伺服器10.90.50.52:7180。否則打不開cm界面,無法進行下一步。

netstat -anptl | grep 7180

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

2.5.6 登入wed頁面進行相關服務元件添加

http://10.90.50.52:7180/

初始使用者名密碼:admin/admin

cdh叢集的預設的超級使用者是hdfs

超詳細版企業離線部署CDH6.10叢集與配置使用

到此結束,cm server已經安裝好了,後面所有的zookeeper,hdfs,yarn,hbase,hive,spark,flume,kafka等元件的安裝配置,配置優化,節點添加,退役等等都可以通過這個界面進行操作了。

3. 基于CM安裝配置大資料元件與應用

3.1 cm的監控與配置等安裝

上面安裝好10.90.50.52的cm後,admin/admin登入進去,如下界面,配置cm的基礎資訊,

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

注意,這裡要選擇免費版本

超詳細版企業離線部署CDH6.10叢集與配置使用

下面直接繼續,預設完成即可。然後選擇叢集安裝

超詳細版企業離線部署CDH6.10叢集與配置使用

注意,預設端口22不用更改,我這裡更改是因為公司修改了預設端口。

超詳細版企業離線部署CDH6.10叢集與配置使用

這一步要注意:yum源位址就是上面配置的,注意版本,是否跟提供的安裝包一緻,一般一樣的。

超詳細版企業離線部署CDH6.10叢集與配置使用

jdK使用cdh自帶的即可,cdh要求orace-jdk.

超詳細版企業離線部署CDH6.10叢集與配置使用

下面直接輸入主機密碼,建議所有主機剛開始統一設定密碼,友善後面操作。

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

安裝過程也可以後端檢視進度

超詳細版企業離線部署CDH6.10叢集與配置使用

等待繼續,直到安裝完成,可以看到cm6自帶了哪些版本的大資料元件,非常豐富。

超詳細版企業離線部署CDH6.10叢集與配置使用

cm安裝好了,添加cm的監控服務.

超詳細版企業離線部署CDH6.10叢集與配置使用

cm自帶很多服務,比如分發,監控等,可以将這些服務分開安裝不同機器,也可以放到一台機器。這裡是放到一台機器,規模不大,這些服務也不怎麼消耗性能。下面的安裝直到下一步即可,安裝完成可以在cm界面檢視。

超詳細版企業離線部署CDH6.10叢集與配置使用

注意這裡需要在10.90.50.52的mysql中建立一個中繼資料庫給active_monitor存放中繼資料

mysql> create database Active_Monitor DEFAULT CHARACTER SET utf8; mysql> grant all on Active_Monitor.* TO 'Active_Monitor'@'%' IDENTIFIED BY 'Active_Monitor';

超詳細版企業離線部署CDH6.10叢集與配置使用

點選完成後:各圖示開始有監控名額

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

3.2 添加主機,進行大資料元件安裝

上面講cm的所有服務都安裝10.90.50.52上,生産上也可以分開,小規模叢集也無所謂。這個節點隻裝服務即可。然後安裝叢集,需要先添加主機,添加一定數量的主機,完成大資料主服務的安裝,其他就是擴容DN,NM節點而已,很簡單。比如,一般大資料叢集,至少有6台用來安裝主服務,且配置相對要好,尤其namenode節點,都是ssd固态硬碟等,記憶體條也賊好。叢集的安裝,要先設計好元件架構

超詳細版企業離線部署CDH6.10叢集與配置使用

3.2.1添加主機

超詳細版企業離線部署CDH6.10叢集與配置使用
超詳細版企業離線部署CDH6.10叢集與配置使用

直接将需要添加的主機,全部粘貼到這個文本框裡然後檢索

超詳細版企業離線部署CDH6.10叢集與配置使用

注意這裡是給添加到叢集的主機,配置yun源的,然後繼續

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

配置密碼,cdh的安裝不需要ssh,直接配置密碼即可

超詳細版企業離線部署CDH6.10叢集與配置使用

下一步直到安裝完成,主機檢查可以跳過,直接點回首頁即可,檢視添加成功的主機

超詳細版企業離線部署CDH6.10叢集與配置使用

3.3 大資料元件Zookeeper的安裝

cdh元件的安裝是分開的,不想apache,一個hadoop包,可以安裝好yarn,hdfs等,cdh把不同元件拆分安裝,友善單獨配置。叢集安

超詳細版企業離線部署CDH6.10叢集與配置使用

這裡zookeeper裝3台,選擇三個節點,裝5台就選5個節點即可

超詳細版企業離線部署CDH6.10叢集與配置使用

後面全部可以預設安裝完成即可,當然也可以修改部分安裝存儲目錄。新手不建議修改。

3.4 安裝HDFS元件,配置HA,JN

1.首頁,添加服務,選中hdfs

注意這裡配置的secondarynaenode節點後面是為了ha的,備namenode。

超詳細版企業離線部署CDH6.10叢集與配置使用

這裡需要注意,一般cdh6很智能了,會自動檢索你主機挂載的盤符,根據盤符的數量進行自動分組。你也可以修改一些參數,當然也可以安裝後在統一修改。後面直接預設,下一步安裝完成即可。

超詳細版企業離線部署CDH6.10叢集與配置使用

然後點選啟動namenode ha,配置JN,完成即可

超詳細版企業離線部署CDH6.10叢集與配置使用
超詳細版企業離線部署CDH6.10叢集與配置使用
超詳細版企業離線部署CDH6.10叢集與配置使用

這裡配置對應namenode本地存儲目錄,然後繼續下一步,後面的主機檢查可以忽略跳過。然後hdfs就安裝完成了。

超詳細版企業離線部署CDH6.10叢集與配置使用

3.5安裝YARN元件,配置HA

1.首頁,添加服務,選中YARN

超詳細版企業離線部署CDH6.10叢集與配置使用
超詳細版企業離線部署CDH6.10叢集與配置使用

然後直接下一步安裝跟上面hdfs安裝一樣,最後完成即可,啟動 ResourceManager HA,添加ha兩台主機,下一步即可,裝好以後這些服務會自動重新開機。這裡NM,RM安裝在同一個節點,實際生産可以分開,配置不同主機即可。

超詳細版企業離線部署CDH6.10叢集與配置使用

3.6安裝Hive元件

1.首頁,添加服務,選中Hive

注意 hive gateway其實就是hive用戶端,根據需求配置,我這裡都分發了,也可以後面配置。

超詳細版企業離線部署CDH6.10叢集與配置使用

​編輯

注意,這裡需要在10.90.50.52上建立mysql裡資料庫,庫名這裡以hive_metastore為例,存儲hive中繼資料。

mysql> create database hive_metastore DEFAULT CHARACTER SET utf8; mysql> grant all on hive_metastore.* TO 'hive_metastore'@'%' IDENTIFIED BY 'hive_metastore';

超詳細版企業離線部署CDH6.10叢集與配置使用

注意,這裡直接安裝會報錯,需要把mysql的jdbc連接配接放到hive/lib目錄下,這個跟apache一緻

cp /opt/cloudera/cm/lib/mysql-connector-java.jar /opt/cloudera/parcels/CDH/lib/hive/lib/

超詳細版企業離線部署CDH6.10叢集與配置使用

安裝完後,可以建立hive資料庫,要用hdfs超級管理者操作

export HADOOP_USER_NAME=hdfs ,hive

3.7 Spark的安裝與配置

1.首頁,添加服務,選中Spark

2.注意安裝完後,spark history需要手動重新開機

超詳細版企業離線部署CDH6.10叢集與配置使用

4. 生成叢集監控名額

上面所有的圖示支援拖拉,生成名額,如下,指令可以去cdh官網查詢,或者可以打開圖示檢視指令格式。

超詳細版企業離線部署CDH6.10叢集與配置使用

5.叢集優化,參數配置

可以進去不同元件,配置裡,修改預設的參數。比如NodeManager的資源配置設定等,這些是不能使用預設值的。

超詳細版企業離線部署CDH6.10叢集與配置使用

超詳細版企業離線部署CDH6.10叢集與配置使用

繼續閱讀