如何在 Jupyter 笔记本中使用 Kerberos 进行身份验证

选择

我在 Cloudera 集群上使用 Jupyter Notebook,需要从 hdfs 读取数据。由于集群是 Kerberized,所以我需要使用我的密钥表进行身份验证,我在我的笔记本中运行了命令:

kinit -kt keytab principal

没问题,我可以通过 klist 看到校长有有效的票

但是,当我尝试访问我有权访问的 hdfs 数据时:

df_load = sparkSession.read.csv('hdfs://cmanagerdev01/user/rxie/data.csv')

我收到以下错误:

Py4JJavaError:调用 o106.csv 时发生错误。:org.apache.hadoop.security.AccessControlException:未启用简单身份验证。可用:[TOKEN, KERBEROS] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingImpl5.javaAccessor4Accessor) java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106) at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException. java:73) 在 org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:2110) 在 org.apache.hadoop.hdfs.DistributedFileSystem$22.doCall(DistributedFileSystem.java:1305) 在 org。java:244) 在 py4j.reflection.ReflectionEngine.invoke(ReflectionEngine.java:357) 在 py4j.Gateway.invoke(Gateway.java:282) 在 py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 在 py4j。 commands.CallCommand.execute(CallCommand.java:79) at py4j.GatewayConnection.run(GatewayConnection.java:238) at java.lang.Thread.run(Thread.java:748) 引起:org.apache.hadoop.ipc .RemoteException(org.apache.hadoop.security.AccessControlException):未启用简单身份验证。可用:[令牌,KERBEROS] 在 org.apache.hadoop.ipc.Client.call(Client.java:1475) 在 org.apache.hadoop.ipc.Client.call(Client.java:1412) 在 org.apache。 hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229) at com.sun.proxy.$Proxy17.getFileInfo(Unknown Source) at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB。

萨拉瓦南·埃鲁马莱

导出 HADOOP_HOME=/etc/hadoop/

导出 HADOOP_CONF_DIR=/etc/hadoop/conf

导出类路径=$类路径:$HADOOP_CONF_DIR

设置这些环境变量应该可以解决问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Nginx进行Kerberos身份验证

如何在conda环境中使用Jupyter笔记本?

如何使用Jupyter笔记本进行彩色打印

如何在 Oracle 中进行 Kerberos 身份验证?

如何使用Spnego / Kerberos和Apache的HttpClient进行身份验证?

如何构建在jupyter笔记本中使用的GUI?

使用Java对启用Kerberos的Hadoop集群进行身份验证

使用SSH进行跨领域Kerberos身份验证

如何在Azure活动目录中使用kerberos身份验证实现单点登录

如何在pycharm 2018.1上的jupyter笔记本中使用远程解释器

如何在jupyter笔记本中使用python向图像添加视觉注释?

Python和R:如何在Jupyter笔记本中使用Pyper显示图?

如何在Jupyter笔记本中对熊猫使用tqdm?

如何使用存储在git上的Jupyter笔记本的nbdiff-web进行比较?

Kerberos身份验证如何工作

如何在Tornado中使用OpenID进行身份验证?

使用小部件在Jupyter笔记本中使用提交按钮进行输入

在jupyter笔记本中使用pyspark时如何指定驱动程序类路径?

如何使用HttpURLconnection进行身份验证

如何在Django频道上使用令牌身份验证对Websocket进行身份验证?

如何在Jupyter笔记本中使用bokeh将多选窗口小部件链接到数据表?

带有身份验证的ipython / Jupyter笔记本

如何生成用于与Java Kerbernos Http Client一起使用Active Directory kerberos进行身份验证的login.conf和krb5.ini?

如何使用输出保存Jupyter笔记本

如何使用CSV输入共享Jupyter笔记本

如何在没有令牌身份验证的情况下使用 jupyter notebook?

当您可以通过ldap进行身份验证和授权时,为什么要使用kerberos?

为什么 Hadoop 使用 Kerberos 而不是 PKI/OAuth 进行身份验证?

在Linux上使用Kerberos从Java程序进行Windows服务身份验证