我正在尝试初始化accumulo。我在hadoop2.0.0-cdh4.4.0上配置accumulo。 我在MAC书上使用焦油。
初始化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权限。
答案 0 :(得分:3)
根本原因是Hadoop jar和配置没有放在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的值。