HDP 2.5安裝搭建部署

前言

HDP 全稱Hortonworks Data Platform (HDP),是Hortomworks公司提供的一個大數據平臺,它整合了開源hadoop生態圈的大部分組件,能夠很簡單便捷的幫助我們搭建起Hadoop大數據集羣環境,與此類似的還有CDH(Cloudera Hadoop)。因最近在公司搭建這個,在此記錄一下。

環境

準備工作

安裝創建本地倉庫工具

首先肯定是要有一臺服務器可以連接外網的,否則任何軟件包都無法下載了。
以下命令默認都是以root用戶運行:

# yum install createrepo -y

createrepo工具可以幫助我們創建一個本地局域網的私有倉庫。

安裝yum-utils包

yum-utils包含有reposync工具,可以方便的從遠程同步倉庫鏡像到本地

# yum install yum-utils -y

安裝配置nginx

安裝nginx是用來方便內網其他服務器進行訪問私有倉庫,用apache也可以,不過我個人比較喜歡用nginx。

# yum install nginx -y

將nginx配置成文件服務器,類似apache那種。編輯/etc/nginx/nginx.conf文件。

# vim /etc/nginx/nginx.conf
找到server節點,添加以下內容即可。

server {

  listen 80 default_server;

  location / {
    root /var/www/html; #這裏可以選擇一個空間較大分區
    autoindex on;
    autoindex_exact_size off;
    autoindex_localtime on;
  }

之後執行以下命令,啓動nginx,查看運行狀態以及設置開機自啓:

# systemctl start nginx
# systemctl status nginx   # 出現Active: active (running)表示啓動成功
# systemctl enable nginx

配置HDP 2.5源

在可以訪問外網的服務器上進行配置,執行以下命令:

# wget -nv http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.4.2.0/ambari.repo -O /etc/yum.repos.d/ambari.repo

這個命令是配置ambari倉庫的,Ambari是一種基於Web的工具,支持Apache Hadoop集羣的供應、管理和監控。目前也是Apache的頂級項目。
繼續配置hdp倉庫,執行以下命令:

# wget -nv http://public-repo-1.hortonworks.com/HDP/centos7/2.x/updates/2.5.0.0/hdp.repo -O /etc/yum.repos.d/hdp.repo

生成一下緩存:
# yum makecache
然後查看倉庫id等信息,方便後面製作私有倉庫。

# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
repo id                      repo name                 
!HDP-2.5.0.0                 HDP Version - HDP-2.5.0.0     
!HDP-UTILS-1.1.0.21          HDP-UTILS Version - HDP-UTILS-1.1.0.21   
!Updates-ambari-2.4.2.0     ambari-2.4.2.0 - Updates

創建私有倉庫

進入我們上面nginx設置的web目錄,通過reposync命令從遠程同步倉庫數據到本地來,執行以下命令:

# reposync -r xxx(repo id)

其中的repo id就是上面通過yum repolist查看到的第一列。
比如想要同步hdp相關倉庫就輸入:

# reposync -r Updates-ambari-2.4.2.0
# reposync -r HDP-2.5.0.0
# reposync -r HDP-UTILS-1.1.0.21

之後進入每個倉庫目錄下面,執行# createrepo .命令就可以創建一個源倉庫了,也可以直接在當前目錄下面執行,這樣就把三個倉庫都放在一個裏面了。

使用私有倉庫

局域網集羣中其他服務器要使用該倉庫,也需要進行一些配置。
在私有倉庫的服務器鏡像目錄中新建一個hdp.repo文件,內容如下:

[HDP]
name=hdp Version - 2.5
baseurl=http://192.168.1.2[server-ip]/hdp
gpgcheck=0
enabled=1
priority=1

其中參數說明:
- [HDP]表示該倉庫的id爲HDP,可通過yum repolist查看。出現了該id即配置正確
- baseurl表示倉庫的根路徑,這裏如果是本地的話,可以輸入:file:///var/www/html/hdp
- gpgcheck=0表示不進行簽名檢查
- enabled=1表示啓用該倉庫,如果爲0則表示不使用該倉庫
- priority=1表示優先級,如果一個軟件包在多個倉庫都有,會優先使用這個。

然後在其他機器上,通過運行以下命令,導入倉庫配置:

# wget -nv http://192.168.1.2/hdp/hdp.repo -O /etc/yum.repo.d/hdp.repo

之後進行倉庫檢測和緩存:

# yum repolist   # 查看是否有HDP這個repo id
# yum makecache

好了,這個還沒開始安裝,光搭環境就說半天了。之前在公司也是,搭個環境都要好幾天了。下面開始真正的安裝吧。

安裝ambari

倉庫都配置好了以後,我們可以選擇一臺服務器作爲master主服務器,集羣的配置可以在ambari web控制檯進行添加。master服務器也要添加那個私有倉庫,然後再安裝ambari-server

# yum install ambari-server -y

安裝成功以後。需要進行初始化配置,執行以下命令:
# ambari-server setup
進入交互式設置嚮導界面
setup1
這裏會提示要臨時關閉SELinux和配置iptables運行ambari端口訪問等等,嫌麻煩可以把這些防火牆都關掉,先Ctrl+C退出初始化嚮導,然後關閉防火牆。

關閉防火牆

# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0   # 臨時關閉selinux

永久關閉selinux
編輯/etc/selinux/config
將SELINUX=enforcing改爲
SELINUX=disabled
執行以下命令即可,重啓生效
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

初始化ambari-server

關閉SELinux等防火牆重啓後,繼續執行ambari-server setup進行初始化:
ambari-server setup
根據提示進行輸入,jdk是通過從官網下的rpm包安裝的,所以默認路徑就是在/usr/java/default
最下方是選擇數據庫的配置,因爲默認是使用嵌入式的PostgreSQL,我們可以改爲MySQL。
setup_mysql
這裏我們需要在數據庫中分別創建ambari數據庫和ambari用戶,注意這裏有一個坑:數據庫密碼只能輸入字符數字和 _下劃線,還有-減號。不能包含特殊字符,否則會報以下錯誤信息:

Enter Database Password (bigdata): 
Invalid characters in password. Use only alphanumeric or _ or - characters

而MySQL 5.7默認安全策略是中級的,需要有特殊字符,這個可以通過以下命令進行修改,
使用root用戶登錄mysql數據庫服務器:

mysql> set global validate_password_policy=0;
mysql> flush privileges;

這樣密碼策略就改爲低級了,只需要符合8位長度即可。

最後根據提示還需要安裝mysql java驅動,執行以下命令安裝即可,如果是內網的話,將mysql驅動文件複製到/usr/share/java路徑下即可:

# yum install mysql-connector-java -y

安裝好mysql驅動後,再次執行初始化操作:
# ambari-server setup
安裝提示,配置完數據庫後,會檢測數據庫的連接等,打印以下信息:
setup_5

根據提示,表明初始化已成功了,但是在啓動ambari-server之前需要在數據庫服務器上運行/var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sqlSQL文件,主要是用於創建表約束的。
在遠程創建好數據庫後,本地執行以下命令即可:

# mysql -h 192.168.1.2 -uroot -p -Dambari < /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

啓動ambari-server

導入表結構後就可以啓動ambari-server了,注意一定要先導入表結構,因爲在啓動ambari-server的時候會去檢查表約束的。檢測失敗就無法啓動ambari-server了,具體的失敗原因可通過查看以下兩個文件分析:

/var/log/ambari-server/ambari-server.log 
/var/log/ambari-server/ambari-server-check-database.log

最後啓動成功,打印如下信息:
start

然後通過web瀏覽器,可以訪問ambari控制檯了。地址爲安裝的服務器ip,端口8080:http://server-ip:8080
注意別讓其他應用佔用該端口了。
默認登錄用戶名和密碼都爲admin
sign in

配置集羣服務

進入到首頁,點擊Launch Install Wizard,開始安裝嚮導
home

這個配置步驟有點多,這裏還是一步步列出來好了,方便供大家參考

  • 步驟一:
    輸入一個集羣名稱,這個隨意就可以了。
    get started

  • 步驟二:
    挑選一個版本,這裏選擇HDP-2.5,還是下面的倉庫配置,使用本地倉庫,因爲都是CentOS 7.x系統,所以只保留redhat7這個倉庫選項就可以了,其他的都刪除掉,點擊右邊Remove即可
    Select Version

其中base url就是我們在hdp.repo等這些倉庫文件中配置的base url地址,如下:
local repository
如果輸入錯誤的話,會給予提示的,並無法進入下一步,正確之後點擊Next,進入下一步

  • 步驟三:
    在這一步是配置集羣機器的,還有私鑰上傳。注意是私鑰id_rsa的文件。
    install options
    如果是多臺機器的話,還要配置ssh無密碼登錄等等這裏就不多說了。
    如果是單臺服務器的話,也需要將公鑰導入到authorized_keys文件中。

    
    # ssh-keygen   # 一直回車生成密鑰對
    
    
    # cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    

    如果是乾淨的服務器環境,就需要執行以上兩步。

  • 步驟四:
    這一步就是確認主機的訪問性,安裝agent等
    confirm hosts

  • 步驟五:
    這一步是選擇要安裝的服務了,可以看到有非常多的服務可選,這裏建議只選擇少量的幾個就可以了,加快安裝時間。後面有需要可以再添加這些服務。
    choose services

  • 步驟六:
    分配主機服務,比如哪些服務運行在哪個服務器上等等,可根據服務器的硬件配置進行相應的選擇。
    Assign Master

  • 步驟七:
    安裝集羣一些服務的客戶端
    Assign Master

  • 步驟八:
    定製服務,就是配置服務的一些屬性,還有數據庫連接配置等信息
    custom
    其中有紅色小點的都是數據庫未配置導致的,進行相應的配置即可。
    配置,所有小紅點都消失後就可以進入下一步了。

  • 步驟九:
    這一步就是重新檢查一下配置的一些屬性。
    Review

  • 步驟十:
    基本都配置完了,這一步就開始在集羣中的所有機器上安裝對應服務,並且啓動服務。這一步有時候也會經常出問題的,比如安裝失敗了,啓動失敗了等等。後續會把一些錯誤總結單獨寫一篇吧。
    Install

配置完成就可以進入控制檯頁面了。
index

後記

在公司在家裏搭建這個環境差不多花了好幾天吧,中間也遇到過很多的問題,很多坑。只想說大數據這東西要想玩起來,成本真不小,門檻也挺高的。起碼至少就要Linux熟練精通了,否則出現一大堆問題都不知道怎麼解決,得益於我早幾年前就開始接觸學習Linux了,真的對我幫助很大。
最後是對一些大數據新手的建議,不要把過多的時間花在集羣環境的搭建上面了。要把精力更多的放在業務算法,邏輯處理,數據分析等等更好。這也正是我寫這篇的原因,儘可能的減少環境搭建時間。
如果也有搞大數據這塊的,可以一起交流學習哈。共勉~

發佈了84 篇原創文章 · 獲贊 71 · 訪問量 43萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章