1. 程式人生 > >ubuntu14上搭建Ambari2.5.1.0記錄

ubuntu14上搭建Ambari2.5.1.0記錄

1. 準備步驟

  • 準備三臺虛擬機器,安裝作業系統,預設安裝即可(desktop,server版都可以);
  • 安裝完成後,通過sudo passwd 設定root使用者密碼;
  • 配置網路,編輯/etc/network/interfaces檔案,新增網路配置(這裡配置eth0網絡卡)(虛擬機器的網路模式選擇host device eno1:macvtap(bridge,virtio)
auto eth0
iface eth0 inet static
address XXX.XXX.XXX.XXX
netmask  255.255.252.0
  • 預設安裝情況下,防火牆是關閉的,無需操作(可通過ufw status命令檢檢查防火牆狀態)
  • selinux,不需要管
  • 配置免密:注意:在Ambari server節點上,自己和自己也需要配置免密
  • 配置源

方式一:使用系統映象中的源
掛載系統盤:mkdir  /media/iso ;  mount  -o loop XXX.iso   /media/iso
備份/etc/apt/sources.list檔案,新建/etc/apt/sources.list檔案,在檔案中新增一行:
    deb file:///media/iso  trusty main

deb配置格式說明:
deb  源的根目錄(該目錄下一般包含dists,pool兩個資料夾) XX(dists目錄下一個目錄,一般代表軟體安全等獎)  YY(XX下的一個目錄,一般代表軟體包類別)

更新源配置:apt-get update

方式二:自己製作源
安裝製作工具:apt-get install dpkg-dev
建立deb包軟體源目錄:mkir  -p /ambari/pool/main; mkdir  -p /ambari/dists/trusty/main/binary-amd64 
收集軟體安裝包,將軟體包放入到/ambari/pool/main目錄下(這裡收集的是amd64架構的包)
進入目錄:cd /ambari/
建立索引:dpkg-scanpackages  pool/main  /dev/null    >  /ambari/dists/trusty/main/binary-amd64/Packages.gz
更新源:vim /etc/apt/sources,新增一行:
        deb  file:///ambari  trusty  main
更新源:apt-get update

不管那種方式,需要將源釋出出去,通過http服務。
安裝http 服務:apt-get install apache2
ln -s  /ambari  /var/www/hmtl/ambari

  • 安裝ssh工具,並進行配置,執行遠端登入。
apt-get install openssh-server

編輯 /etc/ssh/sshd_config檔案,設定PermitRootLogin yes
重啟ssh 服務:/etc/init.d/ssh restart
(可能配置不成功,可再重啟一次)
  • 配置mysql。Ubuntu上預設安裝的mysql是禁止遠端登入的。需要修改配置預設。
vim  /etc/mysql/my.cnf
     將bind-address配置註釋掉,重啟mysql服務
進入mysql,授權:
  grant all privileges  on *.*  to 'root'@'%'  identified by 'root_password'  with grant option;
  flush privilges;
  • 安裝jdk。最好安裝1.8。Ubuntu上jdk安裝,預設配置是不允許3des_ede_cbc ssl演算法的,開啟此加密演算法
vim  $JAVA_HOME/jre/lib/security/java.security 
  在jdk.tls.disabledAlgorithms配置項中,刪除3DES_EDE_CBC,使得執行https握手時,使用TLS_v1協議
  • 到此,基本配置完成

2. 安裝

  • 安裝ambari-server: apt-get install ambari-server
  • 安ambari-gent: apt-get install ambari-agent ;
  • 配置agent:修改/etc/ambari-agent/conf/ambari-agent.init檔案,修改ambari-server 所在節點名,啟動agent,ambari-agent start
  • 設定ambari-server: ambari-server setup
  • 啟動ambari-server:ambari-server start

3. 遇到的問題

3.1 Ambari Server在啟動時,總是丟擲connection refused的異常,導致Ambari Server啟動不起來 原因:配置的資料庫拒絕遠端連線。配置資料庫,並授權

3.2:在新增節點時,總是丟擲 permission deny的問題

開始還以為是金鑰錯誤。Ambari Server在的節點node1,在新增node1時,還是執行的ssh node1。但是node1和node1沒有配置免密。

3.2:在新增節點時,Agent 連不上Server,丟擲sslError,

ERROR 2018-09-02 11:25:09,300 NetUtil.py:96 - EOF occurred in violation of protocol (_ssl.c:579)
ERROR 2018-09-02 11:25:09,300 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions.

開始按網上說的,修改Ambari Agent,python各種配置都沒有用。後來測試發現:該節點下的Agent 都能正確的向正確的Ambari Server(以前搭建的好的CentOS Ambari叢集中的Ambari Server)傳送註冊請求,並正確通訊,且好的Agent(以前搭建的好的CentOS Ambari叢集中的Ambari Agent)也無法和該Ubuntu Ambari Server通訊。感覺問題應該出現在Ambari Server中。檢視Server配置檔案,也沒有發現什麼相關的配置區別。 後來在ambari-server.log中發現了日誌:

ambari:sslhandshakeException:client requsted protocol tlsv1 not enabled

感覺問題就在這裡。這裡是jre配置問題,修改jre 的安全配置,問題解決。 配置:

vim  $JAVA_HOME/jre/lib/security/java.security 
  在jdk.tls.disabledAlgorithms配置項中,刪除3DES_EDE_CBC,使得執行https握手時,使用TLS_v1協議