zoukankan      html  css  js  c++  java
  • kerberos和hadoop的集成

    继续说一下Kerberos与Hadoop的集成。

    其实这个话题在网上已经很普遍了,没什么太新鲜的。就是顺带说一下吧,Hadoop账号的集成与管理。

    之前已经装了kdc和kadmin,所以接下来就需要创建hadoop相关的账号了。

    首先需要用kadmin进入kerberos管理prompt,这里需要输入之前创建的admin账号的密码。

    然后就可以创建了,用 ? 可以查看允许使用的命令。比如我们创建如下账号。

    addprinc -randkey hdfs/master.hadoop@HADOOP.COM
    xst -k hdfs.keytab
    addprinc -randkey HTTP/master.hadoop@HADOOP.COM
    xst -k HTTP.keytab
    #生成了两个账号及其keytab,然后退出prompt回到shell。进入ktutil
    rkt hdfs.keytab
    rkt HTTP.keytab
    wkt hdfs.keytab
    这样就把原始的hdfs.keytab和HTTP.keytab合并成了新的hdfs.keytab

    先创建与hdfs相关的账号,最后我们是要把这些账号创建成免密码的keytab文件的,在Hadoop里面,最好是把同一类服务创建成一个keytab,比如,hdfs和HTTP同属于hadoop的HDFS服务,所以,我们先创建这两个账号并将这两个账号的信息合并到一个keytab里面。

    以此类推,可以创建yarn/master.hadoop@HADOOP.COM,mapred/master.hadoop@HADOOP.COM,oozie, hive...等等账号。

    然后修改hdfs-site.xml,加入

      <property>
        <name>dfs.namenode.keytab.file</name>
        <value>hdfs.keytab</value>
      </property>
      <property>
        <name>dfs.namenode.kerberos.principal</name>
        <value>hdfs/_HOST@PG.COM</value>
      </property>
      <property>
        <name>dfs.namenode.kerberos.internal.spnego.principal</name>
        <value>HTTP/_HOST@PG.COM</value>
      </property>
      <property>
        <name>dfs.datanode.kerberos.principal</name>
        <value>hdfs/_HOST@PG.COM</value>
      </property>
      <property>
        <name>dfs.journalnode.kerberos.principal</name>
        <value>hdfs/_HOST@PG.COM</value>
      </property>
      <property>
        <name>dfs.journalnode.kerberos.internal.spnego.principal</name>
        <value>HTTP/_HOST@PG.COM</value>
      </property>
      <property>
        <name>dfs.cluster.administrators</name>
        <value>hdfs</value>
      </property>

    以此类推,也可以把yarn/master.hadoop@HADOOP.COM的keytab与HTTP的keytab合并,还有mapred账号也可以合并,当然,前提是你需要用到spnego的http登录认证服务,如果不需要spnego,可以不添加HTTP的账号。

    https://blog.51cto.com/slaytanic/2110967

  • 相关阅读:
    python之路--day22--多态....property..calssmethod....staticmethod
    python之路--day21--组合与封装
    内存数据库
    什么时候调用:拷贝构造函数、赋值运算符
    类成员初始化顺序
    HTTP、TCP、UDP的区别
    进程和线程的区别
    C++中类的静态成员与实例成员的区别
    设计模式
    const函数
  • 原文地址:https://www.cnblogs.com/zourui4271/p/13300079.html
Copyright © 2011-2022 走看看