• hive集成kerberos


    1、票据的生成

    kdc服务器操作,生成用于hive身份验证的principal

    1.1、创建principal

    # kadmin.local -q “addprinc -randkey hive/yjt”

    1.2、创建秘钥文件

    # kadmin.local -q “xst  -norankey  -k  /etc/hive.keytab hive/yjt”

    拷贝秘钥文件到集群,root操作或者有root权限的普通用户操作

    # scp /etc/hive.keytab 192.168.0.230:/data1/hadoop/hive/conf

    连接到集群,修改文件权限

    # chown hduser:hadoop /data1/hadoop/hive/conf/hive.keytab

    # chomd 400 /data1/hadoop/hive/conf/hive.keytab

    1.3、修改配置文件

    Hive-site.xml配置文件添加如下信息:

    <property>

      <name>hive.server2.authentication</name>

      <value>KERBEROS</value>

    </property>

    <property>

      <name>hive.server2.authentication.kerberos.principal</name>

      <value>hive/_HOST@HADOOP.COM</value>

    </property>

    <property>

      <name>hive.server2.authentication.kerberos.keytab</name>

      <value>/data1/hadoop/hive/conf/hive.keytab</value>

    </property>

    <property>

      <name>hive.metastore.sasl.enabled</name>

      <value>true</value>

    </property>

    <property>

      <name>hive.metastore.kerberos.keytab.file</name>

      <value>/data1/hadoop/hive/conf/hive.keytab</value>

    </property>

    <property>

      <name>hive.metastore.kerberos.principal</name>

      <value>hive/_HOST@HADOOP.COM</value>

    </property>

    2、集群内部测试

    2.1、获取票据

    # kinit -kt /data1/hadoop/hive/conf/hive.keytab hive/yjt

    获取到票据以后,使用klist查看获取的票据是否正确。

     

    2.2beeline测试

    当前测试的hive版本是2.1.0,这个版本集成的hadoop版本是2.5.x,所以需要更换lib库下的hadoop版本或者下载一个高版本

    这里拷贝hbase/lib库下的hadoop版本到hive,拷贝之前先删除hve/lib库下的有关hadoop版本的jar包,如下:

    # cp /data1/hadoop/hbase/lib/hadoop-*.jar /data1/hadoop/hive/lib

    使用beeline连接

    # beeline

    beeline> !connect jdbc:hive2://yjt:10000/;principal=hive/yjt@HADOOP.HOME -n hduser

    0: jdbc:hive2://yjt:10000/> show tables;

    +------------+--+

    |  tab_name  |

    +------------+--+

    | user_info  |

    +------------+--+

    1 row selected (2.363 seconds)

    0: jdbc:hive2://yjt:10000/>

    2.2hive shell测试

    (1)、测试mr引擎

    默认就是mr引擎,所以不用修改说明配置

    hive> select count(*) from user_info;

    如果成功,说明配置ok

    (2) 、测试tez引擎

    切换引擎:

    hive> set hive.execution.engine=tez;

     

    3、客户端测试

    3.1、安装hive

    这里我们直接从集群内部拷一份hive配置到客户端

    3.2、获取认证用户

    # kinit -kt /data1/hadoop/hive/conf/hive.keytab   hive/yjt

     

    3.3、测试beeline

    #beeline

    beeline> !connect jdbc:hive2://yjt:10000/;principal=hive/yjt@HADOOP.HOME -n hduser

    0: jdbc:hive2://yjt:10000/> show tables;

     

    3.4、测试hive shell

    (1)mr引擎

    select count(*) from user_info;

    (2)tez引擎

    从集群拷贝tez软件目录到客户端

    #scp -r /data1/hadoop/tez 192.168.0.9:/data1/hadoop

    hive> set hive.execution.engine=tez;

    hive> select count(*) from user_info;

    注:上述在客户端的测试全部都是使用hduser用户,这个用户与集群内部启动集群进程的用户是一样的,接下来在客户端使用其他的用户测试。

    3.5 测试其他用户

    客户端创建yujt用户

    # useradd yjt

    # echo ‘123456’ |passwd --stdin ‘yujt’

    修改hive.keytab权限(在一开始设置的权限为400)

    # chmod 404 /data1/hadoop/hive/conf/hive.keytab

    #su - yujt

    获取认证用户

    $ kinit -kt /data1/hadoop/hive/conf/hive.keytab hive/yjt

    $hive shell

    hive> select count(*) from user_info;  

    如果配置正确,上述任务执行状态ok

    切换到tez引擎

     

  • 相关阅读:
    坐标变化
    labelme VOC
    threejs物体设置中心坐标
    IfcProjectOrderTypeEnum
    IfcCostItemTypeEnum
    利用Mono.Cecil动态修改程序集来破解商业组件(仅用于研究学习)
    依赖注入框架Autofac的简单使用
    阿里技术嘉年华官网上线啦!
    Silverlight 4以下版本模拟鼠标双击事件
    iOS学习系列 利用ASIHTTPRequest实现异步队列
  • 原文地址:https://www.cnblogs.com/yjt1993/p/11769553.html
Copyright © 2020-2023  润新知