Ambari集群离线安装部署文档
2024-06-20 11:53:14 # Ambari # 离线安装

Ambari集群离线安装部署文档

目录

部署准备

修改主机名

统一修改每台主机的主机名

vi /etc/hostname

  1. 在/etc/hostname文件中修改HOSTNAME并:wq保存下来

  2. 重新登录后会发现主机名已经更改成我们自定义的主机名

    注:本文档使用简单的命名规则用于测试,依据真实环境开发选择合适的命名

    三台主机的host分别为

    1
    2
    3
    4
    5
    hadoop111

    hadoop112

    hadoop113

修改ip配置文件

  1. 查看并更改IP配置文件

    vi /etc/sysconfig/network-scripts/ifcfg-ens33

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    TYPE=Ethernet    #网络类型

    BOOTPROTO=none

    DEFROUTE=yes

    IPV4\_FAILURE\_FATAL=no

    IPV6INIT=yes

    IPV6\_AUTOCONF=yes

    IPV6\_DEFROUTE=yes

    IPV6\_FAILURE\_FATAL=no

    NAME=eno16780032

    UUID=51fac244-175f-4b1e-b228-ba0f60d9da06 #随机id

    DEVICE=eno16780032 #接口名(设备,网卡)

    ONBOOT=yes #系统启动的时候网络接口是否有效(yes/no)

    #IP地址

    IPADDR=192.168.255.125

    PREFIX=24

    #网关

    GATEWAY=192.168.255.254

    #域名解析器

    DNS1=8.8.8.8

    IPV6\_PEERDNS=yes

    IPV6\_PEERROUTES=yes

    IPV6\_PRIVACY=no

  2. 重启网络

    service network restart

    (注)每一台主机都需要更改自己的ip

修改ip配置文件

  1. 修改hosts文件

    hosts文件中是所有的主机ip和主机名

    vi /etc/hosts

    (注)修改每一台主机的hosts文件保证每一台主机的hosts文件内容相同

  2. 修改windows下的主机映射文件

    • 进入C:\Windows\System32\drivers\etc路径

    • 打开hosts文件并添加与主机hosts中相同的内容

    ​注:windows7系统中可以直接添加内容,windows10系统中需要先将hosts文件拷贝到桌面上进行修改,修改后覆盖C:\Windows\System32\drivers\etc路径hosts文件

关闭防火墙服务

  1. 查看当前防火墙的状态

    systemctl status firewalld

    当前防火墙的状态是开启的,我们需要关闭防火墙并关闭防火墙自启动的服务

    systemctl stop firewalld

    systemctl disable firewalld.service

  2. 再次检查防火墙状态

    systemctl status firewalld

    (注)创建文件夹

    在/opt目录下创建bao文件夹放我们需要的安装包

    在/opt目录下创建src文件夹放我们解压后的文件

    mkdir /opt/bao

    mkdir /opt/src

配置免密登录

  1. 客户端生成公私钥

    本地客户端生成公私钥:(一路回车默认即可)

    ssh-keygen(这个命令会在用户目录.ssh文件夹下创建公私钥)

    cd ~/.ssh下创建两个密钥:

    id\_rsa (私钥)

    id\_rsa.pub (公钥)

  2. 上传公钥到服务器

    ssh-copy-id -i ~/.ssh/id\_rsa.pub 192.168.225.171 (这条命令写到服务器上的ssh目录下去)

    cd ~/.ssh

    vi authorized\_keys

    可以看到客户端写入到服务器的 id_rsa.pub (公钥)内容。

    (注)我们需要在所有加入集群的机器上都执行ssh免密登录

  3. 测试免密登录

    在每台主机上测试免密登录

    ssh hadoop112

    ssh hadoop113

禁用透明大页(所有节点)

  1. 查看:

    查看透明大页的设置和启动状态

    cat /sys/kernel/mm/transparent\_hugepage/defrag

    cat /sys/kernel/mm/transparent\_hugepage/enabled

  2. 操作:

    • 临时关闭

      echo never > /sys/kernel/mm/transparent\_hugepage/defrag

      echo never > /sys/kernel/mm/transparent\_hugepage/enabled

    • 永久关闭

      将临时关闭命令添加到/etc/rc.d/rc.local文件中,并赋予执行权限

      echo 'echo never > /sys/kernel/mm/transparent\_hugepage/defrag' >> /etc/rc.d/rc.local

      echo 'echo never > /sys/kernel/mm/transparent\_hugepage/enabled' >> /etc/rc.d/rc.local

      chmod +x /etc/rc.d/rc.local

  3. 验证:

    cat /etc/rc.d/rc.local

打开安全限制(所有节点)

vi /etc/security/limits.conf

文件末尾新增如下:

1
2
3
4
5
6
7
8
9
\# End of file

\* soft nofile 65536

\* hard nofile 65536

\* soft nproc 131072

\* hard nproc 131072

修改最大打开文件数(所有节点)

  1. 修改打开文件数

    vi /etc/systemd/system.conf

    1
    2
    3
    4
    5
    [Manager]

    DefaultLimitNOFILE=1024000

    DefaultLimitNPROC=1024000
  2. 查看修改情况

    ulimit -a

安装httpd(主节点)

  1. 将安装包httpd.tar放在/opt/bao目录下

  2. 安装httpd

    tar -zxvf httpd.tar

    cd httpd

    rpm -ivh \*.rpm

  3. 开启服务

    开启httpd服务

    systemctl start httpd

    开启开机自启

    systemctl enable httpd

  4. 测试

    在浏览器上输入ip,若看到以下的内容则说明http服务已经开启

挂载系统镜像(主节点)

  1. 将网上下载的系统镜像放在我们的/opt/bao目录下

  2. 创建文件夹

    mkdir /var/www/html/iso

  3. 挂载镜像

    mount -o loop /opt/bao/CentOS-7-x86\_64-Everything-2009.iso /var/www/html/iso/

  4. 更新源

    cd /etc/yum.repos.d

    mkdir yumold

    mv \*.repo /etc/yum.repos.d/yumold

    mv yumold /opt

    vi local.repo

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [dvd]

    name=dvd

    baseurl=http://hadoop111/iso

    enabled=1

    gpgcheck=0

    yum clean all

    yum makecache

    (
    注:如果我们挂载的系统镜像源出现问题的话那么我们需要先下载几个组件来支持redhat-lsb,psmisc,nc,gcc,python-devel,unzip这几个组件在bao.tar中,使用方法为:

    1. 将安装包上传到/opt/bao中

    2. tar -zxvf bao.tar

    3. 依次

      cd unzip

      cd redhat

      cd psmisc

      cd nc

      cd gcc

      cd pythondevel

    4. 依次在每一个文件夹内使用

      rpm -ivh \*.rpm

      安装

    )

同步时间(所有节点)

  1. 安装依赖

    yum -y remove mariadb-libs

    yum -y install psmisc ntp ntpdate httpd createrepo wget git

  2. 修改配置文件

    crontab -e

    1
    \*/1 \* \* \* \* /usr/sbin/ntpdate ntp.sjtu.edu.cn

安装包准备

JDK (所有节点)

  1. 查看当前是否安装jdk

    rpm -qa|grep java

  2. 卸载原有的jdk

    rpm –e XXX

  3. 上传jdk安装包

  4. jdk安装包解压

    tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/

  5. 配置环境变量

    vi /etc/profile

    1
    2
    3
    4
    5
    export JAVA\_HOME=/usr/local/jdk1.8.0\_221

    export CLASSPATH=$:CLASSPATH:$JAVA\_HOME/lib/

    export PATH=$PATH:$JAVA\_HOME/bin

  6. 在所有节点重载配置文件,使环境变量生效

    source /etc/profile

  7. 在所有的节点上查看java版本号,确定java是否安装成功

    java -version

HDP,ambari (主节点)

  1. 上传安装包

    1
    2
    3
    4
    5
    6
    7
    ambari-2.7.5.0-centos7.tar.gz

    HDP-UTILS-1.1.0.22-centos7.tar.gz

    HDP-3.1.5.0-centos7-rpm.tar.gz

    HDP-GPL-3.1.5.0-centos7-gpl.tar.gz
  2. 创建文件夹

    mkdir /var/www/html/hdp

  3. 解压安装包

    tar -zxvf mbari-2.7.5.0-centos7.tar.gz -C /var/www/html/

    tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz -C /var/www/html/hdp/

    tar -zxvf HDP-3.1.5.0-centos7-rpm.tar.gz -C /var/www/html/hdp/

    tar -zxvf HDP-GPL-3.1.5.0-centos7-gpl.tar.gz -C /var/www/html/hdp/

制作本地源(主节点)

  1. 制作本地源

    createrepo /var/www/html/ambari

    createrepo /var/www/html/hdp

  2. 验证源是否正常

    1
    2
    3
    http://hadoop111/ambari

    http://hadoop111/hdp

安装mysql(主节点)

卸载mariadb(主节点)

  1. 查询已经安装的mariadb

    rpm -qa|grep mariadb

  2. 卸载mariadb

    rpm -e --nodeps 文件名

    (文件名为上面命令查询出来的文件)

安装初始化mysql(主节点)

  1. 上传安装包到/opt目录

    cd /opt

    mysql-8.0.18-linux-glibc2.12-x86\_64.tar.xz

  2. 解压安装包

    tar Jxvf mysql-8.0.18-linux-glibc2.12-x86\_64.tar.xz

  3. 重命名

    mv mysql-8.0.18-linux-glibc2.12-x86\_64 mysql

mv mysql /usr/local

  1. 创建数据目录

    mkdir /usr/local/mysql/data

  2. 创建并编辑my.cnf文件

    vi /etc/my.cnf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    [client]

    port=3306

    socket=/tmp/mysql.sock

    [mysqld]

    port=3306

    user=mysql

    socket=/tmp/mysql.sock

    basedir=/usr/local/mysql

    datadir=/usr/local/mysql/data

    log-error=/usr/local/mysql/error.log

    pid-file = /usr/local/mysql/mysql.pid

    transaction\_isolation = READ-COMMITTED

    character-set-server = utf8

    collation-server = utf8\_general\_ci

    lower\_case\_table\_names = 1

    sql\_mode = "STRICT\_TRANS\_TABLES,NO\_ENGINE\_SUBSTITUTION,NO\_ZERO\_DATE,NO\_ZERO\_IN\_DATE,ERROR\_FOR\_DIVISION\_BY\_ZERO"
  3. 创建组

    groupadd mysql

  4. 创建用户

    useradd -g mysql mysql

  5. 修改目录权限

    将 /opt/mysql给予mysql用户

    chown -R mysql:mysql /usr/local/mysql

    将/opt/mysql权限设置为755

    chmod -R 755 /usr/local/mysql

  6. 初始化mysql

    cd /usr/local/mysql

    ./bin/mysqld --initialize --user=mysql

  7. 尝试启动mysql

cd /usr/local/mysql

./support-files/mysql.server start

  1. 将mysql添加为服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

  1. 设置开机启动

cd /etc/init.d

chmod 755 /etc/init.d/mysql

chkconfig --add mysql

chkconfig --level 345 mysql on

service mysql restart

  1. 配置环境变量

echo 'export MYSQL\_HOME=/usr/local/mysql' >> /etc/profile

echo 'export PATH=.:$MYSQL\_HOME/bin:$PATH' >> /etc/profile

source /etc/profile

创建数据库(主节点)

  1. 使用默认密码登陆mysql

    mysql -uroot -p

    (默认密码在error.log中)

    (

    cd /usr/local/mysql

    cat error.log |grep temporary

    )

  2. 在MySQL8中第一次登陆需要重新设置root密码

    ALTER user 'root'@'localhost' IDENTIFIED BY '123456';

  3. 开启远程访问

CREATE USER 'root'@'%' IDENTIFIED WITH mysql\_native\_password BY '123456';

GRANT ALL ON \*.\* TO 'root'@'%';

FLUSH PRIVILEGES;

  1. 创建HDP需要用到的几个数据库
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    create database ambari default character set = 'utf8';

    create database hive default character set = 'utf8';

    create database oozie default character set = 'utf8';

    create USER 'ambari'@'%' IDENTIFIED WITH mysql\_native\_password BY '123456';

    grant all privileges on ambari.\* to 'ambari'@'%' with grant option;

    create USER 'hive'@'%' IDENTIFIED WITH mysql\_native\_password BY 'hive';

    grant all privileges on hive.\* to 'hive'@'%' with grant option;

    create USER 'oozie'@'%' IDENTIFIED WITH mysql\_native\_password BY 'oozie';

    grant all privileges on oozie.\* to 'oozie'@'%' with grant option;

    flush privileges;

上传mysql驱动包(所有节点)

  1. 创建目录

    mkdir -p /usr/share/java

  2. 将mysql-connector-java-8.0.18.jar重命名为mysql-connector-java.jar

    mv mysql-connector-java-8.0.18.jar mysql-connector-java.jar

  3. 将mysql-connector-java.jar移动或复制到每个节点

    cp mysql-connector-java.jar /usr/share/java/

    scp mysql-connector-java.jar hadoop112:/usr/share/java/

    scp mysql-connector-java.jar hadoop113:/usr/share/java/

配置本地源repo(主节点)

  1. 配置信息

    vi /etc/yum.repos.d/ambari.repo

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    [ambari-2.7.5.0]

    name=ambari Version - ambari-2.7.5.0

    baseurl=http://hadoop111/ambari/centos7/2.7.5.0-72/

    gpgcheck=1

    gpgkey=http://hadoop111/ambari/centos7/2.7.5.0-72/RPM-GPG-KEY//RPM-GPG-KEY-Jenkins

    enabled=1

    priority=1

    vi /etc/yum.repos.d/hdp.repo

    ![](images/ambari安装部署文档/Aspose.Words.58150eac-1c34-44ee-b717-b0ce0649ad84.015.png)

    [HDP-3.1.5.0]

    name=HDP Version - HDP-3.1.5.0

    baseurl=http://hadoop111/hdp/HDP/centos7/3.1.5.0-152/

    gpgcheck=1

    gpgkey=http://hadoop111/hdp/HDP/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

    enabled=1

    priority=1

    [HDP-UTILS-1.1.0.22]

    name=HDP-UTILS Version - HDP-UTILS-1.1.0.22

    baseurl=http://hadoop111/hdp/HDP-UTILS/centos7/1.1.0.22/

    gpgcheck=1

    gpgkey=http://hadoop111/hdp/HDP-UTILS/centos7/1.1.0.22/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

    enabled=1

    priority=1

    [HDP-GPL-3.1.5.0]

    name=HDP-GPL Version - HDP-GPL-3.1.5.0

    baseurl=http://hadoop111/hdp/HDP-GPL/centos7/3.1.5.0-152/

    gpgcheck=1

    gpgkey=http://hadoop111/hdp/HDP-GPL/centos7/3.1.5.0-152/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins

    enabled=1

    priority=1
  2. 清理一下yum的缓存

    yum clean all

    yum makecache

    yum repolist

  3. 将创建好的文件拷贝到子节点

    cd /etc/yum.repos.d

    scp ambari.repo hdp.repo hadoop112:$PWD

    scp ambari.repo hdp.repo hadoop113:$PWD

安装ambari-server(主节点)

ambari-server安装(主节点)

yum -y install ambari-server

cp /usr/share/java/mysql-connector-java.jar /var/lib/ambari-server/resources/mysql-jdbc-driver.jar

vi /etc/ambari-server/conf/ambari.properties

1
server.jdbc.driver.path=/usr/share/java/mysql-connector-java.jar

(如果在安装过程中报错,执行下面的内容)

执行

yum install postgresql;

yum install postgresql-server;

然后再重新安装amabri-server

使用ambari的sql生成脚本生成表(主节点)

1
2
3
4
5
6
7
mysql -uroot -p

use ambari

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

quit

(这里需要注意一点:ambari当前支持的mysql5.7版本,但是我们使用的是mysql8,由于关键字,这里执行sql脚本会报错,所以我们要修改一下脚本,但是如果你得mysql版本是5.7则不需要修改)

这里需要将脚本的下图标识处进行修改

设置ambari-server(主节点)

ambari-server setup

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Using python  /usr/bin/python

Setup ambari-server

Checking SELinux...

SELinux status is 'enabled'

SELinux mode is 'permissive'

WARNING: SELinux is set to 'permissive' mode and temporarily disabled.

OK to continue [y/n] (y)? y

` `第一步输入y,开启守护进程

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

` `第二步输入root,设置ambari-server的用户是root

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

` `第三步选择jdk,如果没有安装jdk可以输入1默认安装一个,但是我们此时选择2使用我们已经安装过的jdk

Adjusting ambari-server permissions and ownership...

Checking firewall status...

Checking JDK...

Do you want to change Oracle JDK [y/n] (n)? y

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

[2] Custom JDK

\==============================================================================

Enter choice (1): 2

` `当上一步输入的是2的时候,让你选择你之前安装过jdk的JAVA\_HOME的路径,我们输入/usr/local/tools/java-se-8u40-ri

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: /usr/local/jdk1.8.0\_221

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.

` `第5步输入y进入高级数据库配置,我们这里选择3使用mysql

Checking GPL software agreement...

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): hadoop1

Port (3306): 3306

Database name (ambari): ambari

Username (ambari): ambari

Enter Database Password (bigdata): 123456

Re-enter password: 123456

Configuring ambari database...

Configuring remote database connection properties...

WARNING: Before starting Ambari Server, you must run the following DDL directly from the database shell 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.4.0.118.jar

....

Ambari repo file doesn't contain latest json url, skipping repoinfos modification

Adjusting ambari-server permissions and ownership...

Ambari Server 'setup' completed successfully.

启动ambari-server(主节点)

  1. ambari-server start

  1. 测试ambari-server

    登录http://hadoop111:8080,使用默认账户账号密码都是admin

安装配置ambari-agent(所有节点)

安装amabri-agent(所有节点)

  1. 分发本地源ambari.repo到其他两台服务器

    scp /etc/yum.repos.d/ambari.repo hadoop112:/etc/yum.repos.d/

    scp /etc/yum.repos.d/ambari.repo hadoop113:/etc/yum.repos.d/

  2. 在hadoop112和hadoop113上执行

    yum clean all

    yum makecache

  3. 分别在三台服务器安装ambari-agent

    yum -y install ambari-agent

修改配置文件(所有节点)

vi /etc/ambari-agent/conf/ambari-agent.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[server]

hostname=hadoop111

(这里将localhost改为ambari-server的主机名)

url\_port=8440

secured\_url\_port=8441

connect\_retry\_delay=10

max\_reconnect\_retry\_delay=30

## <a name="_toc111729331"></a>**6.3 启动ambari-agent(所有节点)**

ambari-agent start

Verifying Python version compatibility...

Using python /usr/bin/python

Checking for previously running Ambari Agent...

Checking ambari-common dir...

Starting ambari-agent

Verifying ambari-agent process status...

Ambari Agent successfully started

Agent PID at: /run/ambari-agent/ambari-agent.pid

Agent out at: /var/log/ambari-agent/ambari-agent.out

Agent log at: /var/log/ambari-agent/ambari-agent.log

安装集群组件

安装hdfs,yarn,mapreduce,zookeeper,ambari metrics,hive

  1. 登录http://hadoop111:8080
  2. 使用账号密码都是admin登录
  3. 配置集群名字

  1. 选择hdp版本,修改本地源地址

    这里我们删除其他的选项只留下redhat7

    选择Use Local Repository;

    1
    2
    3
    4
    5
    HDP-3.1: http://hadoop111/hdp/HDP/centos7/3.1.5.0-152/

    HDP-3.1-GPL: http://hadoop111/hdp/HDP-GPL/centos7/3.1.5.0-152/

    HDP-UTILS-1.1.0.22: http://hadoop111/hdp/HDP-UTILS/centos7/1.1.0.22/

  2. 填写主机域名和id_rsa文件

    注解域名填写:

    1
    2
    3
    4
    5
    hadoop111

    hadoop112

    hadoop113

    这里我们将/root/.sshd/id_rsa的密钥粘贴并上传

    cat /root/.ssh/id\_rsa
    得到的密钥复制

    (这里需要注意的是这里的密钥需要将前面的—–BEGIN RSA PRIVATE KEY—–和最后的—–END RSA PRIVATE KEY—–也复制到密钥里面,如果这里的密钥无法验证通过,需要将id_rsa文件上传验证通过)

    (这里如果卡住不动,我们查看日志

    tail -200 /var/log/ambari-server/ambari-server.log

    我们发现

    https://img-blog.csdnimg.cn/20201218150936853.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pdWNoZW5saWFuZzUyNA==,size_16,color_FFFFFF,t_70

    这种情况我们需要

    cd /var/run/ambari-server

    mkdir bootstrap

    这里一定要给文件夹添加权限,否则ambari仍然报错

    chown -R ambari:ambari /var/run/ambari-server/bootstrap/

    然后重新验证

    )

    (这里如果我们出现以下的异常

    https://img-blog.csdnimg.cn/20201218150943355.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pdWNoZW5saWFuZzUyNA==,size_16,color_FFFFFF,t_70

    解决方法和上面的异常一样

    cd /var/run/ambari-server

    mkdir stack-recommendations

    chown -R ambari:ambari /var/run/ambari-server/stack-recommendations/)

    验证通过后,等待安装

  3. 选择我们想要安装的组件

  4. 进程分配到节点

    https://img-blog.csdnimg.cn/20201218150647616.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25pdWNoZW5saWFuZzUyNA==,size_16,color_FFFFFF,t_70

  5. 这里的数据库的用户名和密码填写我们之前创建好的

    这里的hive的

  6. hive测试连接

    Hive database 选择existing mysql/mariadb

    Database url:jdbc:mysql://192.168.225.125 /hive?characterEncoding=UTF-8

    Database password : hive

    (这里要注意一定要先执行

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

    再去测试连接)

  7. 准备安装

这里一直点击下一步等待安装

安装hbase

安装kafka

(这里出现提示不用管,直接点击proceed anyway就可以)

删除smartsence

使用smartsence是需要账号和密码的,smartsence是ambari的一个付费服务用于收集群集诊断数据,用于协助支持案例故障排除和SmartSense分析。

这里提供了删除smartsence的方法

安装spark2

(这里的提示仍然不需要管,直接点击proceed anyway就可以)

安装ranger

  1. 创建ranger用户

    • 创建‘rangerdba‘@’localhost’的用户,密码也是rangerdba

    CREATE USER 'rangerdba'@'localhost' IDENTIFIED BY 'rangerdba';

    • 授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

    GRANT ALL PRIVILEGES ON \*.\* TO 'rangerdba'@'localhost';

    • 创建‘rangerdba‘@’%’的用户,密码也是rangerdba

    CREATE USER 'rangerdba'@'%' IDENTIFIED BY 'rangerdba';

    • 授予该用户对所有数据库和表的相应操作权限则可用*表示,如*.*

    GRANT ALL PRIVILEGES ON \*.\* TO 'rangerdba'@'%';

    • 该用户能给其它用户授权

    GRANT ALL PRIVILEGES ON \*.\* TO 'rangerdba'@'localhost' WITH GRANT OPTION;

    • 该用户能给其它用户授权

    GRANT ALL PRIVILEGES ON \*.\* TO 'rangerdba'@'%' WITH GRANT OPTION;

    • 刷新数据库

    FLUSH PRIVILEGES;

    • 检查是否配置成功(密码也是rangerdba)

    mysql -u rangerdba –prangerdba

  2. 安装服务

    (这里需要注意的是Ranger Usersync和Ranger Admin需要安装到同一节点下)

  3. 设置ranger admin

(这里可能出现一个错误,就是当MySQL的端口号不是3306的时候需要手动修改,ranger admin无论怎么都无法启动,报错信息为connection refused,尝试在报错提示的脚本里面找到问题的部分,手动添加端口号,重新启动ranger admin)

  1. 设置ranger audit

    这里由于我们没有安装solr,所以不使用solr,

  2. 设置ADVANCED

  1. 安装ranger

    (这里可能出现这样的问题

    当出现这样的报错信息时候,首先我

    cd /usr/hdp/current/ranger-admin/

    chmod a+x dba\_script.py

    再次运行的时候出现这样的报错

    1
    ranger com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.

    这个错误是表明mysql服务没有正常的运行,mysql服务对jdbc驱动调用没有反应

    首先执行

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

    然后查看mysql:

    mysql -uroot -p123456

    use mysql;

    SELECT host,user,Grant\_priv,Super\_priv FROM user;

    发现了root用户授权的权限没有打开

    UPDATE user SET Grant\_priv='Y', Super\_priv='Y' WHERE User='root';

    FLUSH PRIVILEGES;

    )

ranger对hdfs的权限管理

  1. 开启Hdfs Ranger Plugin

  2. 这里我们需要根据提示信息将dfs.permissions.enabled改成true

  3. 开启ranger后,进去ranger的web界面

    http://hadoop111:6080/

    初始登录账号是admin,密码是我们之前设置的chen12345

  4. 点进tmCluster_hadoop

    在该页面中可以看到默认有两个策略,第一个是hdfs 用户的策略,默认拥有所有目录所有权限

    第二个策略是keyadmin 用户拥有/ranger/audit/kms 目录的所有权

    建议不要随意修改这两个用户的权限策略

    点击右上角Add New Policy添加新的策略

    尝试给hive只读的权限

    这里的Policy Name是策略名字

    Resource Path是hdfs要设置权限的地址

    Select Group是用户组

    Select User是用户名

    Permissions是我们设置的权限

  5. ranger对hbase的权限管理

    开启ranger中的Hbase Ranger Plugin

    ![图形用户界面, 应用程序, Teams

    描述已自动生成](Aspose.Words.58150eac-1c34-44ee-b717-b0ce0649ad84.076.png)

  6. 重新启动hbase后打开ranger web

  7. 点击tmCluster_hbase

  8. 点击右上角Add New Policy创建新的策略

  9. 设置成功后,我们进行测试

    首先创建了一个表,列名包括age,sex,name

    由于我们给hdfs用户授权,所以hdfs用户只能查询到age的数据