• (转载)Ambari 2.7.3.0 安装部署 hadoop 3.1.0.0 集群完整版


    一、配置说明

    1. 硬件环境

    2. 软件环境

    二、修改主机名和hosts文件

    1. 修改主机名(三台主机分别修改主机名)

    # 使用hostnamectl命令修改主机名,执行该命令后立即生效,只不过需要重启Xshell连接
    # 以其中一台为例,代码如下
    hostnamectl set-hostname node1.ambari.com
    # 其余的机器也使用hostnamectl命令修改主机名
    ...(略)

    2. 修改hosts文件(三台主机的hosts文件均修改为下图所示)

    # 添加机器ip与主机名映射
    vim /etc/hos

    三、关闭防火墙和selinux

    1. 防火墙设置

    # 查看防火墙状态
    systemctl status firewalld
    # 查看开机是否启动防火墙服务
    systemctl is-enabled firewalld
    # 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    # 再次查看防火墙状态和开机防火墙是否启动
    systemctl status firewalld
    systemctl is-enabled firewalld

    2. 禁用selinux

    # 永久性关闭selinux(重启服务器生效)
    sed -i 's/SELINUX=enforcing/SELINUX =disabled/' /etc/selinux/config
    # 临时关闭selinux,状态为permissive(立即生效,重启服务器失效)
    setenforce 0
    # 查看selinux状态
    getenforce
    # disabled为永久关闭,permissive为临时关闭,enforcing为开启

    四、免密登陆

    各个主机均执行以下操作,这是实现自身免密操作:

    ## 生成密钥对
    ssh-keygen -t rsa   ## 一路回车即可
    ## 进入.ssh目录,如果目录不存在则创建
    cd ~/.ssh
    ## 将公钥导入至authorized_keys
    cat id_rsa.pub >> authorized_keys
    ## 修改文件权限
    chmod 700 ~/.ssh
    chmod 600 authorized_keys

    在node1.ambari.com上执行以下命令,使主节点能免密访问其他俩从节点:

    ## 配置主从互相免密登陆
    [root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node2.ambari.com 'cat - >> ~/.ssh/authorized_keys'
    [root@node1 ~]# cat ~/.ssh/id_rsa.pub | ssh root@node3.ambari.com 'cat - >> ~/.ssh/authorized_keys'
    ssh node2.ambari.com 
    ssh node3.ambari.com # 验证主机点是否可以免密登陆从节点,执行exit命令退出即可。

    备注:要想实现多主机互相免密,可参考文章:Linux多台主机互相免密

    扩展:

    # 首次ssh时,不提示是否保存秘钥,可执行以下命令
    ssh-keyscan server.data >> ~/.ssh/known_hosts

    五、安装JDK

    下载链接: https://pan.baidu.com/s/1rlqZejpZZqio9RPzgnGOEg 提取码: j47n ;内有jdk-8u151-linux-x64.tar.gzmysql-connector-java.jar文件。

    • mkdir /usr/java;将下载的压缩包上传到java文件夹内
    • 解压压缩包:tar zxvf jdk-8u151-linux-x64.tar.gz
    • 配置jdk环境变量:
    # 编辑/etc/profile,文末插入以下内容:
    # set java
    export JAVA_HOME=/usr/java/jdk1.8.0_151
    export PATH=$JAVA_HOME/bin:$PATH
    • 使环境变量生效:source /etc/profile
    • 安装验证:java -version

    六、安装mysql

    本文选择在 node1.ambari.com 主节点上安装 MySQL 服务。

    以下为 mysql RPM 包的不同版本,大家可根据自己情况选择:

    mysql5.7 centos7:(本文选择

    https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

    mysql5.7 centos6:

    https://dev.mysql.com/get/mysql57-community-release-el6-11.noarch.rpm

    mysql5.6 centos7:

    https://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

    mysql5.6 centos6:

    https://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

    1. 检查本地资源库中是否有mysql的rpm包

    rpm -qa | grep mysql
    # 删除相关rpm包
    rpm -ev <rpm包名> --nodeps

    2. 搭建mysql5.7的yum源

    # 执行这一步命令,会下载 mysql5.7 的 rpm包
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    # 安装第一步下载的rpm文件,安装成功后,会在 /etc/yum.repos.d/ 目录下会增加两个文件
    yum -y install mysql57-community-release-el7-11.noarch.rpm
    # 查看mysql57的安装源是否可用,如不可用请自行修改配置文件(/etc/yum.repos.d/mysql-community.repo)使mysql57下面的enable=1
    # 若有mysql其它版本的安装源可用,也请自行修改配置文件使其enable=0
    yum repolist enabled | grep mysql

    3. 安装mysql

    yum install mysql-community-server

    4. 设置mysql

    # 启动mysql服务
    service mysqld start
    # 查看root密码
    grep "password" /var/log/mysqld.log
    # 登陆mysql
    mysql -u root -p
    Enter password: 
    # 刚安装好的mysql,如果设置的密码过于简单,会提示报错。
    # 可以执行以下命令,设置简单密码
    set global validate_password_policy=0;
    set global validate_password_length=4;
    # 立即修改密码,执行其他操作会报错:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
    # 我们创建密码为root123   

    5. 新增 ambari 用户并增加权限

    在本篇文章中,我们选择用 mysql 来存储 ambari 的元数据信息。

    我们为 ambari 服务新增自己的用户,用户名就叫 ambari 吧,以下是新增 mysql 用户的操作。

    mysql -uroot -proot123
    CREATE USER 'ambari'@'localhost' IDENTIFIED BY 'ambari';
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'localhost';
    CREATE USER 'ambari'@'%' IDENTIFIED BY 'ambari';   # 这个用户,在后续安装ambari的时候会用到
    GRANT ALL PRIVILEGES ON *.* TO 'ambari'@'%';
    FLUSH PRIVILEGES;  # 刷新权限

    MySQL 中的用户是 用户名 和 host 共同标识。所以在上面命令里,我们算是创建了两个用户,分别是 ambari@localhost、ambari@% 。

    用户中的 host 的不同,代表受众群体也不同。比如 localhost 表示只能是本机访问;% 表示所有的 ip 都可以访问 mysql 。

    扩展命令:删除用户命令:

    Delete FROM user Where User='your_user' and Host='your_host';
    FLUSH PRIVILEGES;

    6. 使用 ambari 用户登陆并创建数据库

    mysql -uambari -pambari
    CREATE DATABASE ambari character set utf8 collate utf8_general_ci;
    exit;

    七、设置时钟同步

    请参考我写的另一篇文章:《Linux NTP 时钟同步》。

    八、搭建本地yum源,在主节点上操作

    1. 安装httpd和wget服务

    # 安装httpd
    yum -y install httpd.x86_64
    systemctl enable httpd.service
    systemctl start httpd.service
    # 安装wget
    yum -y install wget

    安装了 httpd 服务后,我们就可以通过 http 链接的方式访问某些安装包,前提是将安装包放在 /var/www/html 目录下。

    2. 下载ambari和hdp包

    官方网站 : https://docs.cloudera.com/HDPDocuments/index.html

    从2021年1月31日开始,所有Cloudera软件都需要有效的订阅进行访问。

    HDP-3.1.4.0是最后一个可以下载到的开源版本

    推荐使用迅雷进行下载(直接复制链接),使用浏览器直接下载会遇到403错误(或需要输入订阅的用户名和密码)

     ambari3.1.4+HDP3.1.4 以及最新的 ambari3.1.5+HDP3.1.5 见我的网盘

    # 将tar包下载到/var/www/html
    cd /var/www/html
    wget http://public-repo-1.hortonworks.com/ambari/centos7/2.x/updates/2.7.3.0/ambari-2.7.3.0-centos7.tar.gz
    wget http://public-repo-1.hortonworks.com/HDP/centos7/3.x/updates/3.1.0.0/HDP-3.1.0.0-centos7-rpm.tar.gz
    wget http://public-repo-1.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos7/HDP-UTILS-1.1.0.22-centos7.tar.gz
    wget http://public-repo-1.hortonworks.com/HDP-GPL/centos7/3.x/updates/3.1.0.0/HDP-GPL-3.1.0.0-centos7-gpl.tar.gz
    # 解压上面三个包
    tar zxvf ambari-2.7.3.0-centos7.tar.gz
    tar zxvf HDP-3.1.0.0-centos7-rpm.tar.gz
    tar zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz
    tar zxvf HDP-GPL-3.1.0.0-centos7-gpl.tar.gz

    3. 新建 repo 文件

    #新建ambari.repo文件,将文件放入/etc/yum.repos.d/目录下。
    [ambari]
    name=ambari
    baseurl=http://node1.ambari.com/ambari/centos7/2.7.3.0-139
    enabled=1
    gpgcheck=0

    可能网上有别的文章,还需要设置 hdp 的 repo 文件。其实不需要。在之后部署 hadoop 集群的时候,我们会在 ambari 界面上设置 hdp 安装包的 yum 离线源,ambari 会在各 ambari-agent 节点上自动生成 ambari-hdp-1.repo 文件。

    九、在主节点安装ambari-server

    1. 安装

    yum -y install ambari-server

    2. 将mysql-connector-java.jar拷贝到/usr/share/java目录下

    3. 修改配置文件

    echo server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar >> /etc/ambari-server/conf/ambari.properties

    4. 安装ambari-server

    ambari-server setup

    5、将 mysql-connector-java.jar 拷贝到指定目录

    将 mysql-connector-java.jar 驱动包拷贝到指定目录,这样的话,在安装 hive 等需要 mysql 数据库的服务的时候,就有 jdbc 连接驱动了,就不会报错了。

    ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java.jar

    6. 初始化数据库

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

    7. 启动ambari-server

    ambari-server start

    登陆浏览器访问: http://192.168.162.41:8080/,利用界面部署集群。

    默认登陆账号/密码为:admin/admin。

    以上就是安装 ambari 的大体步骤。其实都挺简单的,部署步骤不难,完全可以写成自动化脚本来执行,建议使用 ansible 来部署。

    十、通过 ambari 部署 hadoop 集群

    主要说一下关键步骤。

    1、Select Version

    这一步,挺重要。首选,我们要选择安装的 hdp 版本。其次,由于之前我们搭建了本地yum源(已将hdp的rpm包下载到了本地),所以要选择 “Use Local Repository” 。最后选择主机系统,配置 hdp 相关的 yum 源路径。

    2、Install Options

    在 Target Hosts 里面,填写规划的 ambari-agent 主机列表,填写主机名即可。

    在下面的输入框内,填写 ambari-server 所在主机的 ssh 私钥,就是 ~/.ssh/id_rsa 文件的内容,粘贴到下面的输入框内。

    3、Choose Services

    在这一步,就可以选择 hadoop 相关的一些服务了。

    4、Assign Masters

    分配 master,就是将你所选服务的 master 角色组件,选择安装在哪台机器上。可以根据cpu、内存、磁盘等指标考虑。

    5、Assign Slaves and Clients

    在这一步中,可能很多刚入门的朋友还不清楚如何选择。其实和分配 master 的思路一样,就是将哪些组件安装在哪些主机上,这个就看个人规划了。比如:在 worker 节点上安装 datanode、nodeManager、RegionServer 等角色。

    6、后续步骤

    接下来的步骤,就比较简单了,在这里也就不多赘述了。

    作者:create17 学得很好,转载过来以防丢失。

    原文地址:https://cloud.tencent.com/developer/article/1781058

  • 相关阅读:
    Study Plan The TwentySecond Day
    Study Plan The Nineteenth Day
    Study Plan The TwentySeventh Day
    Study Plan The Twentieth Day
    Study Plan The TwentyFirst Day
    python实现进程的三种方式及其区别
    yum makecache
    JSONPath 表达式的使用
    oracle执行cmd的实现方法
    php daodb插入、更新与删除数据
  • 原文地址:https://www.cnblogs.com/CGCong/p/16117508.html
Copyright © 2020-2023  润新知