1.基於HDP大數據環境的搭建


版本規划

 

 

 

 

安裝VirtualBox

 

 

然后直接一路下一步

 

 

 

選擇一下安裝路徑

 

 

 

 

 

 

 

 

 

 

 

這時VirtualBox會自動運行,主界面如下 :

 

 

 

安裝VirtualBox Extension Pack 

VirtualBox的一些高級特性依賴於VirtualBox Extension Pack,接下來我們安裝它。
VirtualBox的主界面點擊"全局設定",會彈出全局設定窗口,如下圖所示:

 

 

 

在全局這頂窗口,切換到"擴展"選項卡,然后點擊"添加"按鈕,如下圖所示:
在彈出窗口中找到並選擇Oracle_VM_VirtualBox_Extension_Pack,然后點擊打開,如下圖所示:

 

 

 

在彈出窗口中找到並選擇Oracle_VM_VirtualBox_Extension_Pack,然后點擊打開

 

 

 

 

 

 

 

等待一小會安裝成功后會彈出確認窗口,點擊"確定"即可

 

 

 

至此擴展包就安裝好了 。

 

 

新建虛擬機

 

 

 

 

 文件夾要專門指定一個空間充足的目錄,類型一定要選Linux,版本一定要選擇Red Hat 64-bit(CentOS
Red Hat的社區版,64位才可以支持大內存,32 位最多支持4G內存)

我們先制定2G內存,后面可以改的

 

 

 

 

 

 

 VMDK類型可以分割為2G的小文件便於分享給別人,或者上傳到網盤,如果你自己搭建可以
選擇VDI


磁盤空間大小選擇"動態分配",然后點擊下一步,如下圖所示
這里關於兩種分配方式特殊說明如下:

 

 

 

 

 

 

 注意:這里設置的是可以使用的最大空間,並不是真正的占用,所以可以設置大一些避免后面不夠用。


點擊創建之后,一個叫node01的虛擬機就創建好了

 特別注意:沒必要一次性創建一堆虛擬機,如果操作系統需求是一樣的,可以采用虛擬機克隆,后
面會詳述,這樣可以避免很多工作,這也是虛擬機的一大好處 。

虛擬機高級設置
有了一台虛擬機,接下來我們進行一些高級設置以便於后面使用。
選擇要設置的虛擬機,然后點擊設置

 

 

 

調節內存大小

 

 

 

 網絡設置
切換到網絡選項卡,連接方式選擇"橋接網卡",界面名稱實際上是選擇你要橋接的物理網卡

 

 

 

四種網絡連接模式:

 

 

 

安裝操作系統CentOS7

 

 

 

 

 

點擊選擇一個虛擬光盤文件

 

 

最后我們就能看到光盤插進光驅了,點擊"OK"即可:

 

 

 

 

啟動虛擬機

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

這個要默認的就好

 

 

 

 

 

這個選擇默認的

 

 

禁用Kdump

 

 

 

 

 

然后我們就看見 Kdump已經禁用了 :

 

 

 

 網絡和主機名設置

 

 

 

 

 

 

自定義分區

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

用戶設置


修改root用戶密碼


 

 

 

 

 

 

創建hadoop用戶作為管理員

 

 

 

等安裝結束后

 

 

 

配置網絡

 

 

 

 

 

測試網絡連接情況

 

 

 

#安裝網絡工具包
yum -y install net-tools
#Ambari用到的下載工具
sudo yum -y install wget

 

通過軟件SecureCRT進行遠程連接 

 

 

 

 

 

 

首先需要在 SecureCRT設置默認路徑:

 Options -> Session Options -> Terminal -> Xmodem/Zmodem ->Directories

 

 

 

賦予hadoop用戶sudo權限

在工作中一般不會讓我們通過root用戶來操作,因此我們給hadoop用於賦予sudo權限 :

 

切換到root用戶

並輸入命令 

visudo

 


這時會進入/etc/sudoers文件的編輯頁面,增加如下配置即可

hadoop ALL=(ALL) NOPASSWD: ALL #以下這行一定要注釋掉以免被覆蓋(hadoop用戶屬於wheel組) #%wheel ALL=(ALL) ALL

 

 

 

配置固定IP
前面我們已經設置為橋接網絡,也就是說虛擬機會把宿主機的指定網卡當做交換機,首先我們再次看
下當前IP

 

 

 

 sudo vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

作以下修改

 

 

修改完重啟下網絡服務:

sudo service network restart 

 

 

 

 

 這個時候需要把遠程終端的地址修改一下

 

 

 

 

再ping一下baidu,測試一下網絡連接情況

 

 

配置hosts文件 

 sudo vi /etc/hosts

 

 

添加以下內容

 

 注意:最前面兩行一定不要刪除,避免出現各種奇怪的網絡問題

 

 

防火牆設置

#禁止防火牆開機啟動
sudo systemctl disable firewalld
#關閉防火牆
sudo systemctl stop firewalld
#查看防火牆狀態
sudo systemctl status firewalld

 

 

 

 

禁用SELinux

 

檢查SELinux狀態

getenforce

 

只要返回的不是disabled就說明SElinux打開着

 

臨時禁用(不需要重啟,但必須操作一下 )

sudo setenforce 0

 

 

永久禁用

sudo vi /etc/selinux/config

SELINUX=enforcing改為 SELINUX=disabled

 

 

 


umask設置
umask用於設置在Linux上創建新文件或文件夾時授予的默認權限或基本權限。 大多數Linux發行版將
022設置為默認umask值。 umask022授予新文件或文件夾的755權限。 umask027授予新文件或
文件夾的750權限。
AmbariHDPHDF支持的umask值為022( 等價於0022),027(等價於0027)。 這些值必須在所
有主機上設置。

sudo vim /etc/profile

 

 

在最后一行添加

 

 

使環境變量生效

 

 

 

文件描述符配置

Linux操作系統會對每個進程能打開的文件數進行限制(某用戶下某進程)Hadoop生態系統的很多組件
一般都會打開大量的文件,因此要調大相關參數(生產環境必須調大,學習環境稍微大點就可以)

 

可以用如下命令檢查當前用戶下一個進程能打開的文件數:
ulimit -Sn
ulimit -Hn

 

 

注意:上面的命令只能檢查當前用戶hadoop
如果數字小於10000就需要加大

 

sudo vi /etc/security/limits.conf

 

 

添加以下內容

* soft nofile 655350
* hard nofile 655350

 

 

 

 

重啟使系統生效

sudo systemctl reboot

 

 

 

SSH優化

CentOS7下,每次遠程SSH連接都需要5秒左右,通過如下操作可以優化:

sudo vi /etc/ssh/sshd_config

 

 

查找GSSAPIAuthentication 賦值為no

查找UseDNS,賦值為 no(該項默認不啟用的,要把前面的#刪除掉 )

保存退出,並重啟ssh服務

sudo systemctl restart sshd

 

 

 

SSH免密

ssh-keygen
cd .ssh
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

 

 

 

 

 

 

 

 

 

 

安裝Java

 

 

 

 

配置環境變量

sudo vim /etc/profile

 

 

添加以下內容

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

 

 

使環境變量生效

source /etc/profile

 

 

 

 

 

克隆出一台新虛擬機
到目前為止作為,一台標准的干凈的大數據節點就完全創建被設置好了,為了便於后續擴展成多個節
點,我們先基於node01克隆出一個標准虛擬機備用

先將node01關閉

sudo systemctl  poweroff

然后

 

 

 

 

 

給克隆出的虛擬機命名為node02,選擇一個路徑,Mac地址設定一定要選擇為所有網卡重新生成mac
地址,然后點擊下一步


 

 

 

 

 

復制過程需要持續幾分鍾

可以看到復制好了。

 

 

准備本地yum

我們的思路是把HDP所需要的RPM安裝包都下載到本地創建一個本地yum源,后續安裝就直接使用本
yum源,這樣速度比較快,也可以在內網操作

准備HDP相關文件
需要從以下地址下載相關文件:


Ambari相關安裝包:
http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.4.0/ambari-2.7.4.0-centos7.tar.gz

HDP安裝:
http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.4.0/HDP-3.1.4.0-centos7-rpm.tar.gz

HDP-UTIL安裝包:
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz

HDP-GPL文件:
http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.4.0/HDP-GPL-3.1.4.0-centos7gpl.tar.gz 


拿到這些包之后,使用FileZilla上傳到node01hadoop用戶主目錄下即可

 

 

 

 

 安裝Apache

#安裝Apache sudo yum -y install httpd #講Apache設置為開機啟動 sudo systemctl enable httpd #啟動Apache sudo systemctl start httpd

 

 

修改本地的hosts文件

 

 

添加以下內容

 

 

打開瀏覽器訪問地址: http://node01

 

 

 

 

HDP安裝包部署到Apache

#移動所有包到/var/www/html/下: cd /var/www/html/ sudo mv ~/ambari-2.7.4.0-centos7.tar.gz /var/www/html/ sudo mv ~/HDP-3.1.4.0-centos7-rpm.tar.gz /var/www/html/ sudo mv ~/HDP-GPL-3.1.4.0-centos7-gpl.tar.gz /var/www/html/ sudo mv ~/HDP-UTILS-1.1.0.22-centos7.tar.gz /var/www/html/ 
#解壓縮 sudo tar
-zxvf ambari-2.7.4.0-centos7.tar.gz sudo tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz sudo tar -zxvf HDP-GPL-3.1.4.0-centos7-gpl.tar.gz sudo tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
#安裝壓縮包清理 sudo rm
-r ambari-2.7.4.0-centos7.tar.gz sudo rm -r HDP-3.1.4.0-centos7-rpm.tar.gz sudo rm -r HDP-GPL-3.1.4.0-centos7-gpl.tar.gz sudo rm -r HDP-UTILS-1.1.0.22-centos7.tar.gz

#更改目錄權限
sudo chmod -R ugo+rX /var/www/html/

 

 

配置使用本地yum

在node01上執行: cd /etc/yum.repos.d/ sudo vi ambari.repo

 

 

ambari.repo內容如下

[ambari-repo] name=ambari baseurl=http://node01/ambari/centos7/2.7.4.0-118/
gpgcheck=0 enabled=1

 

 

 

驗證

yum repolist

 

 

 

 

 安裝MySQL 

下載安裝包
sudo wget http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

安裝mysql源
sudo yum -y install mysql57-community-release-el7-11.noarch.rpm

安裝mysql服務器
sudo yum -y install mysql-community-server

設置為開機啟動
sudo systemctl enable mysqld

啟動Mysql
sudo systemctl start mysqld

查看mysql狀態
sudo systemctl status mysqld



 

查看臨時root臨時密碼 sudo grep 'temporary password' /var/log/mysqld.log

 

 

 

 

利用臨時密碼登錄mysql

 

 

 

 

 

現在我們修改root用戶密碼:

set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_number_count=3; set global validate_password_special_char_count=0; set global validate_password_length=3; ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; exit

 

 

 

 

安裝MySQLJava驅動

將MySQL的java驅動mysql-connector-java-8.0.18.jar上傳到node01的用戶主目錄,並移動到一個目錄下: sudo mkdir -p /usr/share/java sudo mv ~/mysql-connector-java-8.0.18.jar /usr/share/java

 

 

 

部署AmbariServer

 

在node01上執行

sudo yum -y install ambari-server

 

 

 

 

創建Ambari數據庫資源

Ambari在配置的時候需要MySQL來存儲數據,因此我們來創建相關數據庫資源,進入MySQL

 

執行如下命令:

set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_number_count=3; set global validate_password_special_char_count=0; set global validate_password_length=3; create database ambari; CREATE USER 'ambari'@'%' IDENTIFIED BY 'bigdata'; GRANT ALL ON ambari.* TO 'ambari'@'%'; FLUSH PRIVILEGES; use ambari; source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql; exit

 

 

 

配置AmbariServer

執行如下命令開始設置Ambari-Server:

sudo ambari-server setup

 

 

是否自定義ambari-server的運行用戶

我們保持默認root用戶即可,所以輸入n並回車

 

 

 在上圖中,我們選擇2,代表自定義java,然后回車

 

 

 我們需要指定自己安裝的java的路徑/usr/local/jdk,然后回車

 

 

 上圖提示是否下載並安裝LZO的包,我們輸入y並回車

 

 

 是否進入數據庫高級設置,我們輸入y然后回車

 

在選擇數據庫的環節,我們選擇3也就是MySQL,然后回車

 

MySQL的相關配置我們均采用默認值,默認用戶和db都是ambari,密碼是bigdata,然后回車(它會自

動創建) 

 

我們需要指定MySQL的驅動包所在的路徑/usr/share/java/mysql-connector-java-8.0.18.jar
然后回車

 

 

我們選擇可以遠程連接該數據庫(y),然后回車就配置完畢了

 

 

調大node01的內存

 


先把node01關機

sudo systemctl poweroff

 

 

如果你准備一直單機運行可以把內存調整到12G,前提是你的物理宿主機器起碼16G內存

 

啟動Ambari-Sever

 sudo ambari-server start

 

 

如果出現錯誤,一定要查看日志

vi /var/log/ambari-server/ambari-server.log

 

 

 然后訪問以下地址;

http://node01:8080

 

用戶名密碼默認是admin/admin,如果看到如下界面就代表ambari真正啟動好了

 

 

 

 

部署Amabri集群
點擊Ambari主界面中的"Launch Install Wizard",啟動安裝向導
接下來我們要給集群起個名字

 

 



版本選擇

 

 

 

 接着要把滾動條往下拉,把無用的其他操作系統的倉庫刪掉

 

 

 只保留redhat7,其他的都刪除掉

 

最終我們只保留"readhat7"的倉庫,接下來要把直接部署yum本地倉庫的地址填進去,同時不要勾選下
面的兩個高級選項

HDP-3.1             http://node01/HDP/centos7/3.1.4.0-315/
HDP-3.1-GPL         http://node01/HDP-GPL/centos7/3.1.4.0-315/
HDP-UTILS-1.1.0.22  http://node01/HDP-UTILS/centos7/1.1.0.22/

 

 

 

 

 

我們按照下圖所示注冊主機到Ambari

把node01的私鑰復制過來

 

 

 上面的私鑰要拷貝完整,一點也不能少,最后一行也不要換行。
點擊右下角按鈕開始注冊,會彈出提示窗口,點擊”CONTINUE“即可

 

 

 

 

自動開始注冊

 

 

 

點擊這里去查看一些警告

 

 

 

 

它這里就警告chronyd沒有在1個節點上運行也就是沒在node01上運行,chronydCentOS7默認的時
間同步服務(CentOS6NTP),因為我們暫時一個節點無需時鍾同步,所以不用管,直接點ClOSE

 

 

 

然后直接點擊右下角的”NEXT“,這時會彈出窗口,問你有警告是否忽略(chronyd的警告),我們選擇
OK“會自動進入下一步

 

 

 

選擇要安裝的服務
Amabri管大數據的各個組件叫做 Service,在這異步要選擇同時安裝的服務,當然我們也可以先不選后
面再選。
在這里我們選擇安裝下Hadoop相關的服務,其余的服務就取消掉對話框的對勾(它默認選了一堆,一定
要去掉,好多用不到)

 

 

 

 

在這里要特別注意,在AmbariHadoop被當做多個服務例如HDFSYARN等,如果你選擇的服務依賴
於其他服務他會提示的,你點擊確認后會自動勾選,然后下一步即可 。

 

分配Mater服務安裝到哪些主機
接下來Ambari會讓你選擇Master服務要安裝到哪些主機,所謂Master服務,是指的各個服務的Master
服務,例如HDFSMaster服務就是namenode,因為我們就一個節點,所以保持不動直接下一步

 

 

 

分配Slave服務和Client安裝到哪些主機

 

接下來是一些自定義Service的配置,首先會讓你設置一些服務的密碼 ,為了方便,這里統一用admin

 

 

這里要注意,隨着前面你選的Service的不同,這里也會不同,點擊”next“會讓你確認一些服務的目錄,
我們先保持默認,直接”next“

 

 

然后是確認各個service運行在操作系統的哪個用戶下,我們也保持默認

 

 

點擊下一步,會讓我們確認其他的配置,我們保持默認直接點NEXT

 

 

注意,這里隨着你前面選擇的service的不同會有很大差異,比如你要選擇了了Hive,它一定會要你輸入
MySQL相關信息,所以不要死記硬背 。

 

 

Review環節我們要仔細檢查之前的配置,沒有問題就點擊”DEPLOY“正式開始部署了

 

 

 

部署過程需要花較長時間,隨時可以看到進度

 

 

再部署完服務之后,Ambari會自動啟動服務並進行冒煙測試,測試通過看到如下界面就代表成功安裝
好了,點擊”NEXT“即可

 

 

 

 

 

 

把這邊的進程都每個手動啟動一下,因為剛啟動的時候有些警告

 

 

 

部署HBase

之前在不是Amabri集群的過程中安裝了HDFSYARN,包括Zookeeper集群,接下來我們通過增加服
務的方式安裝下HBase 。

 

 

 

接下來的步驟就跟我們前面部署Ambari集群的方式稍微有點類似,首先要選擇服務,這里我們當然選
HBase然后后"NEXT"(當然也可以一次性選擇多個Service一起部署)

 

 

 

這一步不用動,因為就一個節點 ,直接next,

 

 

 

 

分配Slave服務和Client安裝到哪些主機
這一步就勾選RegionServerClient即可

 

 

自定義服務
這一步我們保持配置不變,點“next”

 

 

 

 

 

Review環節直接點“DEPLOY

 

 

 

部署啟動與測試
整個安裝過程會持續一段時間,在部署完服務之后,Ambari會自動啟動服務並進行冒煙測試,測試通
過看到如下界面就代表成功安裝好了,點擊”NEXT“即可

 

 

 

 

 

 

 

 

 

部署Hive

Hive的部署過程跟HBase基本一樣,其他服務亦如此,不過Hive的元數據一般選擇存放在MySQL,所
以我們要在MySQL里單獨為Hive
創建用戶和庫以便於管理

 

node01上,進入MySQL

 

set global validate_password_policy=0; set global validate_password_mixed_case_count=0; set global validate_password_number_count=3; set global validate_password_special_char_count=0; set global validate_password_length=3; create database hive; CREATE USER 'hive'@'%' IDENTIFIED BY 'hive'; GRANT ALL ON hive.* TO 'hive'@'%'; FLUSH PRIVILEGES; exit

 

 

 

 

告訴Hive組件MySQL驅動在哪里

 sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-8.0.18.jar

 

 

 

Ambari主界面按照下圖操作啟動安裝向導

 

 

這里我們選擇Hive然后后"NEXT"

 

 

 

 

這一步不用動,因為就一個節點

 

 

 

這一步就勾選Client即可:

 

 

 


自定義服務
這一步我們保持配置不變,除了hive,我們能看到如下圖的提示

 

 

 

 我們點擊“HIVE”選項卡切換到Hive配置頁

 

 

 

 

 

Hive配置頁,我們要切換到DATABASE子選項卡,然后往下滾動頁面去配置數據庫的信息,

 

 

 

 

 

 

測試連接

 

 

 

 

 

 

 

 

 

 

部署啟動與測試
整個安裝過程會持續一段時間,在部署完服務之后,Ambari會自動啟動服務並進行冒煙測試,測試通
過看到如下界面就代表成功安裝好了,點擊”NEXT“即可

 

 

 

 Ambari界面我們發現因為安裝Hive,后台自動更新了一些服務的配置,因此需要重啟

 

 

 

 

 

如果重啟所有服務不行,可以一個個手動重啟的,我就是遇到這樣的問題,我自己一個個服務手動重啟了

 

 

Service自動啟動
有時候我們希望托管給Ambari的服務可以自動啟動

 

 

 擴容到3個節點

 在node02的基礎上我們再復制出一個節點node03

 

 

 

 

 

 

 

 注意:千萬不要從node01復制,那樣會特別大而且里面有Ambari

 

節點網絡配置

配置node02的靜態ip

 

 

配置node03的靜態ip

 

 

修改完了分別重啟node02和node03的網絡

sudo systemctl restart network

 

 

配置node02和node03的主機名

由於是克隆過來的,主機名還是node01,因此我們需要修改

 

 

永久修改hostname執行如下命令:

 sudo vim /etc/hostname

分別輸入node02    node03

 

配置hosts文件

sudo vi /etc/hosts

 

 

 

 

 

 

node02和node03防火牆設置

分別進行以下操作

#禁止防火牆開機啟動
sudo systemctl disable firewalld
#關閉防火牆
sudo systemctl stop firewalld
#查看防火牆狀態
sudo systemctl status firewalld

 

 

禁用node02和node03 SELinux

分別操作

臨時禁用
sudo setenforce 0

 

 

sudo vi /etc/selinux/config

SELINUX=enforcing改為 SELINUX=disabled

 

 

 

分別重啟node02和node03

 

重啟后,在三台機器都配置hosts文件

 

 

 

配置三台機器的SSH免密

先把node02node03用戶主目錄下的隱藏文件夾.ssh刪掉,這個是復制虛擬機過來

 

 

 

 

然后分別在node02和node03重新生成

ssh-keygen
cd .ssh
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

 

 

 

 

 

免密
我們所謂的免密就是拿集群中的一台機器作為管理節點,讓那后讓他可以ssh免密碼到其他節點執行命
令,這對我們維護一個多節點的集群非常有意義。我們當然以node01為管理節點,所以要實現node01
到其他節點的免密

 

拿到node01的公鑰

cat ~/.ssh/id_rsa.pub

 

 

node01的公鑰添加到node02node03

 vi authorized_keys

添加到node02的公鑰

 

 

添加到node03的公鑰

 

 

然后node01分別到node02和node03 ssh連接一次

 

 

因為我們需要三個節點都能相互ssh通訊的,因此我們把每個節點的公鑰都相互交換

每個節點的公鑰都賦值

 

 

 

時鍾同步

 

在三個節點分別執行

sudo ntpdate pool.ntp.org

 

 

納入Ambari管理

這一步我們要先把新節點node02-node03納入到Amabri進行管理

 

 

 

 

 

接下來進開始在新加的節點上自動安裝ambari-agent了,安裝完畢之后點下一步

 

 

 

 

 

 

 

配置保持默認

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM