我正在尝试初始化accumulo。我正在hadoop2.0.0-cdh4.4.0上配置accumulo。我在一本MAC书上使用tars。
初始化accumulo : bin/accumulo init时,我收到一个错误。java.io.IOException: Mkdirs无法创建/accumulo/instance_id错误。
日志上写着:
2014-05-24 01:24:33,935 [util.Initialize] FATAL: Failed to initialize filesystem
java.io.IOException: Mkdirs failed to create /accumulo/instance_id
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:447)
at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:433)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:886)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:867)
at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:829)
at org.apache.hadoop.fs.FileSystem.createNewFile(FileSystem.java:1129)
at org.apache.accumulo.server.util.Initialize.initFileSystem(Initialize.java:269)
at org.apache.accumulo.server.util.Initialize.initialize(Initialize.java:213)
at org.apache.accumulo.server.util.Initialize.doInit(Initialize.java:199)
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: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:103)
at java.lang.Thread.run(Thread.java:744)
2014-05-24 01:24:33,937 [conf.Configuration] WARN : fs.default.name is deprecated. Instead, use fs.defaultFS
2014-05-24 01:24:33,937 [util.Initialize] FATAL: Default filesystem value ('fs.defaultFS' or 'fs.default.name') was found in the Hadoop configuration
2014-05-24 01:24:33,938 [util.Initialize] FATAL: Please ensure that the Hadoop core-site.xml is on the classpath using 'general.classpaths' in accumulo-site.xml请建议我,我试图通过在hdfs上创建/accumulo,/user/accumulo来修复这个问题,并给了777权限。
发布于 2014-05-25 05:07:51
根本原因是Hadoop jars和配置没有放在Accumulo的类路径中。我不熟悉Cloudera是如何打包Hadoop工件的。
如果您在堆栈跟踪中注意到,它列出了ChecksumFileSystem类而不是DistributedFileSystem。这意味着Accumulo不知道您正在尝试写入的HDFS实例,而是退回到使用本地文件系统(这就是ChecksumFileSystem正在做的事情)。
要解决此问题,请检查Accumulo配置文件中的一些内容。首先,确保在accumulo-env.sh中正确定义了HADOOP_PREFIX和HADOOP_CONF_DIR。其次,确保在accumulo-site.xml中为general.classpaths配置的值都存在,特别是引用HADOOP_PREFIX和HADOOP_CONF_DIR的值。
https://stackoverflow.com/questions/23842266
复制相似问题