cloudera cdh4上的accumulo-启动组件时拒绝访问

im9ewurl  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(353)

我用cloudera cdh4 hadoop和map reduce v1建立了一个小集群并运行。namenode/secondary namenode/jobtracker都在不同的机器上。我的三台服务器也充当zookeeper服务器。
我正在尝试在这个集群上安装Accumulo1.4.4。我在Accumulo1.5.0上也有同样的表现。我可以 bin/accumulo init 初始化accumulo,但启动单个组件失败。我想让我的名字成为accumulo大师。 bin/start-server.sh localhost monitor 吐出一个非常鼓舞人心的 Starting monitor on localhost ,但什么也没有开始。如果我检查logs/monitor\u localhost.err,我会发现一个stacktrace:

-bash-4.1$ cat logs/monitor_localhost.err
Thread "monitor" died null
java.lang.reflect.InvocationTargetException
    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:622)
    at org.apache.accumulo.start.Main$1.run(Main.java:91)
    at java.lang.Thread.run(Thread.java:701)
Caused by: java.lang.ExceptionInInitializerError
    at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2464)
    at org.apache.hadoop.fs.FileSystem$Cache$Key.<init>(FileSystem.java:2456)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2323)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:351)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:163)
    at org.apache.accumulo.core.file.FileUtil.getFileSystem(FileUtil.java:554)
    at org.apache.accumulo.core.client.ZooKeeperInstance.getInstanceIDFromHdfs(ZooKeeperInstance.java:258)
    at org.apache.accumulo.server.conf.ZooConfiguration.getInstance(ZooConfiguration.java:65)
    at org.apache.accumulo.server.conf.ServerConfiguration.getZooConfiguration(ServerConfiguration.java:49)
    at org.apache.accumulo.server.conf.ServerConfiguration.getSystemConfiguration(ServerConfiguration.java:58)
    at org.apache.accumulo.server.monitor.Monitor.run(Monitor.java:440)
    at org.apache.accumulo.server.monitor.Monitor.main(Monitor.java:433)
    ... 6 more
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessDeclaredMembers)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:399)
    at java.security.AccessController.checkPermission(AccessController.java:557)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at java.lang.Class.checkMemberAccess(Class.java:2237)
    at java.lang.Class.getDeclaredFields(Class.java:1805)
    at org.apache.hadoop.util.ReflectionUtils.getDeclaredFieldsIncludingInherited(ReflectionUtils.java:315)
    at org.apache.hadoop.metrics2.lib.MetricsSourceBuilder.initRegistry(MetricsSourceBuilder.java:92)
    at org.apache.hadoop.metrics2.lib.MetricsSourceBuilder.<init>(MetricsSourceBuilder.java:56)
    at org.apache.hadoop.metrics2.lib.MetricsAnnotations.newSourceBuilder(MetricsAnnotations.java:42)
    at org.apache.hadoop.metrics2.impl.MetricsSystemImpl.register(MetricsSystemImpl.java:212)
    at org.apache.hadoop.metrics2.MetricsSystem.register(MetricsSystem.java:54)
    at org.apache.hadoop.security.UserGroupInformation$UgiMetrics.create(UserGroupInformation.java:97)
    at org.apache.hadoop.security.UserGroupInformation.<clinit>(UserGroupInformation.java:190)
    ... 18 more

accesscontrolexception:accessdenied对我来说很重要,但我无法想象什么访问被限制了。我以hdfs用户的身份运行一切,它拥有整个/opt/acumulo-1.4.4/目录,其中acumulo没有tar。hdfs中的/acumulo目录也归hdfs用户所有。selinux是允许的。网上搜索已经证明是徒劳的,有人处理过这个错误吗?
非常感谢。

bis0qfac

bis0qfac1#

我开始浏览apache accumulo用户邮件列表存档,并找到了解决方案。
http://mail-archives.apache.org/mod_mbox/accumulo-user/201312.mbox/%3cb9cb2b2bf27f0f46b8ecf781831e00e710970a9f%400015-its-exmb10.us.saic.com%3e
我正在将acumulo.policy.example复制到acumulo.policy,因为我认为在配置中需要它。一旦我删除了acumulo.policy文件,我的问题就消失了,我已经能够支持acumulo(至少1.5.0,1.4.4还有一些问题需要解决)

相关问题