Accumulo:用户名或密码无效

时间:2015-05-28 05:44:18

标签: accumulo

所以我已按照Accumulo User Manual中的说明配置并初始化了accumulo。

conf/accumulo-site.xml中,我将trace.user设置为accumulo_tracer,我还创建了一个具有相同名称的系统用户。此外,我将密码存储在trace.token.property.password属性下的同一文件中。

然而,在./bin/start-all.sh之后,一切都很好,包括accumulo UI。但logs/tracer_localhost.log文件中显示以下错误。

2015-05-28 10:58:46,229 [watcher.MonitorLog4jWatcher] INFO : Enabled log-forwarding
2015-05-28 10:58:46,254 [server.Accumulo] INFO : tracer starting
2015-05-28 10:58:46,254 [server.Accumulo] INFO : Instance 48f5f9cf-f08d-4736-b504-335b044a2d88
2015-05-28 10:58:46,255 [server.Accumulo] INFO : Data Version 6
2015-05-28 10:58:46,255 [server.Accumulo] INFO : Attempting to talk to zookeeper
2015-05-28 10:58:46,430 [server.Accumulo] INFO : ZooKeeper connected and initialized, attempting to talk to HDFS
2015-05-28 10:58:46,430 [server.Accumulo] INFO : Connected to HDFS
2015-05-28 10:58:46,432 [watcher.MonitorLog4jWatcher] INFO : Changing monitor log4j address to localhost:4560
2015-05-28 10:58:46,433 [watcher.MonitorLog4jWatcher] INFO : Enabled log-forwarding
2015-05-28 10:58:46,510 [watcher.MonitorLog4jWatcher] INFO : Set watch for Monitor Log4j watcher
2015-05-28 10:58:46,638 [tracer.TraceServer] INFO : Waiting to checking/create the trace table.
org.apache.accumulo.core.client.AccumuloSecurityException: Error BAD_CREDENTIALS for user accumulo_tracer - Username or Password is Invalid
    at org.apache.accumulo.core.client.impl.ServerClient.execute(ServerClient.java:65)
    at org.apache.accumulo.core.client.impl.ConnectorImpl.<init>(ConnectorImpl.java:66)
    at org.apache.accumulo.server.client.HdfsZooInstance.getConnector(HdfsZooInstance.java:156)
    at org.apache.accumulo.tracer.TraceServer.<init>(TraceServer.java:201)
    at org.apache.accumulo.tracer.TraceServer.main(TraceServer.java:303)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.accumulo.start.Main$1.run(Main.java:141)
    at java.lang.Thread.run(Thread.java:745)
Caused by: ThriftSecurityException(user:accumulo_tracer, code:BAD_CREDENTIALS)
    at org.apache.accumulo.core.client.impl.thrift.ClientService$authenticate_result$authenticate_resultStandardScheme.read(ClientService.java:15613)
    at org.apache.accumulo.core.client.impl.thrift.ClientService$authenticate_result$authenticate_resultStandardScheme.read(ClientService.java:15591)
    at org.apache.accumulo.core.client.impl.thrift.ClientService$authenticate_result.read(ClientService.java:15535)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:78)
    at org.apache.accumulo.core.client.impl.thrift.ClientService$Client.recv_authenticate(ClientService.java:500)
    at org.apache.accumulo.core.client.impl.thrift.ClientService$Client.authenticate(ClientService.java:486)
    at org.apache.accumulo.core.client.impl.ConnectorImpl$1.execute(ConnectorImpl.java:69)
    at org.apache.accumulo.core.client.impl.ConnectorImpl$1.execute(ConnectorImpl.java:66)
    at org.apache.accumulo.core.client.impl.ServerClient.executeRaw(ServerClient.java:100)
    at org.apache.accumulo.core.client.impl.ServerClient.execute(ServerClient.java:63)
    ... 10 more
2015-05-28 10:58:47,469 [server.Accumulo] WARN : System swappiness setting is greater than ten (60) which can cause time-sensitive operations to be delayed.  Accumulo is time sensitive because it needs to maintain distributed lock agreement.

任何可能遗漏某些内容的帮助或指导都会非常有帮助! 提前谢谢!

2 个答案:

答案 0 :(得分:0)

您无需使用该名称创建系统用户。您需要的是创建具有该名称的 Accumulo 用户。您可以在accumulo shell中以(Accumulo)root用户$ACCUMULO_HOME/bin/accumulo shell -u root执行此操作。您还需要向用户授予表创建表的权限。请参阅shell中的help grant以了解如何为该用户设置CREATE_TABLE系统权限。

答案 1 :(得分:0)

所以这就解决了我的问题:一个新的 init !!

因此,在 init 阶段,我为 root 用户提供了密码,并且我应该在 conf / accumulo-site中提及相同的密码.XML

<property>
  <name>instance.secret</name>
  <value>your_own_secret_password</value>
  <description>A secret unique to a given instance that all servers must know in order to communicate with one another.
  Change it before initialization. To
  change it later use ./bin/accumulo org.apache.accumulo.server.util.ChangeSecret --old [oldpasswd] --new [newpasswd],
  and then update this file.
  </description>
</property>

之后,一切都像魅力一样。希望有所帮助。发布任何疑问,都很乐意提供帮助。