使用安全mapr集群建立oozie时面临的hadoop问题

ahy6op9u  于 2021-07-15  发布在  Hadoop
关注(0)|答案(1)|浏览(455)

我们在使用securemapr集群设置oozie服务时遇到了一个问题。
我们正在使用mapr安装程序来设置mapr集群。下面是我们遵循的配置和步骤。
mapr版本-6.1
操作系统-ubuntu 16.04
身份验证-kerberos
节点-单节点
我们通过使用 Enable Secure Cluster 安装程序中的选项。
参考文件-https://docs.datafabric.hpe.com/61/advancedinstallation/using_enable_secure_cluster_option.html
我们已经在机器上安装了kerberos。
参考文件-https://linuxconfig.org/how-to-install-kerberos-kdc-server-and-client-on-ubuntu-18-04
下面是我们为mapr集群设置kerberos身份验证所执行的命令
参考文件-https://docs.datafabric.hpe.com/61/securityguide/configuring-kerberos-user-authentication.htmlhttpshttp://docs.datafabric.hpe.com/61/securityguide/configuringspnegoonmapr.html

sudo kadmin.local
addprinc -randkey mapr/my.cluster.com
ktadd -k /opt/mapr/conf/mapr.keytab mapr/my.cluster.com

addprinc -randkey HTTP/<instance-name>@<realm-name>
ktadd -k /opt/mapr/conf/http.keytab HTTP/<instance-name>@<realm-name>

addprinc -randkey mapr/<instance-name>@<realm-name>
ktadd -k /opt/mapr/conf/mapr2.keytab mapr/<instance-name>@<realm-name>

sudo chown mapr:mapr /opt/mapr/conf/mapr.keytab /opt/mapr/conf/http.keytab /opt/mapr/conf/mapr2.keytab
sudo chmod 777 /opt/mapr/conf/mapr.keytab /opt/mapr/conf/http.keytab /opt/mapr/conf/mapr2.keytab

ktutil
rkt /opt/mapr/conf/mapr.keytab
rkt /opt/mapr/conf/http.keytab
rkt /opt/mapr/conf/mapr2.keytab
wkt /opt/mapr/conf/mapr.keytab

sudo /opt/mapr/server/configure.sh -N my.cluster.com -C <CLDB Node>:7222 -Z <ZookeeperNode>:5181 -K -P "mapr/my.cluster.com@<realm-name>"

注:文件中提到的命令( configure.sh -K -P "<cldbPrincipal>" )抛出错误,但上面的命令有效。

kinit
maprlogin kerberos
hadoop fs -ls

3.1)我们能够访问mapr文件系统。
3.2)我们正在使用下面的命令运行一个简单的mapreduce作业,它工作正常。

hadoop jar /opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0-mapr-1808.jar pi 16 1000

带有kerberos身份验证的oozie配置参考文档-https://docs.datafabric.hpe.com/61/oozie/configuringoozieonasecurecluster.html
我们在oozie-site.xml中添加了以下属性

<property>
    <name>oozie.authentication.type</name>
    <value>kerberos</value>
    <description>
    Defines authentication used for Oozie HTTP endpoint.
    Supported values are: simple | kerberos | #AUTHENTICATION_HANDLER_CLASSNAME#
    </description>
</property>

<property>
    <name>oozie.service.HadoopAccessorService.keytab.file</name>
    <value>/opt/mapr/conf/mapr.keytab</value>
    <description>
      Location of the Oozie user keytab file.
    </description>
</property>

<property>
    <name>local.realm</name>
    <value>{local.realm}</value>
    <description>
      Kerberos Realm used by Oozie and Hadoop. Using 'local.realm' aligns with Hadoop configuration
    </description>
</property>

<property>
    <name>oozie.service.HadoopAccessorService.kerberos.principal</name>
    <value>mapr/<hostname>@${local.realm}</value>
    <description>
       Kerberos principal for Oozie service.
    </description>
</property>

<property>
    <name>oozie.authentication.kerberos.principal</name>
    <value>HTTP/<hostname>@${local.realm}</value>
    <description>
      Indicates the Kerberos principal to be used for the HTTP endpoint. The principal MUST start with 'HTTP/' per the Kerberos HTTP SPNEGO specification.
    </description>
</property>

我们正在使用 bin/oozie admin -status -auth KERBEROS 命令,我们得到下面的错误。
java.io.ioexception:连接oozie服务器时出错。重试次数=1。异常=无法验证,验证失败,状态:302
请帮助我们解决这个问题

knpiaxh1

knpiaxh11#

奥齐总的来说是个可怕的噩梦。添加kerberos并不会让它变得更简单。只是说说而已。
您描述的问题似乎是某个组件没有获得有关您正在使用的kerberos标识的备忘录,或者没有验证访问的访问/权限。这是一个常见的问题,通常需要一步一步的交互来处理已知和未知(但通常是假设的)。不过,我绝对不是这类问题的Maven。
你这里有一个非常优秀的问题报告,这正是支持团队可以使用的。
您是否有积极的支持或合作伙伴?

相关问题