Hadoop 發行版本 Hortonworks 安裝詳解(一) 准備工作


一、前言

目前Hadoop發行版非常多,所有這些發行版均是基於Apache Hadoop衍生出來的,之所以有這么多的版本,完全是由Apache Hadoop的開源協議決定的:任何人可以對其進行修改,並作為開源或商業產品發布/銷售。

Hortonworks這個名字源自兒童書中一只叫Horton的大象。雅虎主導Hadoop開發的副總裁,帶領二十幾個核心成員成立Hortonworks。

Hortonworks有兩款核心產品:HDP和HDF

Hortonworks沒有對產品收費,而是將這兩款產品完全開放,將核心技術放在Hadoop開源社區中,每個人都可以看到並使用這兩款產品

企業客戶自己開發難度較大的話,就會選擇合作。這就是Hortonworks的盈利模式,通過提供支持服務和后期維護,向企業級客戶收費。

支持服務主要是通過訂閱的方式,客戶需要就某些功能預定一年或者幾年的服務,提前付費。支持服務覆蓋整個周期,從最初的開發和POC階段,到中間的質量測試,直至產品交付。維護服務主要是對企業級客戶的培訓和一些咨詢業務。

二、相關文檔

Cluster Planning
Ambari
HDP

Hortonworks集群的安裝過程說難不難說簡單也不簡單,中間稍有失誤基本就得重裝系統從頭來過,所以實施安裝前建議把官方的文檔都過一遍,對於后續順利完成集群安裝很有幫助。

三、集群規划

截止當前,Hortonworks官方最新版本是Ambari 2.6.0.0、HDP 2.6.3,不過從之前我曾多次嘗試安裝Ambari 2.6.0.0+HDP 2.6.3失敗的情況來看,基本確定最新版本存在BUG會導致無法順利完成安裝,初步定位BUG應該在包名稱不匹配上面。

介於上述情況,我這里選擇Ambari 2.5.2.0+HDP 2.6.2的組合經行安裝。

操作系統我這里選擇CentOS 6.9(2.6.2的支持列表只到6.8,不過2.6.3的支持列表已經更新到6.9),JDK使用的Oracle 1.8,其余組件都是系統自帶或者yum安裝。

寫這篇的時候正好有個生產集群需要部署,故直接使用生產集群作為例子,如果僅僅是想安裝測試集群的話可以選擇1頭節點4數據節點的規划。

   頭結點  備用頭結點  數據節點1  數據節點2  數據節點3
namenode  是  是      
datanode      是  是  是
 resourcemanager  是  是      
 journalnode  是  是      
 zookeeper  是  是  是    

 

四、系統安裝

除了需要注意系統語言和磁盤格式,其它注意事項官方文檔里面都有,自行查閱。
系統語言必須是en_US,否則添加節點安裝必備環境的時候就會卡在下圖的步驟。

頭結點的磁盤需要使用RAID 10,數據節點的磁盤不需要使用RAID,如果部分服務器走了RAID卡無法關閉,那么可以為每個磁盤做一個RAID 0。

磁盤格式官方建議使用ext3而不建議使用ext4,但是從各位運Hadoop維大佬實際運維經驗來看,使用ext4比ext3有利,具體怎么抉擇各位仁者見仁智者見智。

五、系統級別的基礎配置

為了后續能順利安裝Hortonworks集群安裝,完系統之后需要進行諸多系統層面的配置和調整,想要了解細節參見官方文檔

我這里提供一個基於各方資料匯集而成的自動配置腳本,針對Centos 6.9 Base Server安裝方式。

#!/usr/bin/env bash

SetConfig()
{
    #主機名
    input_hostname=$1    

    #切換默認軟件源為阿里雲
    tar -zcvf /etc/yum.repos.d/${starDate}_bak.tgz /etc/yum.repos.d/*.repo
    rm -rf /etc/yum.repos.d/*.repo
    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo
    rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-6
    yum makecache

    #安裝YUM源優先級插件
    yum install -y yum-priorities
    echo "[info] update yum repo end."

    #關閉IPV6
    echo "alias net-pf-10 off" >> /etc/modprobe.d/dist.conf
    echo "alias ipv6 off" >> /etc/modprobe.d/dist.conf    
    echo "[info] disabled ipv6 end."    

    #關閉桌面版網絡管理程序
    service NetworkManager stop
    chkconfig NetworkManager off
    echo "[info] disabled NetworkManager end."

    #修改ulimit
    echo "* soft nofile 10000" >> /etc/security/limits.conf
    echo "* hard nofile 32832" >> /etc/security/limits.conf
    echo "* soft nproc 10000" >> /etc/security/limits.conf
    echo "* hard nproc 32832" >> /etc/security/limits.conf

    sed -i 's/1024/10000/g' /etc/security/limits.d/90-nproc.conf
    echo "*          hard    nproc     32832" >> /etc/security/limits.d/90-nproc.conf
    echo "[info] set ulimit end."

    #關閉iptables
    chkconfig iptables off
    /etc/init.d/iptables stop
    chkconfig ip6tables off
    /etc/init.d/ip6tables stop
    echo "[info] disabled iptables end."

    #關閉 SELinux 
    setenforce 0
    sed -i "/^SELINUX=/ c SELINUX=disabled" /etc/selinux/config
    echo "[info] disabled SELinux end."

    #關閉 PackageKit 
    sed -i "/^enabled=/ c enabled=0" /etc/yum/pluginconf.d/refresh-packagekit.conf
    echo "[info] disabled PackageKit end."

    #關閉 HUP
    #sed -i "s/quiet/quiet transparent_hugepage=never/" /etc/grub.conf
    echo "" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
    echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
    echo "[info] disabled HUP end."

    #打開從節點時間同步(所有的主機都需要打開)
    sed -i "s/0.centos.pool.ntp.org iburst/time.pool.aliyun.com prefer/" /etc/ntp.conf
    chkconfig ntpd on
    service ntpd start
    echo "[info] enabled ntpd end."

    #設置net.core.somaxconn和vm.swappiness參數
    echo "net.core.somaxconn = 32768" >> /etc/sysctl.conf
    echo "vm.swappiness = 0"  >> /etc/sysctl.conf

    #修改節點HostName名稱
    echo "......InputHostName:${input_hostname}......"
    hostname ${input_hostname}
    sed -i "/^HOSTNAME=/ c HOSTNAME=${input_hostname}" /etc/sysconfig/network
    #寫入所有節點HostName到hosts文件
    sed -i "1i\節點1IP地址 節點1hostname" /etc/hosts
        sed -i "1i\節點2IP地址 節點2hostname" /etc/hosts
        sed -i "1i\節點3IP地址 節點3hostname" /etc/hosts
        sed -i "1i\節點4IP地址 節點4hostname" /etc/hosts
        sed -i "1i\節點5IP地址 節點5hostname" /etc/hosts
}

#沒有參數
if [ x$1 == x ] ; then
    echo "[error] please enter the parameters."
    exit -1
fi

SetConfig $1

reboot

使用方法:./666.sh 當前節點hostname

 

六、配置SSH免密登陸

通過Ambari安裝各節點的時候,需要讓運行Ambari的節點能SSH免驗證登陸到各節點(包括它本身)。

#登錄頭節點利用以下命令生成RSA密鑰
ssh-keygen -t rsa

#登錄數據節點從頭節點復制秘鑰,並繼續執行后續操作(頭節點也需要執行此步驟)
mkdir /root/.ssh
scp root@頭結點hostname:/root/.ssh/id_rsa.pub /root/.ssh/
cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
#啟動公鑰登錄配置
sed -i "s/#PubkeyAuthentication/PubkeyAuthentication/" 
/etc/ssh/sshd_config
sed -i "s/#AuthorizedKeysFile/AuthorizedKeysFile/" /etc/ssh/sshd_config
service sshd restart

 

七、搭建本地源

由於部署Ambari+HDP過程中需要安裝大量組件,而且體積都比較大,因此選擇在頭節點搭建源服務器。

安裝Apache
yum install -y httpd
service httpd start
chkconfig httpd on

手動下載下面幾個壓縮包到 /var/www/html/ 目錄:
http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.5.2.0/ambari-2.5.2.0-centos6.tar.gz
http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.6.2.14/HDP-2.6.2.14-centos6-rpm.tar.gz
http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.21/repos/centos6/HDP-UTILS-1.1.0.21-centos6.tar.gz

解壓縮
cd /var/www/html/
tar -zxvf ambari-2.5.2.0-centos6.tar.gz
tar -zxvf HDP-2.6.2.14-centos6-rpm.tar.gz
mkdir HDP-UTILS-1.1.0.21
tar -zxvf HDP-UTILS-1.1.0.21-centos6.tar.gz -C HDP-UTILS-1.1.0.21

配置repo源,把ambari.repo里面的源地址改成實際地址
cp /var/www/html/ambari/centos6/ambari.repo /etc/yum.repos.d/
vi /etc/yum.repos.d/ambari.repo

配置完成之后運行 yum repolist 檢查一下

准備工作到此結束,下一步就是安裝Ambari+HDP了。

 

相關文章

Hadoop 發行版本 Hortonworks 安裝詳解(一) 准備工作

Hadoop 發行版本 Hortonworks 安裝詳解(二) 安裝Ambari

Hadoop 發行版本 Hortonworks 安裝詳解(三) 通過Ambari添加主機並安裝服務

Hadoop 發行版本 Hortonworks 安裝詳解(四) 開啟Kerberos集群安全驗證


免責聲明!

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



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