HDP安装教程笔记

Posted weixin_42781936

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDP安装教程笔记相关的知识,希望对你有一定的参考价值。

HDP安装教程,ambari安装教程,大数据平台安装教程

1.环境准备

1.安装centos7系统

1.使用vmware安装centos系统,略

​ HDP 环境安装配置

HDP : Hortonworks Data Platform

CDH : Cloudera Distribution Hadoop

部署安装主要分为3大部分

  1. 准备环境、配置机器、准备离线包、本地仓库、数据库等
  2. 安装Ambari Server 阶段
  3. 基于Ambari Server UI 来安装相关服务组件阶段

HDP集群的安装,95%的工作是对Ambari Server的安装配置。

所有对集群的安装、配置、管理等都是通过Ambari Server UI来完成

也就是说,Ambari Server UI 是整个集群的管理员,我们多数操作都是通过它来进行的,而不需要像部署开源Hadoop那样去一台台机器手动去部署。

Ambari Server UI 是我们对集群进行管理的入口。如同Linux Shell是操作系统的操作界面一样,Ambari Server UI 就是整个集群的操作界面

1. 环境检查

1.1 产品互用性

首先, 需要确定使用的Ambari版本,可以参考: https://supportmatrix.hortonworks.com , 这里列出了Ambari和HDP等组件的版本依赖关系

我们这里使用Ambari 2.7.0, HDP 3.0.0 来安装部署集群

Ambari 和 HDP 有版本依赖关系

然后HDP的版本 和其内部可使用的大数据组件也有版本参照关系

HDP版本对应的各个大数据组件版本参见:

1.2 课程使用的版本信息

根据 > https://supportmatrix.hortonworks.com 的选择后,课程使用

  • Centos 7.4 x64 操作系统
  • JDK8
  • HDP 3.0.0
  • Ambari 2.7
  • mysql-5.7.27-1.el7.x86_64.rpm-bundle
  • Centos 7.9

同学们如果想要尝试其他版本,请按照网站的搭配来确定版本

2.挂载系统盘并安装ifconfig软件

1.挂载系统安装盘到机器上,配置本地yum仓库用来安装软件,安装ifconfig等软件

  • 如果下载了Everything版本的centos7.iso则挂载Everything版本,软件包多一点

D:\\原电脑E盘\\软件安装包\\CentOS-7-x86_64-Everything-1810_2.iso

mkdir /mnt/centos #创建要挂载到的目录
cd /dev
ls | grep sr   #查看cdrom指向哪里  
mount -t iso9660 -o loop /dev/sr1 /mnt/centos   #
mount -t iso9660 -o loop /dev/cdrom /mnt/centos  #// 虚拟机环境下,可以用光驱加载ISO文件,不需要上传

2.确定要挂载的sr,cdrom指向的是sr0,但是我们的系统镜像是sr1,所以使用了mount -t iso9660 -o loop /dev/sr1 /mnt/centos

3.配置本地源,用于安装软件是从本地仓库下载

配置本地yum源:
1.将iso光盘挂载到目录下

# 非虚拟机环境
mkdir /data #创建目录(存放iso镜像文件)
#将iso镜像文件上传到/data下
mkdir /mnt/centos #创建要挂载到的目录
mount /xxx/xxx/xxx.iso /mnt/centos



# 虚拟机环境
#必须让虚拟机加载了安装盘
mkdir /mnt/centos
mount -t iso9660 -o loop /dev/cdrom /mnt/centos  // 虚拟机环境下,可以用光驱加载ISO文件,不需要上传,mount -t iso9660 -o loop /dev/sr1 /mnt/centos

#查看挂载点
 df -h  /dev/loop0       11G   11G     0 100% /mnt/centos
 
2.配置基于本地文件的yum源

cd /etc/yum.repos.d/
ll ./ #查看yum源文件配置
CentOS-Base.repo                #网络yum源
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo               #本地yum源
CentOS-Vault.repo

3.先禁用本地的yum配置文件(必须以.repo结尾的yum配置文件才生效)

rename .repo .repo.bak ./*
yum repolist (检查,查不到东西说明,yum源已禁用)

4.复制一份CentOS-Media.repo

cp CentOS-Media.repo.bak local.repo

5.配置local.repo

vi local.repo
[centos7-local]
name=CentOS-$releasever - Local
baseurl=file:///mnt/centos/
gpgcheck=1
enabled=1    #设置这个配置文件为可用
gpgkey=file:///mnt/centos/RPM-GPG-KEY-CentOS-7



6.yum clean all清缓存

7.yum repolist 查看仓库信息

#配置成功会显示
------------------------------------------------------------
repo id            repo name                       status
Local              CentOS-6 - Local                6,575
repolist: 6,575
------------------------------------------------------------

4.安装ifconfig软件

# 查找ifconfig是哪个包
yum search ifconfig
#拿到安装包名称后直接下载
yum install -y net-tools   # -y 代表yes  直接安装
#安装成功后输入
ifconfig   # 输出ip相关信息

5.卸载设备

  • 卸载挂载的光盘,重新挂载新的

  • umount -v /mnt/centos

umount 用来卸载设备
-a:卸除/etc/mtab中记录的所有文件系统;
 -h:显示帮助;
 -n:卸除时不要将信息存入/etc/mtab文件中;
-r:若无法成功卸除,则尝试以只读的方式重新挂入文件系统;
 -t<文件系统类型>:仅卸除选项中所指定的文件系统;
 -v:执行时显示详细的信息; -V:显示版本信息。
umount -v /dev/sda1    通过设备名卸载
umount -v /mnt/mymount/  通过挂载点卸载
umount -vl  /mnt/mymount/ 延迟卸载
如果报device is busy  ,说明你在这个目录下卸载自己  这样肯定不行   退出目录卸载可行  或者  执行延迟卸载

6.挂载光盘

  • 挂载Everything版本的centos7.iso,上面挂载的没有vim,软件包比较少,所以umount了以后挂载新的光盘
mount -t iso9660 /dev/cdrom /mnt/centos/    
# 挂载光盘  Everything版本的centos7.iso 
# mount -t iso9660 /dev/cdrom /mnt/cdrom

1.yum clean all清缓存

2.yum repolist 查看仓库信息
  • 换了新的iso后软件变多了447——》10019

  • 可以安装vim了

    • vim 用于编辑文档
yum install -y vim

3.配置静态ip

  1. 修改部分内容

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

    # cat /etc/sysconfig/network-scripts/ifcfg-ens33
    TYPE="Ethernet"
    PROXY_METHOD="none"
    BROWSER_ONLY="no"
    BOOTPROTO="static"
    DEFROUTE="yes"
    IPV4_FAILURE_FATAL="no"
    IPV6INIT="yes"
    IPV6_AUTOCONF="yes"
    IPV6_DEFROUTE="yes"
    IPV6_FAILURE_FATAL="no"
    IPV6_ADDR_GEN_MODE="stable-privacy"
    NAME="ens33"
    UUID="26809e1e-4bee-4a4e-aef6-8f3fe6e216b4"
    DEVICE="ens33"
    ONBOOT="yes"
    IPADDR="192.168.152.100"     #定义的本机ip
    NETMASK="255.255.255.0"		#子网掩码
    GATEWAY="192.168.152.2"      #网关  如下图查询
    DNS1="192.168.152.1"
    DNS2="8.8.8.8"
    

4.配置主机名

  • 修改主机名 修改/etc/hostname文件。重启生效。3台服务器都需要做如上修改,先修改一台一会克隆后在适当修改部分内容

    vim /etc/hostname
    修改为hdp100
    
    • 或者使用echo hdp100 > /etc/hostname
  • 配置/etc/hosts文件,/etc/hosts存放的是域名与ip的对应关系,域名与主机名没有任何关系,你可以为任何一个IP指定任意一个名字

    • 要在hosts文件中配置 FQDN形式的主机名映射,比如
    vim /etc/hosts
    192.168.152.100 hdp0.itcast.cn hdp100
    192.168.152.101 hdp1.itcast.cn hdp101
    192.168.152.102 hdp2.itcast.cn hdp102
    192.168.152.103 hdp3.itcast.cn hdp103
    
    # hdp0.itcast.cn 就是 fully.qualified.domain.name  FQDN
    
    • 不要移除hosts中自带的这些

      127.0.0.1 localhost.localdomain localhost
      ::1 localhost6.localdomain6 localhost6
      
    • 3台服务器的hosts都需要做如上修改,先修改一台一会克隆后在适当修改部分内容

    • #生效命令
      service network restart
      或者
      /etc/init.d/network restart
      
  • 使用 hostname -f检查是否能够映射FQDN主机名,确认hostname(所有服务器均验证)

    • 获取FQDN形式的主机名

5.关闭防火墙及selinux

  • 3台服务器上分别执行以下操作,关闭防火墙并配置开机不自动启动

  • 防火墙指定端口开放,不要禁用防火墙,这里学习则关闭了防火墙

    systemctl status firewalld.service   #查询防火墙状态
    systemctl stop firewalld.service     #关闭防火墙
    systemctl disable firewalld.service  #开机不自动启动
    systemctl status firewalld.service	 #查询防火墙状态
    
    • 关闭3台服务器selinux

    • 临时关闭,不用重启服务器

      setenforce 0
      
    • 为了重启后依然关闭,配置如下文件

      vim /etc/sysconfig/selinux
      #修改
      SELINUX=disabled
      
    • 重启后验证是否禁用成功

    sestatus -v
    SELinux status:                 disabled
    

    设置umask为0022

    UMASK Examples:

    为当前登录session设置umask:

    umask 0022

    检查设置:

    umask

    为每个用户设置:

    echo umask 0022 >> /etc/profile

    UMASK(用户掩码或用户文件创建MASK)设置在Linux计算机上创建新文件或文件夹时授予的默认权限或基本权限。
    大多数Linux发行版(发行版)都将022设置为默认的umask值。
    umask值为022,为新文件或文件夹授予755的读取,写入和执行权限。
    umask值027为新文件或文件夹授予750读取,写入和执行权限。
    Ambari,HDP和HDF支持umask值022(0022在功能上等效),027(0027在功能上等效)。
    必须在所有主机上设置这些值。

6.克隆系统并修改ip以及hosts、hostname等参数

  • 克隆的三台都要修改
  1. 修改ip

    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    #修改ip为 192.168.152.101   ,102,103等ip
    systemctl restart network   #重启生效 ifconfig对比
    
  2. 修改主机名称

    echo hdp100 > /etc/hostname
    
    • 重启生效
  • 设置SSH免密登陆(所有服务器均设置)

    要让Ambari Server在所有群集主机上自动安装Ambari Agent,必须在Ambari Server主机与群集中的所有其他主机之间设置无密码SSH连接。

  • Ambari Server主机使用SSH公钥身份验证来远程访问和安装Ambari代理.

Steps

  1. 生成ssh 秘钥ssh-keygen -t rsa
  2. 执行 ssh-copy-id 目标主机
  3. 执行上述命令后,当前机器可以免密登陆到目标主机 ,所有主机都要设置

3.验证免密是否配置成功

  • ssh hdp100

7.安装pssh工具(高效,同时查询或修改其他主机的文件的工具)

  • pssh基于Python编写的并发在多台服务器上批量执行命令的工具,它支持文件并行复制、远程并行执行命令、杀掉远程主机上的进程等,这里介绍安装及常用命令
  1. 我将安装包放到/opt/bao目录下

    cd /opt/bao
    wget http://peak.telecommunity.com/dist/ez_setup.py
    wget http://files.opstool.com/files/pssh-2.3.tar.gz
    #上面的网址可能下载不下来,用另一个
    wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz
    
  2. 发解压到/opt/src目录下

    tar -zxvf pssh-2.3.1.tar.gz -C /opt/src
    
  3. 更改包名,并cd到包里

    cd /opt/src
    mv pssh-2.3.1 pssh
    cd pssh
    
  4. build &install

    python setup.py build
    python setup.py install
    
  5. 查看安装

pssh --version
2.3.1
  1. 创建nodes文档,添加需要批处理的服务器节点
    为了以后使用方便,在根目录下创建,文件名可随意,方便使用原则
vim /node.list
root@192.168.152.100:22
root@192.168.152.101:22
root@192.168.152.102:22
root@192.168.152.103:22

cat /node.list
  1. 使用实例

    pssh -h /node.list -i -P 'date'
    
    [root@hdp100 pssh]# pssh -h /node.list -i -P 'date'
    192.168.152.101: Thu Feb 23 00:34:11 PST 2023
    [1] 00:34:11 [SUCCESS] root@192.168.152.101:22
    Thu Feb 23 00:34:11 PST 2023
    192.168.152.100: Thu Feb 23 00:34:11 PST 2023
    [2] 00:34:11 [SUCCESS] root@192.168.152.100:22
    Thu Feb 23 00:34:11 PST 2023
    192.168.152.102: Thu Feb 23 00:34:11 PST 2023
    [3] 00:34:11 [SUCCESS] root@192.168.152.102:22
    Thu Feb 23 00:34:11 PST 2023
    192.168.152.103: Thu Feb 23 00:34:11 PST 2023
    [4] 00:34:11 [SUCCESS] root@192.168.152.103:22
    
    pssh -h /node.list -i  'date'
    
    pssh是一个用于在多台主机上并行执行ssh的命令,方便多台Linux的管理。
    
    -i 每台主机执行完后显示标准输出和标准错误
    -H 指定远程地址,该地址可以同时给出多个,格式为[user@]host[:port],也可以和-f选项配合使用。
    -h 指定主机列表文件,也就是说可以从文件中读取主机列表。
    -t 指定超时时间,单位是秒,参数为0表示永不超时。
    -o 将输出结果保存到指定的文件
    -A 提示输入密码,这样做的目的是密码不会保存在命令历史记录里。
    -l 指定ssh连接用户名-x 传递额外的ssh命令参数
    -p 指定pssh命令的最大并发连接数
    

8.安装http服务

  • 将这个机器配置的本地仓库托管为http服务,让其他server可以访问,安装两个软件 createrepo和httpd

    sysctl net.ipv6.conf.all.disable_ipv6=1  # 关闭IP6
    yum install yum-utils createrepo   #安装失败请检查本地仓库,光盘是否挂载 没有挂载则运行mount -t iso9660 -o loop /dev/cdrom /mnt/centos   也不行
    yum install httpd
    systemctl enable httpd           #设置为开机自启动 systemctl enable httpd.service
    mkdir -p /var/www/html/           #httpd 默认工作目录
    cd /var/www/html/
    ln -s /mnt/centos centos7-local-repo
    systemctl start httpd   #启动httpd服务,在hdp1就可以通过局域网访问hdp0的仓库了
    
    #备注在/var/www/html下建立centos7-local-repo的软连接,链接到 /mnt/centos   /var/www/html是httpd的默认工作目录,所以输入http://192.168.152.100/centos7-local-repo/或者http://hdp0/centos7-local-repo/就可以访问到本地仓库
    #修改电脑hosts文件C:\\Windows\\System32\\drivers\\etc\\hosts  
    #配置本地的ambari集群 自己的
    192.168.152.100 hdp100 
    192.168.152.101 hdp101 
    192.168.152.102 hdp102 
    192.168.152.103 hdp103 
    #在自己电脑浏览器上可以查看,本地仓库托管成网络服务  ,局域网源配置成功
    http://192.168.152.100/centos7-local-repo/
    
    9. 在其他机器上
    http://hdp0/centos7-local-repo/
    cd /etc/yum.repos.d/
    rename .repo .repo.bak ./*
    cp CentOS-Base.repo.bak my.repo
    修改my.repo内容为
    ​```
    [hdp0]   # 自己定义
    name=CentOS-$releasever - HDP0-local   # 自己定义一个名字
    # 下面的url 是配置好提供本地仓库的服务器,如我的就是如下  (baseurl)
    baseurl=http://hdp0/centos7-local-repo/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    ​```
    yum repolist
    
    同步到其他节点
    pscp -h /node.list /etc/yum.repos.d/my.repo  /etc/yum.repos.d/my.repo
    
    查看yum源是否配置成功,如下可见redhat7.6.repo配置成功
    pssh -h /node.list -i 'yum clean all'
    pssh -h /node.list -i 'yum repolist'
    #报错的话则将除了主机外的其他三台主机的my.repo屏蔽,克隆的时候一起克隆过来了
    mv local.repo local.repo.bak
    
    查看hdp0是否开机启动
    systemctl status httpd
    
    yum install yum-utils createrepo   #安装失败请检查本地仓库,光盘是否挂载 没有挂载则运行mount -t iso9660 -o loop /dev/cdrom /mnt/centos
    **失败** 
    

9.配置ntp时钟同步(所有服务器均设置)

  • 群集中所有节点的时钟以及运行浏览器的计算机必须能够彼此同步才能访问Ambari Web界面。

  • 要安装NTP服务并确保它在启动时启动,请在每台主机上运行以下命令:

    1. 卸载系统原装的chrony

      pssh -h /node.list -i 'yum -y  remove chrony'
      
    2. 所有节点安装NTP服务

    pssh -h /node.list -i 'yum -y install ntp'
    
    1. 选择一台服务器作为NTP Server,将如下配置vim /etc/ntp.conf

      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 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
      #允许这些网段的主机访问进行同步时间 
      restrict 192.168.152.0 mask 255.255.255.0 nomodify notrap  
      #允许本机访问
      restrict 127.0.0.1   
      #server指定ntp服务器的地址 将当前主机作为时间服务器
      #fudge设置时间服务器的层级 stratum 0~15  ,0:表示顶级 , 10:通常用于给局域网主机提供时间服务
      #注意:fudge必须和server一块用, 而且是在server的下一行
      # local clock 授权中心,自己和自己对,别人以他为准  和自己对时间
      server  127.127.1.0     
      fudge   127.127.1.0 stratum 10   
      
      
    2. 其它节点做如下配置

      #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
      #(your local server)
      server 192.168.152.100
      
    3. 在每台服务器上启动ntpd服务,并配置服务开机自启动

      pssh -h /node.list -i 'systemctl restart ntpd'
      pssh -h /node.list -i 'systemctl enable ntpd.service'
      
    4. 验证所有节点NTP是否同步成功

      pssh -h /node.list -i 'ntpq -p'
      
      [1] 03:45:30 [SUCCESS] root@192.168.152.101:22
           remote           refid      st t when poll reach   delay   offset  jitter
      ==============================================================================
       hdp0.itcast.cn  LOCAL(0)        11 u    7   64    3    0.186  -3851.3   0.008
      [2] 03:45:30 [SUCCESS] root@192.168.152.100:22
           remote           refid      st t when poll reach   delay   offset  jitter
      ==============================================================================
      *LOCAL(0)        .LOCL.          10 l   13   64    7    0.000    0.000   0.000
      [3] 03:45:30 [SUCCESS] root@192.168.152.102:22
           remote           refid      st t when poll reach   delay   offset  jitter
      ==============================================================================
       hdp0.itcast.cn  LOCAL(0)        11 u   12   64    7    0.613  62273.4   0.032
      [4] 03:45:30 [SUCCESS] root@192.168.152.103:22
           remote           refid      st t when poll reach   delay   offset  jitter
      ==============================================================================
       hdp0.itcast.cn  LOCAL(0)        11 u   10   64    7    0.153  -5428.2   0.041
      
    5. 同步时间,来手动对时 ,clientnode.list没有本机的ip,只有client节点的ip

      pssh -h /clientnode.list -i 'ntpdate -u hdp100'
      #重启ntpd
      pssh -h /node.list -i 'systemctl restart ntpd'
      
    6. 检查 提供ntp server机器的时间

      如果时区不对,使用tzselect 命令选择中国时区
      tzselect   输入 5 9 1 1
      使用date -s "设置时间"
      如: date -s "2019-09-02 11:41:00"
      
      • 重新使用以上命令同步一下时间

        pssh -h /node.list -i 'date'
        pssh -h /clientnode.list -i 'ntpdate -u hdp100'
        pssh -h /node.list -i 'date'
        
    7. d

    8. 将安装包提供的libtirpc-0.2.4-0.15.el7.x86_64.rpmlibtirpc-devel-0.2.4-0.15.el7.x86_64.rpm上传到服务器进行安装rpm -ivh libtirpc-0.2.4-0.15.el7.x86_64.rpm 所有的节点都要安装

      可以使用rz命令快速上传,如果rz提示无这个命令使用:yum install lrzsz来安装即可 yum install nmap 所有的节点都要安装

    9. d

    10. d

10.下载并设置数据库连接器(Ambari Server服务器设置即可)

  • 需要元数据存储仓库,默认是postgre,也可以使用其他mysql,oracer,如hive也需要元数据存储仓库,ambari也需要

    1. 安装一个数据库提供元数据存储

    2. 安装Mysql:

      一、首先清除CentOS7系统中默认的数据库mariadb,否则不能安装mysql
      	rpm -qa |grep mariadb |xargs yum remove -y
      
      二、安装MySql
      	1、下载MySql的相关rpm包
      	上传安装包中提供的mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
      
      	2、将下载的mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar放到/usr/local/mysql目录,解压缩安装包
      	tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar
      	#视频是建立mysql-rpms文件夹,并解压到此文件夹下
      	#tar -xvf mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar -C mysql-rpms/
      	3、切换到下载包目录下(cd 你的下载目录),然后对每个包进行一次安装;
      	rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
      	rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
      	rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
      	rpm -ivh mysql-community-embedded-compat-8.0.15-1.el7.x86_64.rpm
      	rpm -ivh mysql-community-devel-8.0.15-1.el7.x86_64.rpm
      	rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
      	rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
      	
      	或者一行搞定
      	>>> rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm mysql-community-libs-5.7.27-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm mysql-community-embedded-compat-5.7.27-1.el7.x86_64.rpm mysql-community-embedded-devel-5.7.27-1.el7.x86_64.rpm mysql-community-embedded-5.7.27-1.el7.x86_64.rpm mysql-community-devel-5.7.27-1.el7.x86_64.rpm mysql-community-client-5.7.27-1.el7.x86_64.rpm mysql-community-server-5.7.27-1.el7.x86_64.rpm
      	
      	如果缺少libaio 可以安装提供的两个libaio包
      	rpm -ip libaio-devel-0.3.109-13.el7.x86_64.rpm
      	或者执行如下命令,安装所需依赖即可:
      	yum install -y libaio
      	
      	4、修改MySql基础配置
      	vi /etc/my.cnf
      
      	修改配置如下
      
      	#datadir=/var/lib/mysql  存放数据的目录
      	datadir=/data/mysql
      	socket=/var/lib/mysql/mysql.sock
      	log-error=/var/log/mysqld.log
      	pid-file=/var/run/mysqld/mysqld.pid
      
      	修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
      	[mysqld]
      	character_set_server=utf8
      	init_connect='SET NAMES utf8'
      
      	5、通过以下命令,完成对 mysql 数据库的初始化和相关配置
      	mysqld --initialize
      	// chown mysql:mysql /data/mysql -R
      	cd /var/lib/mysql
      	chown -R mysql:mysql *          #将修改权限
      	systemctl  enable mysqld // 设置开机启动
      #drwxr-xr-x 2 root root 6 Feb 24 10:54 mysql
      
      三、启动MySql服务
      	1、启动MySql
      	systemctl start mysqld.service
      	
      	#停止MySql
      
      	systemctl stop mysqld.service
      	
      	#重启MySql
      
      	systemctl restart mysqld.service
      	
      	2、设置MySql开机自启
      	systemctl enable mysqld
      	1
      	3、通过 cat /var/log/mysqld.log | grep password 命令查看数据库的密码
      	2019-02-16T09:46:38.945518Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,#t#dlkOG0j0
      	1
      	以上密码为,#t#dlkOG0j0      AHIZUGI!j8hi
      
      	4、测试MySql安装是否成功
      	4.1、以root用户登录MySql,执行命令
      	mysql -u root -p
      	
      	输入以上命令回车进入,出现输入密码提示
      
      	4.2、输入刚刚查到的密码,进行数据库的登陆,复制粘贴就行,MySQL 的登陆密码也是不显示的
      
      	4.3、通过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; 命令来修改密码
      	
      	4.4、通过 exit; 命令退出 MySQL,然后通过新密码再次登陆
      	至此,mysql数据库就安装完成了。
      
      2023年2月20号下班到这里了
      	四、MySql远程访问授权配置
      	1、以root用户登录MySql
      	mysql -u root -p
      
      	grant all privileges on *.* to root@"%" identified by '密码' with grant option;  
      	flush privileges;
      	
      #以下为说明解释	
      #查看添加的账号密码权限
      use mysql
      SELECT Host,user,authentication_string  FROM user;  图片如下
      #比如你的host主机IP是192.168.170.128,用如下命令在Linux主机上验证是否可以远程登录,注意把如下密码换成你的MySQL数据库的实际root密码,IP换成你的实际主机地址。
      mysql -uroot -proot -h hdp100
      	附:
      	创建新用户: CREATE USER ‘用户名’@‘host名称’ IDENTIFIED WITH mysql_native_password BY ‘密码’;
      
      	给新用户授权:GRANT ALL PRIVILEGES ON . TO ‘用户名’@‘host名称’;
      
      	刷新权限: FLUSH PRIVILEGES;
      
      备注:
          #grant all privileges on *.*    #授予所有权限 对于所有的库所有的表*.*  
          #%代表任何地方  不只是本主机才可以登录 %代表所有的访问地址
          #WITH GRANT OPTION表示允许级联授权
          #其中"*.*"代表所有资源所有权限, “'root'@%”其中root代表账户名,%代表所有的访问地址。IDENTIFIED BY '密码',这里换成数据库root用户的密码,WITH GRANT OPTION表示允许级联授权
          #SELECT Host,user,authentication_string  FROM user;
      

      报错解决办法:

      1、 运行上边的代码报错,需要加入 --force --nodeps 
       rpm -ivh mysql-community-common-5.7.27-1.el7.x86_64.rpm --force --nodeps mysql-community-libs-5.7.27-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.27-1.el7.x86_64.rpm mysql-community-embedded-compat-5.7.27-1.el7.x86_64.rpm mysql-community-embedded-devel-5.7.27-1.el7.x86_64.rpm mysql-community-embedded-5.7.27-1.el7.x86_64.rpm mysql-community-devel-5.7.27-1.el7.x86_64.rpm mysql-community-client-5.7.27-1.el7.x86_64.rpm mysql-community-server-5.7.27-1.el7.x86_64.rpm
      Linux下rpm方式安装MySQL遇到warning: mysql-community-server-5.7.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY这个错误,这是因为yum安装了旧版本的GPG keys造成的 解决办法:后面加上 --force --nodeps 如: rpm -ivh MySQL-server-5.5.46-1.linux2.6.x86_64.rpm --force --nodeps 即可
      
      2、mysqld --initialize 报错
      [root@hdp0 etc]# mysqld --initialize
      mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
      解决办法:原因是因为:新的服务器没有安装所需依赖导致的。
      
      解决办法,执行如下命令,安装所需依赖即可:
      yum install -y libaio
      
      
    3. 创建相关账号和数据库以及表

      • 使用MySQL时,用于Ranger管理策略存储表的存储引擎必须支持事务。

      • InnoDB是支持事务的引擎示例。

      • 不支持事务的存储引擎不适合作为策略存储。

      • nnoDB,是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,为MySQL AB发布binary的标准之一

      • 推荐使用InnoDB引擎

      • 应使用MySQL数据库管理员创建Ranger数据库

      • 以下一系列命令可用于创建密码为rangerdbarangerdba用户。

        1. 以root用户身份登录,然后使用以下命令创建rangerdba用户并授予其足够的权限。

          CREATE USER 'rangerdba'@'localhost' IDENTIFIED BY 'rangerdba';  
          #创建一个用户rangerdba, 可以在localhost登录,密码是rangerdba
          
          GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'localhost';  
          #授予所有权限 对于所有的库所有的表*.* 授权给rangerdba用户,必须在localhost登录才可以
          
          CREATE USER 'rangerdba'@'%' IDENTIFIED BY 'rangerdba';
          #%代表任何地方  进入mysql后可以查看是否添加
          #SELECT Host,user,authentication_string,Grant_priv  FROM mysql.user;
          GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'%';
          
          GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'localhost' WITH GRANT OPTION;
          #grant用于给增加用户和创建权限 grant用于给增加用户和创建权限
          GRANT ALL PRIVILEGES ON *.* TO 'rangerdba'@'%' WITH GRANT OPTION;
          
          FLUSH PRIVILEGES;
          
          #说明:
          #连接:https://baijiahao.baidu.com/s?id=1704529867014054059&wfr=spider&for=pc
          #也就是说数据库的all priveleges包含下面的权限:
          INSERT, SELECT, UPDATE以上是关于HDP安装教程笔记的主要内容,如果未能解决你的问题,请参考以下文章

          尚硅谷大数据Hadoop教程-笔记02HDFS

          尚硅谷大数据技术Hadoop教程-笔记06Hadoop-生产调优手册

          数据湖:各模块组件

          数据湖:各模块组件

          学习笔记尚硅谷Hadoop大数据教程笔记

          学习笔记尚硅谷Hadoop大数据教程笔记