天天看點

搭建CDH6.0.1

1. 設定機器名(所有節點)

hostnamectl set-hostname test-hadoop1

vim /etc/hosts #修改ip與主機名的對應關系

10.14.91.10 test-hadoop1  #主節點
10.14.91.11 test-hadoop2  #從節點
10.14.91.12 test-hadoop3  #從節點
           

2.ssh免登陸

在主節點上執行 ssh-keygen -t rsa 一路回車,生成無密碼的密鑰對。
将公鑰添加到認證檔案中: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ,并設定authorized_keys的通路權限:  。
           
scp~/.ssh/authorized_keys到所有datenode節點:
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
           

3.主節點安裝mysql和 所有節點安裝JDK

1)線上安裝 yum install mysql-server 比較友善

2)我使用的是rpm安裝

将下載下傳的mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar 上傳到我們的centos系統中

然後運作解壓指令:tar -xf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar

由于CentOs7之後會在系統中自帶一個免費的資料庫:mariadb,并且它的驅動和mysql的驅動是有沖突的,是以我們必須先要解除安裝他

首先用rpm指令檢視一下是否有mariadb和mysql,如果有先将其解除安裝。

rpm -qa | grep -i mariadb
rpm -qa | grep -i mysql
           

然後我們用rpm指令删除這個版本的mariadb

rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
           

由于mysql的server端需要perl語言的支援,是以我們還需要在系統中安裝perl支援:

yum install perl -y
yum -y install libaio
           

由于我們上面解壓出來的幾個rpm包有依賴關系,是以我們需要按照順序執行安裝:

rpm -ivh mysql-community-common-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.23-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm
           

有可能錯誤:依賴檢測失敗:

net-tools 被 mysql-community-server-5.7.24-1.el7.x86_64 需要

解決辦法:

yum install net-tools -y

安裝完後啟動:

systemctl start mysqld.service

我們在啟動了mysql之後,這個時候等待一段時間,資料庫需要進行初始化,這個時候我們可以看一下資料庫的日志,會發現mysql幫我們初始化了一個root使用者:

cat /var/log/mysqld.log  | grep password 
           

裡面會有mysql root使用者的登入密碼

然後可以用下面的指令修改登入密碼

mysql -u root -p’密碼’
           
接着輸入`mysql>SET PASSWORD = PASSWORD(' yqxt20190720');`
           

注意:這裡隻需主節點安裝即可,這裡主節點是10.14.91.10 test-hadoop1 這台機器

jdk安裝步驟可參照https://www.cnblogs.com/shihaiming/p/5809553.html

4.關閉防火牆和SELinux

關閉防火牆:
service iptables stop (臨時關閉)  
chkconfig iptables off (重新開機後生效)
關閉SELINUX(實際安裝過程中發現沒有關閉也是可以的,不知道會不會有問題,還需進一步進行驗證):
setenforce 0 (臨時生效)  本人測試不關閉也行,但網上有人說要關,大家自行測試
修改 /etc/selinux/config 下的 SELINUX=disabled (重新開機後永久生效)	
           

Centos7

關閉防火牆

systemctl stop firewalld.service            #停止firewall
systemctl disable firewalld.service        #禁止firewall開機啟動
           

5.所有節點配置NTP服務

首先是安裝 ntp 服務, 我們的作業系統是 Centos7 , 使用 rpm 管理。首先,檢視下我們是否已經安裝了該服務

rpm –qa | grep ntp
           

若隻有ntpdate而未見ntp,則需删除原有ntpdate。如:

ntpdate-4.2.6p5-22.el7_0.x86_64

fontpackages-filesystem-1.44-8.el7.noarch

python-ntplib-0.3.2-1.el7.noarch

删除已安裝ntp

yum –y remove ntpdate-4.2.6p5-22.el7.x86_64
           

重新安裝ntp(所有節點)

yum –y install ntp
           

主節點操作:

systemctl start ntpd   #啟動ntp服務
systemctl enable ntpd  #設定為開機自啟
           

由于華為雲對ntp服務有一些優化,實際測試中,主節點已經指向了一個華為雲内網的時間同步伺服器,是以主節點隻需安裝服務和啟動服務,無需其他操作,隻需到從節點修改配置檔案,将伺服器指向主節點即可

所有從節點操作:

将server ntp.myhuaweicloud.com iburst

改為 server 10.14.91.10 iburst

搭建CDH6.0.1

然後重新開機ntp伺服器并設定開機自啟

systemctl restart ntpd
systemctl enable ntpd
           

6.開始安裝CDH

由于直接用yum安裝cdh的包會非常的慢,要好幾個小時,為了提高效率,節省時間,這裡采用離線安裝的方式,先将所需要的包用迅雷等軟體下載下傳好,再上傳到伺服器中,這樣後續有機器加進叢集中,因為是通過内網連接配接,速度提升很巨大!

1) 主節點啟動httpd服務

這裡我們需要借用httpd 在主節點搭建一個網絡服務

yum -y install httpd
systemctl start httpd 
systemctl enable httpd
           

啟動後,我們可以直接在浏覽器中通過ip位址通路一下,看下服務是否啟動正常: httpd 預設使用的就是 80端口

搭建CDH6.0.1

在浏覽器輸入外網ip位址能看到這個頁面的話http服務就是成功了

httpd 有一定的公約,/var/www/html 是 httpd 的根目錄,

假設我們 将檔案放在 /var/www/html/cdh6/parcels/6.0.1 下,我們可以通過頁面通路到 :

http://10.14.91.10/cdh6/parcels/6.0.1/

2)下載下傳parcel包

這裡我們需要從官網上下載下傳對應系統的 parcel,在安裝時候通過本地加速

6.0.1 版本的位址如下,

https://archive.cloudera.com/cdh6/6.0.1/parcels/

注意

manifest.json 與 sha256 校驗檔案最好一并下載下傳

搭建CDH6.0.1

下載下傳完成後,将CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel、CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel.sha256、manifest.json這三個檔案上傳到主節點伺服器的檔案夾/var/www/html/cdh6/parcels/6.0.1中

此檔案夾要先建立:

mkdir -p /var/www/html/cdh6/parcels/6.0.1
           
搭建CDH6.0.1

3) 下載下傳cloudera-manager軟體包,下載下傳位址:https://archive.cloudera.com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/

搭建CDH6.0.1

将該目錄下的rpm包全部下載下傳。下載下傳好後,我們将這些包放置在主節點的:

/var/www/html/yum/centos7/repo

目錄提前要建立好

mkdir -p /var/www/html/yum/centos7/repo
           
搭建CDH6.0.1

然後我們要為下載下傳的這些rpm,生成一個依賴關系。

cd /var/www/html/yum/centos7/repo
createrepo .
           

之後。會生成一個 repodata 檔案夾

搭建CDH6.0.1

除此之外,我們還需要為源,編寫 .repo 檔案來描述我們的源。

首先,我們切換到主節點源的配置目錄

cd /etc/yum.repos.d/
           

建立一個 localCDH.repo

内容如下:

[localCDHRepo]
name=local_CDH_Repo
baseurl=http://10.14.91.10/yum/centos7/repo/
enabled=true
gpgcheck=false
           

最後,我們執行下

更新本地緩存,這樣就加載了我們新建立的源。

之後,我們把 localCDH.repo 的配置放到其他機器的 /etc/yum.repos.d/ 目錄下,讓其他機器也可以通過 httpd 通路到這些 rpm。

4)安裝服務

由于已經将包提前下好放在了httpd的目錄裡,是以可以直接用yum來安裝

主節點:安裝cloudera-manager-daemons、cloudera-manager-agent、cloudera-manager-server

從節點:安裝cloudera-manager-daemons、cloudera-manager-agent

最後建議把這些服務設定為 開機啟動服務,友善管理。在叢集重新開機的時候,可以不用擔心服務的問題。

主節點:

[[email protected] ~]# systemctl enable cloudera-scm-agent
[[email protected] ~]# systemctl enable cloudera-scm-server
           

其他節點:

注意:這裡先不要啟動服務,隻是先把他加進開機自啟動裡。

5)修改各節點的配置檔案,包括主節點

将server_host 修改為主節點的hostname或者是ip位址,上面的步驟做過ip位址和hostname對應關系的解析的,是以這裡直接就填主節點的hostanme了(主節點和從節點都要改這個配置檔案,ip都指向主節點的ip)

搭建CDH6.0.1

6)安裝配置MySQL

主節點安裝MySQL,MySQL安裝參照2.3.2Mysql安裝

安裝完成後,登入MySQL,我們需要給 mysql 增加必要的使用者,用于其他元件 将 mysql 作為源資料庫

下面是cloudera manager官方文檔給出的使用者清單,依次建立

搭建CDH6.0.1

SQL指令:

建立相應使用者

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci; CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

授權使用者:

GRANT ALL ON scm.* TO ‘scm’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON amon.* TO ‘amon’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON rman.* TO ‘rman’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON hue.* TO ‘hue’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON metastore.* TO ‘metastore’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON sentry.* TO ‘sentry’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON nav.* TO ‘nav’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON navms.* TO ‘navms’@’%’ IDENTIFIED BY ‘123456’; GRANT ALL ON oozie.* TO ‘oozie’@’%’ IDENTIFIED BY ‘123456’;

重新整理權限:

#給MySQL授權時會出現密碼問題,可以執行如下指令

set global validate_password_policy=LOW;
set global validate_password_length=6;
           

除此以外,我們需要上傳與MySQL連接配接的jar包(所有節點都需要執行)

[root@test-hadoop1 ~]# mkdir -p /usr/share/java/
[root@test-hadoop1 ~]#mv mysql-connector-java-8.0.15.jar /usr/share/java/mysql-connector-java.jar
           
搭建CDH6.0.1

7)初始化資料庫,啟動服務

由于這裡我們用到了 cm 使用 mysql 作為源資料庫,是以我們應該對 主節點的Mysql 進行初始化

該步驟做完之後,我們就可以啟動 cm 了

主節點:

systemctl start cloudera-scm-server
systemctl  start  cloudera-scm-agent
           

從節點:

systemctl  start  cloudera-scm-agent
           

#在啟動時有可能碰到The server time zone value ‘EDT’ is unrecognized異常,這是mysql的時區和系統的時區不比對,可以參考如下網站解決

https://blog.csdn.net/u010003835/article/details/88974898

#檢視日志

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

#出現如下7180即證明啟動成功

WebServerImpl:org.mortbay.log: Started [email protected]:7180

8)

當service cloudera-scm-server start啟動成功後,即可以在浏覽器上輸入ip+7180端口(需開放防火牆)。

賬号和密碼均為admin

搭建CDH6.0.1

點選繼續

搭建CDH6.0.1

點選繼續

搭建CDH6.0.1

選擇免費,然後點繼續

搭建CDH6.0.1

點選繼續

搭建CDH6.0.1

在這裡輸入各節點的主機名稱或者ip,用逗号隔開,然後選中點繼續

搭建CDH6.0.1

注意:如果這裡受管理的主機沒有全部機器,得檢查下第5步“修改各節點的配置檔案,包括主節點”的操作有沒有做,如果沒有的話把配置檔案全部都修改好,重新開機服務,如果有的話忽略這一步

systemctl restart cloudera-scm-server
systemctl  restart  cloudera-scm-agent
           
搭建CDH6.0.1

選擇方法這裡選擇更多選項

搭建CDH6.0.1

删除多餘的庫,輸入之前搭建的http的parcel存儲庫然後儲存

搭建CDH6.0.1

資料庫主機名稱填寫主節點的hostname

資料庫類型選擇MySQL

資料庫名稱依次是metastore、oozie、hue

密碼為123456

然後點測試連接配接,無誤後選擇繼續

搭建CDH6.0.1

稽核更改這一欄配置使用預設配置,點繼續

搭建CDH6.0.1

使用預設配置,點繼續

搭建CDH6.0.1

選擇所有服務

搭建CDH6.0.1

一路繼續,完成安裝

搭建CDH6.0.1
搭建CDH6.0.1

cdh常見問題詳解:

1)、cdh環境安裝後隻有hdfs使用者是supergroup組,每次操作要從root使用者切換到hdfs使用者,并且有的代碼操作比如Bulk Load大量資料插入到hbase操作時會報錯hbase使用者權限不夠,是以要把hbase使用者也加到supergroup組内。索性把root和hbase使用者都加入supergroup組,以後再遇到哪個使用者權限不夠再加

操作步驟如下:

1、在Linux執行如下指令增加supergroup

groupadd supergroup
           

2、如将使用者root增加到supergroup中,再執行:

usermod -a -G supergroup root 
           

3、同步系統的權限資訊到HDFS:

2)運作日志在哪裡 運作日志 所在目錄:/var/log

下 cloudera 開頭的都是 ,重要的是 cloudera-scm-server

繼續閱讀