CDH6.2大數據平臺安裝手冊

一、集羣規劃

實際工作中搭建CDH集羣的話,理論上來說,機子越多越好,如果資源有限的話,建議前期最好4臺機子,4臺機子的話,針對hadoop集羣而言 可以設置爲1主3從,
如果考慮到HA的話,就需要最少5臺機子,本案例採用的服務器配置如下

IP 主機名 CPU 內存 硬盤 角色
172.20.9.1 hadoop1 8h 64g 50g cm-server、NameNode、SecondaryNameNode、Yarn ResourceManager
172.20.9.2 hadoop2 8h 32g 50g DataNode、NodeManager
172.20.9.3 hadoop3 8h 32g 50g DataNode、NodeManager

二、安裝部署

這裏部署就用3臺機子來演示

1、主機名配置

所有節點都需要配置

# 這裏我設置的是hadoop1、hadoop2、hadoop3
hostnamectl set-hostname <主機名>

2、綁定主機名與IP的映射關係

所有節點都需要配置

vim /etc/hosts

# 這裏的主機名和IP要對應你自己的主機名IP
172.20.9.1 hadoop1
172.20.9.2 hadoop2
172.20.9.3 hadoop3

做完上一步後最好ping一下所有機器的主機名,看看是否ping的通

3、關閉集羣內所有機子的防火牆

如果集羣內的所有機器都是內網環境的,直接關閉防火牆是沒啥問題的,如果是外網環境,就不能關閉防火牆了,而是開放端口, 以下命令需要在所有機子執行,臨時和永久自己選擇一種即可

# 臨時關閉,重啓後又會打開
systemctl stop firewalld

# 永久關閉
systemctl disable firewalld

4、配置免密登錄

# 主節點生成祕鑰
ssh-keygen -t rsa

# 然後在主節點上將生成的祕鑰複製到其他節點上,這裏把自己也做爲免密
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3

上面的執行完畢後,可以在主節點通過ssh <主機名>進行免密登錄到子節點了

5、搭建ntp時間服務器

需要保證集羣內所有節點的時間一致,否則集羣會不穩定,在集羣內所有節點上安裝ntp服務,同步一個ntp時間服務器

首先在hadoop1節點操作

yum -y install ntp

vim /etc/ntp.conf

# 註釋掉這四行

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

# 增加這一行,然後保存退出
server ntp.aliyun.com

其他節點也重複剛剛的操作

yum -y install ntp

vim /etc/ntp.conf

# 註釋掉這四行

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

# 增加這一行,然後保存退出
server.ntp.aliyun.com

啓動並添加到開機啓動項, 集羣中每個節點都需要執行

service ntpd start

systemctl enable ntpd.service

配置好了之後,我們可以驗證下現在同步的時間服務器,可以隨便用一臺節點試試,需要等待個幾分鐘,出現下面的結果就說明成功了

6、所有節點安裝JDK

這裏採用JDK8 點擊下載

下載成功後的JDK上傳到每臺節點上

rpm -ivh jdk-8u212-linux-x64.rpm

默認會安裝到/usr/java目錄, 驗證是否安裝成功 java -version

7、Hadoop1安裝Mysql

# 卸載原裝的mariadb
rpm -qa|grep mariadb

# 把上一條命令返回的內容拿來繼續下一條命令
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

下載Mysql安裝包,這裏我們下載5.7.31版本的 點擊下載 ,
下載成功後上傳到Hadoop1機器上然後解壓安裝包

tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

進行安裝

rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm --force --nodeps

開始配置Mysql
初始化mysql

mysqld --initialize --user=mysql

獲取Mysql生成的隨機密碼,在文件/var/log/mysqld.log文件中

cat /var/log/mysqld.log |tail -1

設置Mysql開機啓動

systemctl start mysqld.service

重啓Mysql否則連接不上

systemctl restart mysqld

連接Mysql並修改初始化密碼

# 連接
mysql -uroot -p

# 修改root用戶的密碼爲 abc123
alter user user() identified by "abc123";

初始化數據庫,一共需要用到這些數據庫

mysql> create database cmserver default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on cmserver.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> create database metastore default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on metastore.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database rman default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on rman.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database oozie default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on oozie.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database hue default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on hue.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

最後創建/usr/share/java目錄,將Mysql的驅動jar包放入到裏面,這一步需要在集羣內的所有節點上操作

mkdir -p /usr/share/java

jar包一定要重命名, 每個節點都要

mv mysql-connector-java-5.1.49.jar mysql-connector-java.jar

8、在hadoop1節點安裝httpd服務

yum install -y httpd

# 啓動httpd服務
systemctl start httpd

# 添加到開機啓動
systemctl enable httpd.service

9、在hadoop1節點配置cloudera-manager相關包

創建目錄

mkdir -p /var/www/html/cloudera-repos/cm6

下載cloudera相關文件, 地址:https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/

然後將這些下載後的文件上傳到hadoop1節點,最終服務器上的文件效果是

10、配置cloudera-manager的yum源並添加到其他節點上

下載createrepo,下載地址爲:http://www.rpmfind.net/linux/rpm2html/search.php?query=createrepo 找到centos7的,下載成功後上傳到hadoop1節點的opt目錄下

安裝createrepo

rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm --force --nodeps

下載deltarpm, 不然在後面創建repo的時候會提示缺少這個模塊,同樣上傳到opt目錄, 點擊下載

安裝

rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm --force --nodeps

回到cm6的目錄,執行創建repo

createrepo .

這時候cm6目錄會出現一個repodata目錄

完成創建repodata後,在集羣中的所有節點去配置新的yum源

# 添加新的yum源
vim /etc/yum.repos.d/cloudera-manager.repo

[cloudera-manager]
name=Cloudera Manager,Version
baseurl=http://hadoop1/cloudera-repos/cm6
gpgcheck=1

# 清除yum緩存
yum clean all

yum makecache

配置完後訪問下,以確保base_url是正確的,地址爲http://hadoop1/cloudera-repos/cm6/, 如果你本機沒有配置hostname與IP的綁定關係,那麼就輸入IP去訪問, 訪問成功後會進入到如下圖所示的頁面

11、安裝cloudera-manager相關服務

安裝CDH集羣,需要先安裝Cloudera-Manager(下面簡稱CM),通過CM提供的web界面來安裝,非常快捷

  • 在hadoop1節點操作
    在安裝之前,先執行以下這個命令,否則安裝相關服務的時候會報錯
rpm --import http://hadoop1/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安裝cloudera-manager-daemonsclouera-manager-agent這兩個服務,由於hadoop1節點作爲cm的server節點,所以需要多安裝個cloudera-manager-server服務

yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • 在hadoop2節點操作
    在安裝之前,一樣先執行以下這個命令,否則安裝相關服務的時候會報錯
rpm --import http://hadoop1/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安裝cloudera-manager-daemonsclouera-manager-agent這兩個服務

yum install -y cloudera-manager-daemons cloudera-manager-agent
  • 在hadoop3節點操作
    在安裝之前,一樣先執行以下這個命令,否則安裝相關服務的時候會報錯
rpm --import http://hadoop1/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安裝cloudera-manager-daemonsclouera-manager-agent這兩個服務

yum install -y cloudera-manager-daemons cloudera-manager-agent

安裝完CM以後,在/opt目錄會出現cloudera目錄,這時候需要將cdh的安裝包上傳到/opt/cloudera/parcel-repo目錄下,可以選擇直接點擊下載
也可以前往地址進行自己下載: https://archive.cloudera.com/cdh6/6.2.1/parcels/

首先將CDH安裝包自行上傳到hadoop1節點的/opt/cloudera/parcel-repo目錄中,然後進入到hadoop1節點的/opt/cloudera/parcel-repo目錄,生成sha文件

sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel | awk '{print $1}' > CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

然後將CDH的安裝包和新生成的sha文件通過scp命令拷貝到hadoop2和hadoop3節點,由於hadoop2和hadoop3只有/opt/cloudera/目錄,所以需要我們先手動在這兩個節點上創建目錄

mkdir -p /opt/cloudera/parcel-repo

在hadoop1節點執行遠程拷貝,進入到/opt/cloudera/parcel-repo目錄

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel hadoop2:/opt/cloudera/parcel-repo

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel hadoop3:/opt/cloudera/parcel-repo

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha hadoop3:/opt/cloudera/parcel-repo

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha hadoop2:/opt/cloudera/parcel-repo

12、hadoop1節點啓動CM和安裝CDH集羣

  • 初始化CM
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root abc123
  • 啓動CM
service cloudera-scm-server start

過個幾分鐘,就可以訪問CM的web界面了,一般5~10分鐘,端口爲7180

  • 安裝CDH集羣
    通過訪問http://hadoop1:7180進入web界面,如果本機未配置IP和主機名的映射關係,則通過IP去訪問

賬號和密碼都是admin,登錄進來之後會出現這個頁面,點擊繼續

選擇默認的即可

稍等一會,就會進入這個頁面,點擊繼續

接下來是集羣名稱,也可以使用默認的

輸入集羣中的所有主機名,然後點擊搜索按鈕,然後選中所有主機,點擊繼續按鈕

輸入自定義存儲庫,確認版本爲6.2.1,點擊繼續

JDK安裝頁直接點擊繼續,因爲之前我們已經安裝好了,不需要這裏再次安裝,這時候到了設置SSH密碼的步驟了,這時候我們輸入集羣中節點的密碼,然後繼續

接下來會進入到cm-agent的安裝頁面,需要稍等一會,5~10分鐘左右,安裝成功後會自動到安裝CDH

全部安裝成功後是這樣的效果,然後繼續下一步

點擊兩個高級選項,開始檢測

檢查第一個檢測的結果

檢查第二個檢測的結果

根據這裏提示的去更改即可

先在hadoop1節點上修改,然後在其他節點上操作

sysctl vm.swappiness=10

echo 'vm.swappiness=10'>> /etc/sysctl.conf

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

vim /etc/rc.local
# 將下面這兩行配置添加到文件末尾即可
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

修改完畢後點擊重新運行進行重新檢測,這時候檢測結果正常了,然後選中箭頭指向的那個,點擊繼續

選擇適合自己的方案,這裏就選擇自定義了,方便演示,而且spark和flink後期也是運行於yarn,因此就先自定義選擇hdfs和yarn,點擊繼續後,cdh會自動進行角色分配,將剛纔選擇的大數據組件安裝到不同節點上

前期不是很熟悉的情況下,最好還是採用自動分配的方案,這裏我們也什麼都不修改了, 然後點擊繼續按鈕

在這裏要輸入數據庫名稱和賬號密碼,然後點擊測試連接按鈕,連接成功的話,在每一行的後面都會出現successful,如果有錯誤,就需要看具體的錯誤信息了。這些數據庫我們在安裝mysql的時候都已經創好了, 測試通過後點擊繼續

這裏根據情況修改,這裏我們採用默認的不做修改,點擊下一步

等待大數據組件啓動

安裝成功後效果是這樣的, 點擊繼續

到此整個大數據集羣就安裝成功了

三、管理CDH

前面我們已經搭建好了CDH集羣,這時候在通過地址去訪問,就可以看到下面的界面了,地址是你安裝集羣的節點IP,端口7180

可以看到界面上有一些警告(扳手圖標)和安全隱患(感嘆號圖標),關於警告我們可以動態觀察,不一定要馬上處理,對於安全隱患還是要處理下,此時界面中有一個安全隱患,直接點擊感嘆號查看詳細信息

這裏面的警告信息是針對hdfs的糾刪碼機制的警告,這個是hadoop3.0的新特性(hdfs的存儲策略),糾刪碼機制可以節省HDFS的存儲空間,不過需要至少9個DataNode,目前我們只有兩個DataNode,所以不能使用這種策略, 點擊
這個警告信息,然後點擊修改他的存儲策略

更改他的默認存儲策略爲No default .... 表示不使用糾刪碼機制

保存更改後點擊去掉檢測

去掉勾選並保存更改

這時頁面將不存在警告信息了,這時點擊界面的左上角Cloudera Manager文字回到主頁面

發現還有個警告信息,這時候我們去解決這個警告信息

這時候我們點擊這個扳手圖標查看這個錯誤信息,發現是提示我們Hdfs的Block塊的副本數不足,因爲HDFS的數據默認是需要存儲3份,我們這裏只有兩臺DataNode,所以纔出現了這個警告,如果在多一個DataNode是不會出現這個警告的,
不過也不會影響我們的使用,如果你們有足夠多的機子的話,那是不會出現這個警告的

點擊這個警告信息,我們進去查看詳細的錯誤,發現多了一個警告信息,說我們採用了過期的配置,這是因爲我們前面修改了默認的存儲策略,所以這時候我們需要重啓下, 點擊箭頭所指向的藍色字體

可以發現詳細的配置變更記錄,這時候點擊右下方的重啓過時服務

允許他重新部署客戶端配置,然後點擊立即重啓

等個1-2幾分鐘,重啓成功後的效果如下

點擊完成回到主頁面,可以看到沒有過期配置需要重啓的提示圖標了

但是發現hdfs旁邊還是有個警告,看到很不舒服,這時候我們點擊那個扳手,再點擊suppress,然後在彈出的界面點擊確認即可

這時候在回到主頁面就看到旁邊的警告信息了,剩下的就是一些JVM的配置了,這個按需更改即可

四、使用CDH中HDFS

不管是自己手動搭建官方的Hadoop集羣,還是通過CDH集羣來安裝,操作HDFS都是一樣的,接下來演示一下操作HDFS,登錄到hadoop1節點

  • 查看文件

  • 創建文件

發現報錯權限不足,創建失敗。在CDH環境中,Hadoop平臺的最高權限用戶是HDFS,屬於supergroup組。默認HDFS是會開啓權限認證的,所以操作時,我們可以設置下當前服務器的Hadoop用戶環境

# 編輯系統環境變量
vim /etc/profile

# 在最後面增加下面這行,然後保存退出
export HADOOP_USER_NAME='hdfs'

# 刷新配置
source /etc/profile

然後再去執行剛剛創建文件夾的命令,發現沒問題了,可以查看下文件列表,發現多出了剛創建的文件夾

五、停止和啓動cm以及cdh集羣

1、停止

先停止CDH集羣,在去停止CM

2、啓動

和停止相反,啓動的時候先啓動CM再去啓動CDH


手冊到此結束啦,謝謝您的觀看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章