我正在尝试访问由kerberos保护的累加器,这是我的代码段:

实例inst =新的ZooKeeperInstance(instanceName,zooServers);

KerberosToken kt =新的KerberosToken(principal,f1,false);

连接器conn = inst.getConnector(principal,kt);

我收到如下异常:

org.apache.accumulo.core.client.AccumuloException:java.lang.RuntimeException:如果未启用Hadoop安全性,则无法使用SASL

在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.RuntimeException:如果未启用Hadoop安全性,则无法使用SASL

最佳答案

这是预期的。 Accumulo提供SASL身份验证以支持Kerberos,这在安全的Hadoop安装中实现。参见the documentation here

10-07 18:19