【问题标题】:Accumulo initialization exception in VirtualBox CentOS 6.4VirtualBox CentOS 6.4 中的 Accumulo 初始化异常
【发布时间】:2014-10-14 10:05:27
【问题描述】:

我正在尝试启动 Accumulo,但我遇到了一个令人讨厌的异常,该异常似乎与我的虚拟机的某些网络问题有关。我以为是命令

sudo -u accumulo /usr/lib/accumulo/bin/accumulo init --instance-name lumify --password password

将初始化累加器。但是,我收到一条警告,指出已检测到地址更改,然后是致命异常。我注意到accumulo-env.sh 文件中没有定义$ACCUMULO_HOME。我还注意到主文件和从文件中唯一的“主”和“从”是一行写着localhost 的行,而我的IP 地址没有。我在这些文件中将 localhost 更改为我的 IP 地址,但同样的问题仍然存在。

我很确定这是一个 IP 地址问题,但我严格按照说明进行操作。也许这是一个问题,因为我在虚拟机上(即使我正在使用桥接适配器并为我的虚拟机获得了真实的 IP 地址)?

我使用ifconfig 检查我的eth0 连接,它仍然显示192.168.1.232,而我仍然收到消息

Hadoop 文件系统是 hdfs://192.168.1.232:8020

累积数据目录是/accumulo

Zookeeper 服务器是 localhost:2181

然后是警告

检测到地址更改。旧:localhost.localdomain/192.168.1.232:8020 新:localhost.localdomain/127.0.0.1:8020

还有例外

检查文件系统是否已经初始化失败。

看起来即使没有不同的网络,我的虚拟机的 IP 地址与我运行设置时的 IP 地址相同,但我在初始化 accumulo 的过程中得到了这个砖块。

有什么建议吗?堆栈跟踪继续以一个

ConnectException:从 localhost.localdomain/127.0.0.1 调用到 localhost.localdomain:8020 连接异常失败:连接被拒绝

如果有帮助,这里是堆栈跟踪:

[root@localhost conf]# sudo -u accumulo /usr/lib/accumulo/bin/accumulo init --instance-name lumify --password password
2014-08-20 17:49:35,488 [util.Initialize] INFO : Hadoop Filesystem is hdfs://192.168.1.232:8020
2014-08-20 17:49:35,490 [util.Initialize] INFO : Accumulo data dir is /accumulo
2014-08-20 17:49:35,490 [util.Initialize] INFO : Zookeeper server is localhost:2181
2014-08-20 17:49:35,490 [util.Initialize] INFO : Checking if Zookeeper is available. If this hangs, then you need to make sure zookeeper is running


Warning!!! Your instance secret is still set to the default, this is not secure. We highly recommend you change it.


You can change the instance secret in accumulo by using:
   bin/accumulo org.apache.accumulo.server.util.ChangeSecret oldPassword newPassword.
You will also need to edit your secret in your configuration file by adding the property instance.secret to your conf/accumulo-site.xml. Without this accumulo will not operate correctly
2014-08-20 17:49:35,915 [ipc.Client] WARN : Address change detected. Old: localhost.localdomain/192.168.1.232:8020 New: localhost.localdomain/127.0.0.1:8020
2014-08-20 17:49:35,923 [util.Initialize] FATAL: java.io.IOException: Failed to check if filesystem already initialized
java.io.IOException: Failed to check if filesystem already initialized
    at org.apache.accumulo.server.util.Initialize.checkInit(Initialize.java:178)
    at org.apache.accumulo.server.util.Initialize.doInit(Initialize.java:185)
    at org.apache.accumulo.server.util.Initialize.main(Initialize.java:545)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.accumulo.start.Main$1.run(Main.java:103)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.net.ConnectException: Call From localhost.localdomain/127.0.0.1 to localhost.localdomain:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:782)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:729)
    at org.apache.hadoop.ipc.Client.call(Client.java:1242)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202)
    at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:164)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:83)
    at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:629)
    at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1545)
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:820)
    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1380)
    at org.apache.accumulo.server.util.Initialize.isInitialized(Initialize.java:512)
    at org.apache.accumulo.server.util.Initialize.checkInit(Initialize.java:163)
    ... 8 more
Caused by: java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:207)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:528)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:492)
    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:510)
    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:604)
    at org.apache.hadoop.ipc.Client$Connection.access$2100(Client.java:252)
    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1291)
    at org.apache.hadoop.ipc.Client.call(Client.java:1209)
    ... 23 more
Thread "init" died java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.accumulo.start.Main$1.run(Main.java:103)
    at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.RuntimeException: java.io.IOException: Failed to check if filesystem already initialized
    at org.apache.accumulo.server.util.Initialize.main(Initialize.java:549)
    ... 6 more
Caused by: java.io.IOException: Failed to check if filesystem already initialized
    at org.apache.accumulo.server.util.Initialize.checkInit(Initialize.java:178)
    at org.apache.accumulo.server.util.Initialize.doInit(Initialize.java:185)
    at org.apache.accumulo.server.util.Initialize.main(Initialize.java:545)
    ... 6 more
Caused by: java.net.ConnectException: Call From localhost.localdomain/127.0.0.1 to localhost.localdomain:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:782)
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:729)
    at org.apache.hadoop.ipc.Client.call(Client.java:1242)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:202)
    at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:164)
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:83)
    at com.sun.proxy.$Proxy10.getFileInfo(Unknown Source)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:629)
    at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1545)
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:820)
    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1380)
    at org.apache.accumulo.server.util.Initialize.isInitialized(Initialize.java:512)
    at org.apache.accumulo.server.util.Initialize.checkInit(Initialize.java:163)
    ... 8 more
Caused by: java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:599)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:207)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:528)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:492)
    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:510)
    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:604)
    at org.apache.hadoop.ipc.Client$Connection.access$2100(Client.java:252)
    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1291)
    at org.apache.hadoop.ipc.Client.call(Client.java:1209)
    ... 23 more

【问题讨论】:

  • 您能否以您的 accumulo 进程运行的用户身份从您的虚拟机执行 hadoop fs 命令?
  • 您是否尝试过为您的 HDFS 实例使用 DNS 名称而不是 IP?也许在 /etc/hosts 中为该 IP 地址添加一行?
  • 我的 HDFS 实例的 DNS 名称?我怎么会找到那个?我相信 Hadoop 运行在同一个虚拟机上,不确定我是否理解要添加到 /etc/hosts 的内容。并且 accumulo 进程将运行的用户,我认为这将在同一个用户下,但我确实记得我遵循的部分说明,链接在这里:link 创建一个名为 accumulo 的新用户。我将尝试以该用户身份运行 accumulo init 命令?
  • 看起来 HDFS 并没有真正运行。您是否启动了它,访问了 HDFS 监控页面(通常是 localhost:50070),并确认您可以与它进行交互(就像 MikeD 所说的那样)?
  • 我能够访问 localhost:50070 并看到名称节点已启动并正在运行。它显示 NameNode 'localhost:8020' (active) 并提供有关该节点的统计信息,因此它肯定存在。我可以抛出什么命令来查看我可以正确地与之交互?

标签: hadoop virtual-machine accumulo


【解决方案1】:

您应该验证您的 DNS 和 /etc/hosts 设置是否正确配置并且与您的 mastersslaves 文件一致。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-23
    相关资源
    最近更新 更多