accumulo:there are 没有平板服务器

b09cbbtk  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(551)
./bin/accumulo shell -u root
Password:******

2015-02-14 15:18:28,503 [impl.ServerClient] WARN : There are no tablet servers: check that zookeeper and accumulo are running.

2015-02-14 13:58:52,878 [tserver.NativeMap] ERROR: Tried and failed to load native map library from /home/hduser/hadoop/lib/native::/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
java.lang.UnsatisfiedLinkError: no accumulo in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1886)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at org.apache.accumulo.tserver.NativeMap.<clinit>(NativeMap.java:80)
at org.apache.accumulo.tserver.TabletServerResourceManager.<init>(TabletServerResourceManager.java:155)
at org.apache.accumulo.tserver.TabletServer.config(TabletServer.java:3560)
at org.apache.accumulo.tserver.TabletServer.main(TabletServer.java:3671)
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)
2015-02-14 13:58:52,915 [tserver.TabletServer] ERROR: Uncaught exception in TabletServer.main, exiting
java.lang.IllegalArgumentException: Maximum tablet server map memory 83,886,080 and block cache sizes 28,311,552 is too large for this JVM configuration 48,693,248
at org.apache.accumulo.tserver.TabletServerResourceManager.<init>(TabletServerResourceManager.java:166)
at org.apache.accumulo.tserver.TabletServer.config(TabletServer.java:3560)
at org.apache.accumulo.tserver.TabletServer.main(TabletServer.java:3671)
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)

上面的错误显示在tserver\u localhost.log中。有人能帮我解决这个问题吗。我让hadoop在单节点模式下运行,zookeeper运行,我遵循acumulo自述文件中的说明。我不知道如何启动一个平板电脑服务器。有没有关于这方面的解释在自述,有人能帮我这个。

aamkag61

aamkag611#

这是两个问题的结合。
首先,您的accumulo找不到本机库,它将用于卸载内存Map以进行实时编辑。了解accumulo的版本、如何部署accumulo以及查看accumulo-env.sh,将有助于诊断它可能失败的原因(在用户邮件列表上询问是最好的)在“本地Map支持”的“构建”部分下查看您的版本的自述。
例如,版本1.6.1的文章给出了在没有完整源代码树的情况下自己构建它们的建议:
或者,您可以在$accumulo\u home/lib目录中手动解包accumulo本机tarball。更改为当前目录中的accumulo本机目录并发出 make . 然后,将生成的“libaccumulo”库复制到$accumulo\u home/lib/native/map中。
$mkdir-p$accumulo\u home/lib/native/map$cp libaccumulo.*$accumulo\u home/lib/native/map
通常,没有可用的本机库是软故障;accumulo很乐意发出警告,然后依赖纯java实现。
第二个问题是由错误的内存配置引起的。accumulo依赖于单个配置参数来调整本机内存Map和java内存Map的内存使用。本机实现的内存是在jvm堆之外分配的,可以是大量的(在1-16gb范围内,具体取决于目标工作负载)。当使用java实现运行时,相同的配置值会占用最大堆大小中的空间。
根据您的日志输出,您已经为TabletServer配置了~46mb的最大总堆。其中27mb用于块缓存,80mb用于内存Map。您看到的错误是因为这两个值将导致oom。
您可以增加accumulo-env.sh中的java堆总数:


# Probably looks like this

test -z "$ACCUMULO_TSERVER_OPTS" && export ACCUMULO_TSERVER_OPTS="${POLICY} -Xmx48m -Xms48m "

# change this part to give it more memory --^^^^^^

和/或可以调整accumulo-site.xml中本机Map、块缓存和索引缓存应使用的空间

<!-- Amount of space to hold incoming random writes -->
  <property>
    <name>tserver.memory.maps.max</name>
    <value>80M</value>
  </property>

  <!-- Amount of space for holding blocks of data read out of HDFS -->
  <property>
    <name>tserver.cache.data.size</name>
    <value>7M</value>
  </property>

  <!-- Amount of space for holding indexes read out of HDFS -->
  <property>
    <name>tserver.cache.index.size</name>
    <value>20M</value>
  </property>

如何平衡这三者将取决于你有多少内存和你的工作量。请记住,不只是这两件事需要进入整个java堆(比如至少在每个rpc上写入/读取当前单元格的一个副本)。

a5g8bdjr

a5g8bdjr2#

我已经找到了解决办法。我已经从accumulo的config文件夹中删除了所有配置文件,并使用bin文件夹中的bootstrap_config.sh文件,…它根据我提供的输入创建了配置文件,之后我再次初始化accumulo,我能够打开shell,错误消失了。
谢谢你的帮助。

相关问题