2、ambari搭建HDP集群


一、平台環境

  1. 操作系統:CentOS release 6.5 (Final)
  2. Java版本:jdk1.8.0_60
  3. Ambari版本:2.2.1.0
  4. HDP版本:2.4.0
  5. MySQL版本:MySQL-5.6.25-1
  6. 用戶權限:cent,sudo無密碼
  7. 主機IP:192.168.234.145
  8. 安裝包路徑:~/packages

二、環境准備
1、 增加系統打開文件數和進程數
在每台服務器命令行執行:ulimit -n
顯示當前可以打開的最大文件數
sudo vim /etc/security/limits.conf
在文件中添加
  * - nofile 655350
  * - nproc 655350
然后保存
斷開服務器重新連接,再次執行:ulimit -n
顯示:  655350

2、永久關閉linux swap

    執行:cat /proc/sys/vm/swappiness

    結果為0表示已經關閉,否則執行

        sudo sysctl -w vm.swappiness=0

        sudo vi /etc/sysctl.conf

    在最后添加: vm.swappiness=0

    然后執行: sudo sysctl -p /etc/sysctl.conf

    可以看到剛才設置的vm.swappiness=0,設置成功

3、永久關閉防火牆

    執行關閉命令:sudo service iptables stop

    執行關閉開機啟動命令:sudo chkconfig iptables off

    查看防火牆當前狀態:sudo service iptables status

4、永久關閉selinux

    執行立即關閉命令:setenforce 0

    查看狀態:getenforce

    顯示:Permissive

    表示已經關閉

    永久關閉:sudo vim /etc/selinux/config

    SELINUX=enforcing改成SELINUX=disabled

    保存,然后需要重啟系統

    查看selinux狀態,執行:sestatus -v  

    顯示:SELinux status:       disabled

    表示已經關閉。

5、取消CPU節能運行模式

6、修改主機名

    查看當前主機名:hostname

    修改當前主機名:hostname 主機名

    斷開重連后查看主機名:hostname

    將主機名寫入/etc/sysconfig/network: vi /etc/sysconfig/network

    修改:HOSTNAME=主機名

    然后保存。

7、關閉THP

    /etc/rc.local文件中添加

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then 

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

fi 

if test -f /sys/kernel/mm/transparent_hugepage/defrag; then 

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

fi    

    然后重新啟動服務器

8、配置/etc/hosts

    在每台服務器的/etc/hosts進行配置,配置方式為: IP    hostname

    格式,示例如下

        192.168.4.202    hostname1

        192.168.4.203    hostname2

9、配置互通無密碼連接

    執行: ssh-keygen

    然后一路回車

        cd ~/.ssh

        cat id_rsa.pub

    將需要免密碼登錄到其他服務器的公鑰復制,然后在每台要連接到的機器上執行

        cd ~/.ssh

        vim authorized_keys

    將復制好的公鑰粘貼上去,保存。然后執行: chmod 600 authorized_keys

    然后執行:ssh 主機名

 

    然后按照提示輸入yes,所有的服務器都做一遍。

10、配置啟動ntp服務

    執行

        sudo yum install ntp

        sudo chkconfig ntpd on

        sudo service ntpd start

    結束

三、創建本地源

    1 下載源文件

        Ambari:http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.0/ambari-2.2.1.0-centos6.tar.gz

        HDP:http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/HDP-2.4.0.0-centos6-rpm.tar.gz

        HDP_UTILS:http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.20/repos/centos6/HDP-UTILS-1.1.0.20-centos6.tar.gz

        JDKhttp://download.oracle.com/otn/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz

                http://public-repo-1.hortonworks.com/ARTIFACTS/jdk-8u60-linux-x64.tar.gz

        JCEhttp://public-repo-1.hortonworks.com/ARTIFACTS/jce_policy-8.zip

    2、下載源配置文件

        Ambari:

        sudo wget -nv http://public-repo-1.hortonworks.com/ambari/centos6/2.x/updates/2.2.1.1/ambari.repo -O /etc/yum.repos.d/ambari.repo

        HDP:

        sudo wget -nv http://public-repo-1.hortonworks.com/HDP/centos6/2.x/updates/2.4.0.0/hdp.repo -O /etc/yum.repos.d/hdp.repo

    3、創建本地源服務

        1)安裝httpd

            sudo yum install httpd

            sudo chkconfig httpd on

            sudo service httpd start

        2)創建源

            sudo yum install yum-utils createrepo

            sudo mkdir -p /var/www/html/ 

            切換到安裝包目錄

            sudo tar xzvf ambari-2.2.1.0-centos6.tar.gz -C /var/www/html/

            sudo tar xzvf HDP-2.4.0.0-centos6-rpm.tar.gz -C /var/www/html/

            sudo tar xzvf HDP-UTILS-1.1.0.19-centos6.tar.gz -C /var/www/html/

            sudo mkdir -p /var/www/html/java

            sudo mv jdk-8u60-linux-x64.gz /var/www/html/java/

            sudo mv jce_policy-8.zip /var/www/html/java/

        3)重啟httpd服務

            sudo service httpd restart

        4)配置repos文件

            sudo vim /etc/yum.repos.d/ambari.repo

            修改如下:

            #VERSION_NUMBER=2.2.1.1-161

            baseurl=http://192.168.234.145/AMBARI-2.2.1.0/centos6/2.2.1.0-161

            gpgkey=http://192.168.234.145/AMBARI-2.2.1.0/centos6/2.2.1.0-161/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

            保存。

            sudo vim /etc/yum.repos.d/hdp.repo

            [HDP-2.4.0.0]下修改如下:

            #VERSION_NUMBER=2.4.0.0-161

            baseurl=http://192.168.234.145/HDP/centos6/2.x/updates/2.4.0.0

            gpgkey=http://192.168.234.145/HDP/centos6/2.x/updates/2.4.0.0/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

            [HDP-UTILS-1.1.0.20]下修改如下:

            baseurl=http://192.168.234.145/HDP-UTILS-1.1.0.19/repos/centos6

            gpgkey=http://192.168.234.145/HDP-UTILS-1.1.0.19/repos/centos6/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

            保存。

四、MySQL安裝

    1、下載安裝包

        wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-5.6.30-1.linux_glibc2.5.x86_64.rpm-bundle.tar -P ~/packages

    2、安裝過程

        cd ~/packages

        tar xvf MySQL-5.6.30-1.linux_glibc2.5.x86_64.rpm-bundle.tar 

        sudo rpm -qa | grep mysql

        sudo rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64

        sudo yum search libaio

        sudo yum install libaio-devel.x86_64

        sudo rpm -ivh MySQL-client-5.6.25-1.linux_glibc2.5.x86_64.rpm

        sudo rpm -ivh MySQL-devel-5.6.25-1.linux_glibc2.5.x86_64.rpm

        sudo rpm -ivh MySQL-server-5.6.25-1.linux_glibc2.5.x86_64.rpm

    3、配置過程(配置文件/etc/my.cnf

        [client]

        default-character-set=utf8        

        [mysqld]

        datadir=/data/mysql

        socket=/var/lib/mysql/mysql.sock

        user=mysql

        # Disabling symbolic-links is recommended to prevent assorted security risks

        symbolic-links=0

        #default-character-set=utf8

        character_set_server=utf8

        init_connect='SET NAMES utf8'

        innodb_buffer_pool_size=64M

        max_connections=800

        wait_timeout=86400

        [mysqld_safe]

        default-character-set=utf8

        log-error=/var/log/mysql/mysql.log

        pid-file=/var/run/mysql/mysql.pid

   4、初始化設置

        sudo mkdir -p /data/mysql

        sudo chown mysql:mysql /data/mysql

        sudo mkdir -p /var/lib/mysql

        sudo chown mysql:mysql /var/lib/mysql

        sudo mkdir -p /var/log/mysql

        sudo chown mysql:mysql /var/log/mysql

        sudo mkdir -p /var/run/mysql

        sudo chown mysql:mysql /var/run/mysql

        sudo mysql_install_db

        sudo service mysql start

        sudo /usr/bin/mysql_secure_installation

        Set root password? [Y/n]Y

        輸入兩次密碼

        New password: 

        Re-enter new password: 

        Remove anonymous users? [Y/n]Y

        Disallow root login remotely? [Y/n]n

        Remove test database and access to it? [Y/n]Y

        Reload privilege tables now? [Y/n]Y

    5、可能問題

        執行: sudo /usr/bin/mysql_secure_installation

        報錯

            Enter current password for root (enter for none): 

            ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

        這是由於: /var/lib/mysql/mysql.sock

        在該命令文件里寫死了,可以手工設置

            mysql -uroot

            mysql> set password=PASSWORD("sdfsad#23234$");

            mysql> flush privileges;

五、Ambari安裝部署(在ambari-server服務器上部署)

    1、安裝ambari-server

        sudo yum search ambari-server

        sudo yum install ambari-server 

    2 配置java發布源(默認網上下載地址)

        sudo vim /etc/ambari-server/conf/ambari.properties

        jdk1.8.url=http://192.168.234.145/java/jdk-8u60-linux-x64.tar.gz

        jdk1.8.jcpol-url=http://192.168.234.145/java/jce_policy-8.zip

    3、配置ambari-server

        sudo ambari-server setup

        Customize user account for ambari-server daemon [y/n] (n)?y

        Enter user account for ambari-server daemon (root):ambari

        Checking JDK...

       [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8

       [2] Oracle JDK 1.7 + Java Cryptography Extension (JCE) Policy Files 7

       [3] Custom JDK

       ==============================================================================

       Enter choice (1):1

       Do you accept the Oracle Binary Code License Agreement [y/n] (y)? y

       Enter advanced database configuration [y/n] (n)?y

       ==============================================================================

       Choose one of the following options:

       [1] - PostgreSQL (Embedded)

       [2] - Oracle

       [3] - MySQL

       [4] - PostgreSQL

       [5] - Microsoft SQL Server (Tech Preview)

       [6] - SQL Anywhere

       ==============================================================================

       Enter choice (1):3

       Hostname (localhost): cent00

       Port (3306): 3306

       Database name (ambari): ambari

       Username (ambari): ambari

       Enter Database Password (bigdata): 

       Re-enter password:

       WARNING: Before starting Ambari Server, you must copy the MySQL JDBC driver JAR file to /usr/share/java.

       新開窗口,單獨執行:

           sudo mkdir -p /usr/share/java

           cd /usr/share/java

           sudo rz -y

           添加mysql-connector-java-5.1.35-bin.jar

       返回點擊Enter繼續

       WARNING: Before starting Ambari Server, you must run the following DDL against the database to create the schema: /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql

       新開窗口,執行

           mysql -uroot -p123456

           mysql>create database ambari;

           mysql>grant all privileges on ambari.* to ambari@cent00 identified by '123456';

           mysql>flush privileges;

           mysql>use ambari;

           mysql>source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;

       返回原窗口

       Proceed with configuring remote database connection properties [y/n] (y)? y

        若返回: Ambari Server 'setup' completed successfully.

        安裝成功

        添加MySQ連接器jdbccd /usr/lib/ambari-server

        上傳jarmysql-connector-java-5.1.35-bin.jar 

    4、啟動ambari-server

        sudo service ambari-server start

        返回:Ambari Server 'start' completed successfully.

        啟動成功

    5、修改ambari-server訪問端口

        在部署server的服務器上執行:sudo vim /etc/ambari-server/conf/ambari.properties 

        在文件末尾添加:client.api.port=端口號

        保存,重啟生效。   

六、配置部分

1)、登錄server,登錄地址:http://192.168.234.145:8080/#/login

2)、初始用戶名密碼:admin/admin

3)、進入主頁面:

4)、點擊Users,可以進入用戶管理頁面,此處可以添加用戶或進行密碼修改。

安裝過程

點擊launch Install Wizard,進入如下頁面

填寫集群名稱並點擊Next

選擇安裝包

進入如下頁面:

選擇HDP2.4,高級選項,展開如下頁面:

配置HDPHDP-UTILS本地源路徑,然后Next

配置連接服務器

進入如下頁面:

添加服務器列表ubt202-ubt206,下載ubt202/home/Ubuntu/.ssh/id_rsa文件到本地,然后點擊“選擇文件”上傳,填寫登錄名,然后點擊“Register and Confirm,出現如下彈框:

點擊“OK,出現以下對話框

我們不管他,點“OK繼續。跳轉到:

當狀態變為如下:

先點擊“Click here to see the warnings看警告是否要緊。如果不要緊點擊“Next繼續。如果有警告未處理,會彈窗:

需要處理則點“Cancel,否則“OK,這里我們選擇處理警告。

警告處理

關閉THP,執行如下命令:

vi /etc/init.d/disable-transparent-hugepages

復制如下內容到該文件並保存:

#!/bin/sh

### BEGIN INIT INFO

# Provides:  disable-transparent-hugepages

# Required-Start:$local_fs

# Required-Stop:

# X-Start-Before:mongod mongodb-mms-automation-agent

# Default-Start: 2 3 4 5

# Default-Stop:  0 1 6

# Short-Description: Disable Linux transparent huge pages

# Description:   Disable Linux transparent huge pages, to improve

#database performance.

### END INIT INFO

case $1 in

  start)

    if [ -d /sys/kernel/mm/transparent_hugepage ]; then

      thp_path=/sys/kernel/mm/transparent_hugepage

    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then

      thp_path=/sys/kernel/mm/redhat_transparent_hugepage

    else

      return 0

    fi

    echo 'never' > ${thp_path}/enabled

    echo 'never' > ${thp_path}/defrag

    unset thp_path

  ;;

esac

然后執行命令:

sudo chmod 755 /etc/init.d/disable-transparent-hugepages

sudo update-rc.d disable-transparent-hugepages defaults

然后重啟服務器(這部一定要提前做)

之后從頁面登錄開始把前面做的部分重新做一遍

卸載多余安裝包使用命令,具體如下圖所示:

圖中黃色三角形的部分為有警告,點開可以看到詳情。詳情部分Package對應的列為安裝包,后面host表示當前有多少台機器安裝了該安裝包,鼠標懸浮可以看到具體的服務器。然后到對應服務器上執行命令:

sudo yum remove 安裝包

然后點擊“Return Checks需要注意的是,如果對服務用途不了解,千萬不要輕易清理,否則可能導致系統異常。上圖中除了pure-ftpdpure-ftpd-commonlrzsz服務外,其他基本都與系統有關。尤其zlibc服務一旦卸載,所有的ambari-agent會全部宕掉,導致部署無法繼續。

處理ntp服務警告,點開警告顯示:

機器上都沒有安裝ntp服務.

在線安裝:sudo yum install ntp

啟動:sudo service ntp start

關閉:sudo service ntp stop

點擊“close關閉警告窗口,然后點擊“Next繼續

服務安裝

選擇服務,進入如下頁面:

然后點擊“Next繼續。這時會提示所選服務對PigTez有依賴,要求添加,如下圖所示:

這時點擊“OK即可,然后進入下一頁,為各個節點分配不同角色,如下圖:

為各服務器分配不同角色及服務,然后點擊“Next繼續。

進入slavesclients分配頁面:

選定個角色,點擊“Next繼續。進入如下頁面:

圖中紅圈部分表示有異常,需要手工處理。

登錄MySQL庫,創建庫並分配權限,如下:

填充上圖中的Database Password,並點擊“Test Connection 

鏈接測試結束后,點擊最下方“Next會有報錯如下:

打印集群配置信息如下:

然后點擊“Deploy,進入安裝進度頁面,系統自動安裝部署剛才選擇的服務,具體顯示如下:

安裝狀態並不正常,有5處警告。接下來處理警告,點開warings entered查看:

紅色嘆號的地方是報異常的服務,點擊查看異常原因,如下:

在當前頁面無法處理告警異常,我們可以點擊OK關閉,回到“InstallStart and Test頁面,點擊“Next繼續。進入“Summary頁面:

此處顯示有5處告警,且服務啟動失敗。異常可以之后再調,點擊“Complete完成安裝。

異常解決

完成安裝過程后,進入HDP管理界面,如下圖所示:

圖中紅色部分均包含異常,下面依次解決各異常:

HDFS異常

點擊HDFS,進入頁面:

在圖中NameNodeSNameNodeDataNode都有異常。

首先點擊NameNode,進入界面:

選擇NameNode下的start,點擊啟動,彈出確認框,點擊“OK,進入界面:

當啟動失敗,會顯示進度條為紅色。此時點擊三次跳轉即可進入啟動日志,如下:

紅色箭頭部分標注的就是錯誤位置。通過跟蹤,發現是由於我們設置的數據庫密碼是數字“123456,正常情況下是字符串正常,此處被解析成int型報錯,解決方法,打開文件/var/lib/ambari-agent/cache/stacks/HDP/2.0.6/hooks/before-START/scripts/params.py,定位141行找到如下代碼塊:

統一改成:

保存。然后重新啟動NameNode成功。

同理,SNameNodeDataNode節點的服務器也都是同樣的問題,對應改一下,重新啟動就OK了。返回ServicesHDFS界面如下:

紅箭頭處查看一下,因為問題剛剛處理完,有一些信息尚未刷新過來,會有一點延遲,延遲過后狀態顯示如下:

狀態正常,HDFS問題解決。

MapReduce2異常

Services頁面點擊MapReduce2,進入頁面:

啟動“History Server,啟動正常。

查看右上角“alters,半分鍾左右自動變為正常。

YARN異常

Services頁面點擊MapReduce2,進入頁面:

啟動各服務,查看“alerts,結果顯示如下:

此為ResourceManagerWeb訪問端口連接不了。查看ubt202上的ResourceManager日志,報錯:

Zookeeper異常,可以先解決完,再回來看ResourceManager。結果ResourceManager狀態也正常了。

Hive異常

點擊Services頁面的Hive,進入頁面:

啟動服務,啟動Hive MetaStore如下:

啟動結果顯示失敗,查看日志:

將文件mysql-connector-java-5.1.35-bin.jar上傳到ubt202服務器的/var/lib/ambari-server/resources目錄,重命名為mysql-jdbc-driver.jar,然后重新啟動Hive Metastore,成功。

其他兩個服務直接啟動后,Hive正常。

Hbase異常

點擊Services頁面進入Hbase服務:

啟動各服務之后Hbase狀態恢復正常,如下:

 ZooKeeper異常

點擊Services頁面進入Zookeeper服務:

啟動完畢后狀態如下:

Storm異常

點擊Services頁面進入Storm服務

啟動各服務:

Storm恢復正常。

Ambari Metrics異常

點擊Services頁面進入Ambari Metrics服務

啟動各服務

Kafka異常

點擊Services頁面進入Kafka服務

啟動Kafka Broker,問題解決:

Spark異常

點擊Services頁面進入Spark服務

啟動各服務:

Spark恢復正常。

一會我們再依次解決。先配置HA,點擊“Services、“HDFS”“Service Actions、“Enable NameNode HA

配置高可用HA

配置HDFS

點擊“Services、“HDFS”“Service Actions、“Enable NameNode HA,進入如下頁面:

添加服務ID,點擊“Next,繼續

選擇角色,點擊繼續

使用默認配置,然后繼續

按照說明執行相關命令,Next會由不可用變為可用狀態,點擊繼續

各組件字段配置完成,點擊繼續

按照說明執行命令,Next變為可用狀態,點擊繼續

等待執行完畢,點擊繼續

按說明執行命令,點擊繼續,彈窗

點擊“OK確認,進入HA Setup界面

等待完成。點擊“Done結束

配置YARN

點擊“Services、“YARN”“Service Actions、“Enable ResourceManager HA,進入如下頁面:

點擊Next繼續,進入頁面

當前NameNode不可更改,選擇一台機器做備份節點,點擊繼續:

使用默認配置,點擊繼續:

待服務全部啟動,完成。 


免責聲明!

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



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