Ambari简介&安装

文章目录

  • 简介
  • 安装(使用本地源)
    • 安装ambari server
    • 修改主机名称和host文件
    • 关闭防火墙和selinux
    • ssh免密
    • 安装JDK和Mysql
      • 安装JDK
      • 安装mysql
    • 时钟同步
    • 安装ambari-server
    • 搭建HDP本地源

简介

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、 Hbase、Zookeper、Sqoop和Hcatalog等。

Apache Ambari 支持HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等的集中管理。也是5个顶级hadoop管理工具之一。

就 Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop。用一句话来说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。

安装文档:https://docs.cloudera.com/HDPDocuments/Ambari-2.7.0.0/bk_ambari-installation/content/ch_Getting_Ready.html

Ambari文档: https://docs.cloudera.com/HDPDocuments/Ambari/Ambari-2.7.0.0/index.html

安装(使用本地源)

安装ambari server

使用两台虚拟机搭建,一台用作server,一台用作agent

修改主机名称和host文件

hostnamectl set-hostname server.ambari.com

hostnamectl set-hostname agent.ambari.com


# 配置host vim /etc/hosts
192.168.198.88 server server.ambari.com
192.168.198.89 agent agent.ambari.com

关闭防火墙和selinux

  1. 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld.service
    
  2. 关闭selinux

    vim /etc/selinux/config
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected.
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
    setenforce 0    # 临时关闭selinux
    getenforce      # 查看selinux状态
    

ssh免密

注:只需要对server做其他节点的单向免密即可,同时需要进行自身免密

# 生成密钥
[root@server ~]# ssh-keygen -t rsa
[root@agent ~]# ssh-keygen -t rsa

# 进行免密登录
[root@server ~]# ssh-copy-id server
[root@server ~]# ssh-copy-id agent

安装JDK和Mysql

安装JDK

  1. 安装JDK

  2. 配置环境变量

    vim .bash_profile
    
    # set java home
    export JAVA_HOME=/home/jdk1.8.0_171
    export JRE_HOME=/home/jdk1.8.0_171/jre
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    

安装mysql

  1. 创建Mysql本地源

    1. 安装&启动 httpd

      安装完成后会存在 /var/www/html 文件夹

      # 安装httpd
      yum install httpd
      # 启动httpd
      systemctl start httpd
      # 设置开机启动
      systemctl enable httpd
      
      # 创建mysql-repo,用来存放mysql的rpm包
      mkdir mysql-repo
      # 将rpm包解压到该文件夹
      tar -xvf mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar -C /var/www/html/mysql_repo
      

      web页面访问:ip/mysql_repo

    2. 安装createrepo

      # 安装 createrepo
      yum install createrepo
      
      # 创建本地源
      createrepo /var/www/html/mysql_repo
      
      # 创建文件 *.repo 一定要以repo为文件后缀名
      touch /etc/yum.repos.d/mysql-local.repo
      vim /etc/yum.repos.d/mysql-local.repo
      
      # the RPMs of MySQL server
      [mysql-local]
      name=mysql-local
      baseurl=http://192.168.24.88/mysql_repo
      gpgcheck=0
      enabled=1
      
      # 清空本地的yum源缓存
      yum clean all
      # 重新生成元数据
      yum makecache
      
      # 使用yum查看本地源文件
      yum list | grep mysql-local
      
  2. 安装mysql

    # 安装mysql
    yum install -y mysql-community-server
    
    # 初始化mysql
    mysqld --initialize --user=mysql --console
    
    # 启动mysql
    systemctl start mysqld
    # 开机自启
    systemctl enable mysqld
    
    # 修改字符集 
    vim /etc/my.cnf
    
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    
    # >>> 追加内容开始
    [client]
    port=3306
    default-character-set=utf8
    
    [mysql]
    default-character-set=utf8
    # <<< 追加内容结束
    
    [mysqld]
    #
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    #
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    #
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    # >>> 追加内容开始
    collation-server=utf8_general_ci
    character_set_server=utf8
    # <<< 追加内容结束
    
    # 重新启动mysql
    systemctl restart mysqld
    
    # 查看原始密码
    cat /var/log/mysqld.log | grep password
    2020-12-18T09:11:35.497638Z 1 [Note] A temporary password is generated for root@localhost: 97iE:I.>T6ea
    
    # 登录mysql
    mysql -uroot -p
    
    # 修改密码
    mysql> alter user 'root'@'localhost' identified by '123456';
    
    # 查看字符集,字符集需要都是utf8,否则插入中文会出现乱码
    
    mysql> show variables like 'character%';
    +--------------------------+----------------------------+
    | Variable_name            | Value                      |
    +--------------------------+----------------------------+
    | character_set_client     | utf8                       |
    | character_set_connection | utf8                       |
    | character_set_database   | utf8                       |
    | character_set_filesystem | binary                     |
    | character_set_results    | utf8                       |
    | character_set_server     | utf8                       |
    | character_set_system     | utf8                       |
    | character_sets_dir       | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    
  3. 新增ambari用户并增加权限

    mysql -uroot -p123456
    
    CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
    CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost'; 
    CREATE USER 'ambari'@'server.ambari.com' IDENTIFIED BY 'server'; # 本地主机名
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'server.ambari.com';  # 本地主机名
    FLUSH PRIVILEGES;
    
    # 用户创建错误可以删除
    Delete FROM user Where User='your_user' and Host='your_host';
    FLUSH PRIVILEGES;
    
  4. 使用ambari用户登录并创建数据库

    mysql -uambari -pambari
    CREATE DATABASE ambari;
    

时钟同步

  1. 主从节点安装ntp

    yum install -y ntp
    
  2. 查看主机时间

    ll /etc/localtime
    
    # 上海时区
    lrwxrwxrwx. 1 root root 35 3月  25 2020 /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
    

    参考文档

    1. 主节点(server)

      vim /etc/ntp.conf
      
      # Use public servers from the pool.ntp.org project.
      # Please consider joining the pool (http://www.pool.ntp.org/join.html).
      
      # 将以下服务注释,添加新的
      # server 0.centos.pool.ntp.org iburst
      # server 1.centos.pool.ntp.org iburst
      # server 2.centos.pool.ntp.org iburst
      # server 3.centos.pool.ntp.org iburst
      
      server 127.127.1.0   # 表示NTP主服务器是与自身的系统时钟同步
      fudge 127.127.1.0 stratum 10   # 指定阶层编号为10,降低其优先度
      
    2. 从节点(agent)

      vim /etc/ntp.conf
      
      # Use public servers from the pool.ntp.org project.
      # Please consider joining the pool (http://www.pool.ntp.org/join.html).
      
      # 将以下服务注释,添加新的
      # server 0.centos.pool.ntp.org iburst
      # server 1.centos.pool.ntp.org iburst
      # server 2.centos.pool.ntp.org iburst
      # server 3.centos.pool.ntp.org iburst
      
      server 127.127.1.0   # 表示NTP主服务器是与自身的系统时钟同步
      fudge 127.127.1.0 stratum 10   # 指定阶层编号为10,降低其优先度
      server server.ambari.com   # 配置时间服务器为本地的时间服务器
      restrict server.ambari.com nomodify notrap noquery   # 允许上层时间服务器主动修改本机时间
      
      server server.ambari.com
      restrict server.ambari.com nomodify notrap noquery
      
  3. 配置完成后启动ntp服务

    # 所有服务器都需要进行启动
    systemctl start ntpd
    systemctl enable ntpd
    
    # 所有agent节点需要使用 ntpdate 命令与server节点时间进行同步
    ntpdate -u server.ambari.com
    
  4. 同步硬件时间

    # 查看硬件时间
    hwclock
    
    # 将硬件时间与系统时间同步
    hwclock --systohc
    

安装ambari-server

  1. 安装ambari yum本地源,在安装完成后需要将解压文件中的html删除否则有些rpm包是无法访问到的

    # 解压文件
    tar -zxvf ambari-2.7.1.0-centos7.tar.gz
    # 将ambari包含rpm文件的文件夹移动到/var/www/html
    mv ambari /var/www/html
    cd /var/www/html
    mv ambari ambari_repo
    
    # 创建源
    createrepo /var/www/html/ambari_repo
    
    # /etc/yum.repo.d 创建repo文件,并写入以下内容
    vim ambari-local
    
    [ambari-local]
    name=ambari-local
    baseurl=http://192.168.24.88/ambari-local
    gpgcheck=0
    enabled=1
    
    # 清空本地的yum源缓存
    yum clean all
    # 重新生成元数据
    yum makecache
    
  2. 安装ambari-servere

    yum install ambari-server
    
    # 上传驱动文件,修改配置文件
    echo server.jdbc.driver.path=/usr/share/java/mysql-connector-java-5.1.25.jar >> /etc/ambari-server/conf/ambari.properties
    
    # 设置ambari jdbc驱动,必须在/usr/share/java此路径下存放驱动jar
    ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-5.1.25.jar
    
  3. 设置服务

    # 设置服务
    ambari-server setup
    
    [root@server resources]# ambari-server setup
    Using python  /usr/bin/python
    Setup ambari-server
    Checking SELinux...
    SELinux status is 'disabled'
    Customize user account for ambari-server daemon [y/n] (n)? y
    Enter user account for ambari-server daemon (root):
    Adjusting ambari-server permissions and ownership...
    Checking firewall status...
    Checking JDK...
    [1] Oracle JDK 1.8 + Java Cryptography Extension (JCE) Policy Files 8
    [2] Custom JDK
    ==============================================================================
    Enter choice (1): 2
    WARNING: JDK must be installed on all hosts and JAVA_HOME must be valid on all hosts.
    WARNING: JCE Policy files are required for configuring Kerberos security. If you plan to use Kerberos,please make sure JCE Unlimited Strength Jurisdiction Policy Files are valid on all hosts.
    Path to JAVA_HOME: /home/software/jdk1.8.0_171
    Validating JDK on Ambari Server...done.
    Check JDK version for Ambari Server...
    JDK version found: 8
    Minimum JDK version is 8 for Ambari. Skipping to setup different JDK for Ambari Server.
    Checking GPL software agreement...
    GPL License for LZO: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
    Enable Ambari Server to download and install GPL Licensed LZO packages [y/n] (n)? y
    Completing setup...
    Configuring database...
    Enter advanced database configuration [y/n] (n)? y
    Configuring database...
    ==============================================================================
    Choose one of the following options:
    [1] - PostgreSQL (Embedded)
    [2] - Oracle
    [3] - MySQL / MariaDB
    [4] - PostgreSQL
    [5] - Microsoft SQL Server (Tech Preview)
    [6] - SQL Anywhere
    [7] - BDB
    ==============================================================================
    Enter choice (1): 3
    Hostname (localhost): server.ambari.com
    Port (3306): 3306
    Database name (ambari): ambari
    Username (ambari): ambari
    Enter Database Password (bigdata):
    Re-enter password:
    Configuring ambari database...
    Enter full path to custom jdbc driver: /root/drivers/mysql-connector-java-5.1.25.jar
    Copying /root/drivers/mysql-connector-java-5.1.25.jar to /usr/share/java
    Configuring remote database connection properties...
    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
    Proceed with configuring remote database connection properties [y/n] (y)? y
    Extracting system views...
    ambari-admin-2.7.1.0.169.jar
    ....
    Ambari repo file contains latest json url http://public-repo-1.hortonworks.com/HDP/hdp_urlinfo.json, updating stacks repoinfos with it...
    Adjusting ambari-server permissions and ownership...
    Ambari Server 'setup' completed successfully.
    
    # 如果上述某一步安装失败,可是重新进行设置
    ambari-server stop
    ambari-server reset
    ambari-server setup
    

    响应安装提示:

    1. 如果您尚未临时禁用SELinux,则可能会收到警告。接受默认值(y),然后继续。

    2. 默认情况下,Ambari Server在下运行root(n)Customize user account for ambari-server daemon提示符下接受默认值 ,以继续root。如果要创建其他用户来运行Ambari Server或分配先前创建的用户,请yCustomize user account for ambari-server daemon提示时选择,然后提供用户名。 ----------- 选择n

    3. 如果您尚未暂时禁用iptables,则可能会收到警告。输入**y**以继续。

    4. 选择要下载的JDK版本。输入1以下载Oracle JDK 1.8。 --------选择**1**

      默认情况下,Ambari Server安装程序会下载并安装Oracle JDK 1.8和随附的Java密码学扩展(JCE)策略文件。

    5. 要继续默认安装,请在出现提示时接受Oracle JDK许可证。您必须接受此许可才能从Oracle下载必需的JDK。JDK是在部署阶段安装的。

      或者,您可以输入2以下载定制JDK。如果选择“定制JDK”,则必须在所有主机上手动安装JDK并指定Java Home路径。

      [注意] 注意
      要安装OpenJDK,请使用“自定义”选项。准备向Ambari提供有效的JAVA_HOME值。强烈建议您在所有主机上一致地安装JDK软件包。
    6. 出现提示时,请查看GPL许可协议。要明确允许Ambari下载和安装LZO数据压缩库,您必须answer y。如果输入**n,则Ambari不会在集群中的任何新主机上自动安装LZO。在这种情况下,您必须确保正确安装和配置了LZO。如果未安装和配置LZO,将无法读取使用LZO压缩的数据。如果您不希望Ambari自动下载并安装LZO,则必须确认选择以继续。 --------------选择y**

    7. 选择**natEnter advanced database configuration以将默认的嵌入式PostgreSQL数据库用于Ambari。PostgreSQL的默认数据库名称是ambari。默认的用户名和密码是ambari/bigdata。否则,要在Ambari中使用现有的PostgreSQL,MySQL / MariaDB或Oracle数据库,请选择 y。 --------选择n**

      • 如果使用的是现有的PostgreSQL,MySQL / MariaDB或Oracle数据库实例,请使用以下提示之一:

        [重要] 重要
        在运行安装程序并输入高级数据库配置之前,您必须准备一个现有的数据库实例。
        [重要] 重要
        不支持使用Microsoft SQL ServerSQL Anywhere数据库选项。
      • 要使用现有的Oracle实例,并为该数据库选择您自己的数据库名称,用户名和密码,请输入**2**。

        选择要使用的数据库,并在提示符下提供所需的任何信息,包括主机名,端口,服务名或SID,用户名和密码。

      • 要使用现有的MySQL / MariaDB数据库,并为该数据库选择您自己的数据库名称,用户名和密码,请输入**3**。

        选择要使用的数据库,并在提示符下提供所需的任何信息,包括主机名,端口,数据库名,用户名和密码。

      • 要使用现有的PostgreSQL数据库,并为该数据库选择您自己的数据库名称,用户名和密码,请输入**4**。

        选择要使用的数据库,并在提示符下提供所需的任何信息,包括主机名,端口,数据库名,用户名和密码。

    8. Proceed with configuring remote database connection properties [y/n]选择**y**。

    9. 安装完成。

      [注意] 注意
      如果主机通过代理服务器访问Internet,则必须将Ambari服务器配置为使用此代理服务器。
  4. 初始化mysql

    mysql -uambari -pambari
    use ambari;
    source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql
    
  5. 启动ambari-server

    ambari-server start
    
    # 查看ambari启动日志
    tail -f /var/log/ambari-server/ambari-server.log
    
  6. 某节点Agent安装失败,可单独在此节点手动安装agent并启动,如下:

    yum install ambari-agent
    
    vi /etc/ambari-agent/conf/ambari-agent.ini
            [server]
            hostname=node4
            url_port=8440
            secured_url_port=8441
            
    ambari-agent start
    

搭建HDP本地源

  1. 下载本地源所需要的tar包 & 解压 & 创建本地源(参考Mysql创建本地源)

    tar -zxvf HDP-3.0.0.0-centos7-rpm.tar.gz
    tar -zxvf HDP-GPL-3.0.0.0-centos7-gpl.tar.gz
    tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
    

你可能感兴趣的:(Ambari,ambari)