我正在尝试访问由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。