大数据安全系列之hive的kerberos认证配置,其它系列链接如下

https://www.cnblogs.com/bainianminguo/p/12548076.html-----------安装kerberos

https://www.cnblogs.com/bainianminguo/p/12548334.html-----------hadoop的kerberos认证

https://www.cnblogs.com/bainianminguo/p/12548175.html-----------zookeeper的kerberos认证

https://www.cnblogs.com/bainianminguo/p/12584732.html-----------hive的kerberos认证

https://www.cnblogs.com/bainianminguo/p/12584880.html-----------es的search-guard认证

https://www.cnblogs.com/bainianminguo/p/12639821.html-----------flink的kerberos认证

https://www.cnblogs.com/bainianminguo/p/12639887.html-----------spark的kerberos认证

一、安装mysql

1、卸载mariadb

  1. [root@cluster2-host1 yum.repos.d]# rpm -qa|grep mariadb
  2. mariadb-libs-5.5.44-2.el7.centos.x86_64
  3. [root@cluster2-host1 yum.repos.d]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
  4. [root@cluster2-host1 yum.repos.d]# rpm -qa|grep mariadb

  

2、创建mysql用户

  1. [root@cluster2-host1 yum.repos.d]# groupadd mysql
  2. [root@cluster2-host1 yum.repos.d]# useradd mysql -g mysql

 

3、下载mysql安装包

  1. https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar

  

4、解压安装包

  1. [root@cluster2-host1 data]# tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql/
  2.  
  3. [root@cluster2-host1 mysql]# ll
  4. total 533048
  5. -rw-r--r--. 1 7155 31415 27768112 Dec 19 03:12 mysql-community-client-5.7.29-1.el7.x86_64.rpm
  6. -rw-r--r--. 1 7155 31415 318972 Dec 19 03:12 mysql-community-common-5.7.29-1.el7.x86_64.rpm
  7. -rw-r--r--. 1 7155 31415 4085448 Dec 19 03:12 mysql-community-devel-5.7.29-1.el7.x86_64.rpm
  8. -rw-r--r--. 1 7155 31415 47521016 Dec 19 03:12 mysql-community-embedded-5.7.29-1.el7.x86_64.rpm
  9. -rw-r--r--. 1 7155 31415 23354680 Dec 19 03:12 mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm
  10. -rw-r--r--. 1 7155 31415 131015588 Dec 19 03:12 mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm
  11. -rw-r--r--. 1 7155 31415 2596180 Dec 19 03:12 mysql-community-libs-5.7.29-1.el7.x86_64.rpm
  12. -rw-r--r--. 1 7155 31415 1353080 Dec 19 03:12 mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
  13. -rw-r--r--. 1 7155 31415 183618644 Dec 19 03:12 mysql-community-server-5.7.29-1.el7.x86_64.rpm
  14. -rw-r--r--. 1 7155 31415 124193252 Dec 19 03:12 mysql-community-test-5.7.29-1.el7.x86_64.rpm

  

5、rpm的方式安装mysql

  1. [root@cluster2-host1 mysql]# rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
  2. warning: mysql-community-common-5.7.29-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  3. Preparing... ################################# [100%]
  4. Updating / installing...
  5. 1:mysql-community-common-5.7.29-1.e################################# [100%]
  6. [root@cluster2-host1 mysql]# rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
  7. warning: mysql-community-libs-5.7.29-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  8. Preparing... ################################# [100%]
  9. Updating / installing...
  10. 1:mysql-community-libs-5.7.29-1.el7################################# [100%]
  11. [root@cluster2-host1 mysql]# rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
  12. warning: mysql-community-client-5.7.29-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  13. Preparing... ################################# [100%]
  14. Updating / installing...
  15. 1:mysql-community-client-5.7.29-1.e################################# [100%]
  16. [root@cluster2-host1 mysql]# rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
  17. warning: mysql-community-server-5.7.29-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  18. error: Failed dependencies:
  19. net-tools is needed by mysql-community-server-5.7.29-1.el7.x86_64

  

  1. [root@cluster2-host1 mysql]# yum install net-tools -y
  2.  
  3. [root@cluster2-host1 mysql]# rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
  4. warning: mysql-community-server-5.7.29-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
  5. Preparing... ################################# [100%]
  6. Updating / installing...
  7. 1:mysql-community-server-5.7.29-1.e################################# [100%]

  

6、启动mysql

  1. [root@cluster2-host1 mysql]# service mysqld start

  

7、查看mysql的临时密码

  1. [root@cluster2-host1 mysql]# grep "A temporary password" /var/log/mysqld.log
  2. 2020-03-02T07:59:38.098144Z 1 [Note] A temporary password is generated for root@localhost: ln/Ot4j-j#hQ
  3. [root@cluster2-host1 mysql]#

  

8、修改mysql的临时密码

  1. set global validate_password_policy=0;
  2. set global validate_password.length=1;
  3. alter user user() identified by "123456";

  

9、设置mysql支持远程访问

  1. [root@cluster2-host1 conf]# mysql -u root -p
  2. update user set host = '%' where user = 'root';

  

10、在其它节点确认可以远程访问mysql即可

  1. mysql -h 10.87.18.34 -p3306 -uroot -p

  

二、安装hive

1、解压和重命名hive安装路径

  1. 538 tar -zxvf apache-hive-1.2.0-bin.tar.gz -C /usr/local/
  2. 539 cd /usr/local/
  3. 540 ll
  4. 541 mv apache-hive-1.2.0-bin/ hive

  

2、修改hive的env文件

  1. [root@cluster2-host1 conf]# pwd
  2. /usr/local/hive/conf
  3. [root@cluster2-host1 conf]# cp hive-env.sh.template hive-env.sh

  

3、修改hive-env文件

  1. export HIVE_HOME=/usr/local/hive
  2. export HADOOP_HOME=/usr/local/hadoop
  3. # Hive Configuration Directory can be controlled by:
  4. export HIVE_CONF_DIR=/usr/local/hive/conf
  5. export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
  6. export PATH=${HIVE_HOME}/bin:$PATH:$HOME/bin:

  

4、修改hive的配置文件

vim hive-default.xml

  1. <property>
  2. <name>javax.jdo.option.ConnectionUserName</name>
  3. <value>root</value>
  4. </property>
  5. <property>
  6. <name>javax.jdo.option.ConnectionPassword</name>
  7. <value>123456</value>
  8. </property>
  9. <property>
  10. <name>javax.jdo.option.ConnectionURL</name>mysql
  11. <value>jdbc:mysql://10.87.18.34:3306/hive?</value>
  12. </property>
  13. <property>
  14. <name>javax.jdo.option.ConnectionDriverName</name>
  15. <value>com.mysql.jdbc.Driver</value>
  16. </property>

  

5、安装hive的mysql驱动

拷贝驱动到hive/lib目录

  1. 474 cd mysql-connector-java-5.1.48
  2. 475 ll
  3. 476 cp mysql-connector-java-5.1.48-bin.jar /usr/local/hive/lib/

  

6、在mysql中创建hive的database

  1. mysql> create database hive;
  2. Query OK, 1 row affected (0.00 sec)
  3.  
  4. mysql> show databases;
  5. +--------------------+
  6. | Database |
  7. +--------------------+
  8. | information_schema |
  9. | hive |
  10. | mysql |
  11. | performance_schema |
  12. | sys |
  13. +--------------------+
  14. 5 rows in set (0.00 sec)

  

7、拷贝mysql连接驱动到其他未按照hive的节点

  1. [root@cluster2-host1 lib]# scp mysql-connector-java-5.1.48-bin.jar root@cluster2-host2:/usr/local/hive/lib/
  2. mysql-connector-java-5.1.48-bin.jar 100% 983KB 983.4KB/s 00:00
  3. [root@cluster2-host1 lib]# scp mysql-connector-java-5.1.48-bin.jar root@cluster2-host3:/usr/local/hive/lib/
  4. mysql-connector-java-5.1.48-bin.jar

  

三、配置hive的kerberos配置

1、创建主体文件

  1. kadmin.local: addprinc hive/cluster2-host1
  2.  
  3. kadmin.local: ktadd -norandkey -k /etc/security/keytab/hive.keytab hive/cluster2-host1

  

2、拷贝秘钥文件到hive的目录

  1. scp /etc/security/keytab/hive.keytab /usr/local/hive/conf/

  

3、修改hive的配置文件

  1. <property>
  2. <name>hive.server2.enable.doAs</name>
  3. <value>true</value>
  4. </property>
  5. <property>
  6. <name>hive.server2.authentication</name>
  7. <value>KERBEROS</value>
  8. </property>
  9. <property>
  10. <name>hive.server2.authentication.kerberos.principal</name>
  11. <value>hive/cluster2-host1@HADOOP.COM</value>
  12. </property>
  13. <property>
  14. <name>hive.server2.authentication.kerberos.keytab</name>
  15. <value>/usr/local/hive/conf/hive.keytab</value>
  16. </property>
  17. <property>
  18. <name>hive.server2.authentication.spnego.keytab</name>
  19. <value>/usr/local/hive/conf/hive.keytab</value>
  20. </property>
  21. <property>
  22. <name>hive.server2.authentication.spnego.principal</name>
  23. <value>hive/cluster2-host1@HADOOP.COM</value>
  24. </property>
  25. <property>
  26. <name>hive.metastore.sasl.enabled</name>
  27. <value>true</value>
  28. </property>
  29. <property>
  30. <name>hive.metastore.kerberos.keytab.file</name>
  31. <value>/usr/local/hive/conf/hive.keytab</value>
  32. </property>
  33. <property>
  34. <name>hive.metastore.kerberos.principal</name>
  35. <value>hive/cluster2-host1@HADOOP.COM</value>
  36. </property>

  

4、修改hadoop的core-site.xml配置文件

  1. <property>
  2. <name>hadoop.proxyuser.hive.users</name>
  3. <value>*</value>
  4. </property>
  5. <property>
  6. <name>hadoop.proxyuser.hive.hosts</name>
  7. <value>*</value>
  8. </property>

  

5、启动hive

  1. [root@cluster2-host1 hive]# nohup ./bin/hive --service metastore > metastore.log 2>&1 &
  2. [1] 5637
  3. [root@cluster2-host1 hive]# nohup ./bin/hiveserver2 > hive.log 2>&1 &
  4. [2] 7361

  

6、通过beeline的方式连接hive

  1. [root@cluster2-host1 hive]# ./bin/beeline -u "jdbc:hive2://cluster2-host1:10000/default;principal=hive/cluster2-host1@HADOOP.COM"
  2. ls: cannot access /usr/local/spark/lib/spark-assembly-*.jar: No such file or directory
  3. Connecting to jdbc:hive2://cluster2-host1:10000/default;principal=hive/cluster2-host1@HADOOP.COM
  4. Connected to: Apache Hive (version 1.2.0)
  5. Driver: Hive JDBC (version 1.2.0)
  6. Transaction isolation: TRANSACTION_REPEATABLE_READ
  7. Beeline version 1.2.0 by Apache Hive
  8. 0: jdbc:hive2://cluster2-host1:10000/default>

  

7、登陆进去创建hive表

  1. create database myhive;
  2. CREATE TABLE student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORED AS TEXTFILE;

  

查看创建的表

  1. 0: jdbc:hive2://cluster2-host1:10000/default> show tables;
  2. +------------+--+
  3. | tab_name |
  4. +------------+--+
  5. | student |
  6. | test1 |
  7. | test2 |
  8. | test3 |
  9. | test4 |
  10. | test_user |
  11. +------------+--+

  

8、检查mysql有hive的元数据信息

9、准备本地数据

  1. 2014001 小王1
  2. 2014002 小李2
  3. 2014003 小明3
  4. 2014004 阿狗4
  5. 2014005 姚明5

  

10、上传数据

  1. load data local inpath '/data/hive.txt' into table test1;

  

11、查看hdfs上的 数据

  1. [root@cluster2-host1 data]# hdfs dfs -ls /user/hive/warehouse/test1
  2. Found 1 items
  3. -rwxr-xr-x 2 hdfs supergroup 112 2020-03-05 04:55 /user/hive/warehouse/test1/hive.txt

  

kerberos系列之hive认证配置的更多相关文章

  1. kerberos系列之flink认证配置

    大数据安全系列的其它文章 https://www.cnblogs.com/bainianminguo/p/12548076.html-----------安装kerberos https://www. ...

  2. C#进阶系列——WebApi 身份认证解决方案:Basic基础认证

    前言:最近,讨论到数据库安全的问题,于是就引出了WebApi服务没有加任何验证的问题.也就是说,任何人只要知道了接口的url,都能够模拟http请求去访问我们的服务接口,从而去增删改查数据库,这后果想 ...

  3. Hadoop 2.4.1 登录认证配置小结

    1.简单模式 这种模式,配置简单,使用简单. core-site.xml添加 <property> <name>hadoop.security.authorization< ...

  4. #进阶系列——WebApi 身份认证解决方案:Basic基础认证

    阅读目录 一.为什么需要身份认证 二.Basic基础认证的原理解析 1.常见的认证方式 2.Basic基础认证原理 三.Basic基础认证的代码示例 1.登录过程 2./Home/Index主界面 3 ...

  5. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  6. 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...

  7. 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)

    上篇文章<深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)>我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根 ...

  8. Hadoop之Hive(2)--配置Hive Metastore

    Hive metastore服务以关系性数据库的方式存储Hive tables和partitions的metadata,并且提供给客户端访问这些数据的metastore service的API.下面介 ...

  9. nginx用户认证配置( Basic HTTP authentication)

    ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http aut ...

随机推荐

  1. Rime输入法一些设定

    有鉴于谷歌搜狗拼音等不太好用,但是博主一直页没找到合心的输入法,直到遇见Rime,中州韵就是我想要的输入法.记录一下自己用的时候的修改,以备查询.注意:缩进不要弄丢,所有更改完都需要重新部署才能生效. ...

  2. loadrunner通过socket测接口

    #include "lrs.h" Action() {     //建立到服务端的连接     lrs_create_socket("socket1",&quo ...

  3. CentOS使用epel安装不同版本php-fpm

    针对CentOS使用epel安装 yum -y install epel-release安装好后可以通过如下命令查看yum info epel-releaseyum repolist查看php版本ph ...

  4. 事件绑定持有对象引用导致GC不回收对象

    现象 封装了一个部门选择框对象,在第一次创建选择框的时候是正确的,但是在关闭之后再次创建,发现点击事件被调用两次,于是console.log(),发现第一次创建的选择框的数据也被打印了一次,执行两次分 ...

  5. 烘焙ID贴图

    ID贴图(ID Map)的作用主要就是用来区分同一个模型中不同的区块,具体的用法查看此文.下面介绍几种不同的方式来烘焙ID贴图,用到的工具分别是Blender和Substance Painter. 在 ...

  6. OO第四单元总结暨学期总结

    一.第四单元作业架构设计 我们第四单元围绕UML图展开,在第四单元开始之前,本来以为我们的工作是学习如何使用UML工具,开始后才意识到我们要做的是解析UML类图.顺序图和状态图.当然,让我们解析的只是 ...

  7. 5——PHP逻辑运算符&&唯一的三元运算符

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  8. Java入门教程六(内置包装类)

    Java 是一种面向对象的编程语言,Java 中的类把方法与数据类型连接在一起,构成了自包含式的处理单元.但在 Java 中不能定义基本类型对象,为了能将基本类型视为对象处理,并能连接相关方法,Jav ...

  9. AndroidStudio3.x中api、compile和implementation的区别

    首先在AndroidStudio3.x中compile已经过时 由implementation和api来代替 其次compile与api完全等同 3.x中可以完全将compile换成api mplem ...

  10. 进阶之路 | 奇妙的Handler之旅

    前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 需要已经具备的知识: Handler的基本概念及使用 学习导图: 一.为什么要学习Handler? 在Andr ...