我正在尝试访问使用 kerberos 保护的伏隔,这是我的代码片段:
Instanceinst = new ZooKeeperInstance(instanceName, zooServers);
KerberosTokenkt = new KerberosToken(principal, f1,false);
Connectorconn = inst.getConnector(principal, kt);
我收到异常如下:
org.apache.accumulo.core.client.AccumuloException: java.lang.RuntimeException: 如果未启用 Hadoop 安全性,则无法使用 SASL。
at org.apache.accumulo.core.client.impl.ServerClient.execute(ServerClient.java:67)
at org.apache.accumulo.core.client.impl.ConnectorImpl.<init>(ConnectorImpl.java:67)
at org.apache.accumulo.core.client.ZooKeeperInstance.getConnector(ZooKeeperInstance.java:248)
at demo.prg1.AccumuloConnection.main(AccumuloConnection.java:49)
原因:java.lang.Runtime异常:如果未启用 Hadoop 安全性,则无法使用 SASL。
这是意料之中的。Accumulo提供SASL身份验证以支持Kerberos,如在安全的Hadoop安装上实现的那样。请参阅此处的文档。