• 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不可更改,选择一台机器做备份节点,点击继续:

    使用默认配置,点击继续:

    待服务全部启动,完成。 

  • 相关阅读:
    「题解」:毛一琛/$cow$ $subsets$
    「题解」:$e$
    「题解」:$d$
    「题解」:$Simple$
    「题解」:$Game$
    「题解」:砖块
    「题解」:天才绅士少女助手克里斯蒂娜
    约瑟夫问题小结
    「题解」:[loj2763][JOI2013]现代豪宅
    20190812
  • 原文地址:https://www.cnblogs.com/netbloomy/p/6690099.html
Copyright © 2020-2023  润新知