hbase 0.98.5无法在windows上启动

m1m5dgzv  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(544)

我已经在Windows7 pc上下载并安装了HBASe0.98.5。我遵循了apache的入门步骤并进行了修改 base-site.xml 如下所示(配置元素为空oob):

  1. <configuration>
  2. <property>
  3. <name>hbase.rootdir</name>
  4. <value>file:///c:/datastore/hbase</value>
  5. </property>
  6. <property>
  7. <name>hbase.zookeeper.property.dataDir</name>
  8. <value>c:/datastore/zookeper</value>
  9. </property>
  10. </configuration>

启动hbase时,出现以下错误:

  1. 2014-08-13 14:37:26,827 DEBUG [main-EventThread] master.ActiveMasterManager: A master is now available
  2. 2014-08-13 14:37:26,828 WARN [M:0;rzm01:57477] hbase.ZNodeClearer: Environment variable HBASE_ZNODE_FILE not set; znodes will not be cleared on crash by start scripts (Longer MTTR!)
  3. 2014-08-13 14:37:26,829 INFO [M:0;rzm01:57477] master.ActiveMasterManager: Registered Active Master=rzm01.self,57477,1407929845469
  4. 2014-08-13 14:37:26,836 INFO [M:0;rzm01:57477] Configuration.deprecation: fs.default.name is deprecated. Instead, use fs.defaultFS
  5. 2014-08-13 14:37:26,909 FATAL [M:0;rzm01:57477] master.HMaster: Unhandled exception. Starting shutdown.
  6. java.lang.NullPointerException
  7. at java.lang.ProcessBuilder.start(ProcessBuilder.java:1010)
  8. at org.apache.hadoop.util.Shell.runCommand(Shell.java:404)
  9. at org.apache.hadoop.util.Shell.run(Shell.java:379)
  10. at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:589)
  11. at org.apache.hadoop.util.Shell.execCommand(Shell.java:678)
  12. at org.apache.hadoop.util.Shell.execCommand(Shell.java:661)
  13. at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:639)
  14. at org.apache.hadoop.fs.FilterFileSystem.setPermission(FilterFileSystem.java:468)
  15. at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:456)
  16. at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:424)
  17. at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:905)
  18. at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:886)
  19. at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:783)
  20. at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:772)
  21. at org.apache.hadoop.hbase.util.FSUtils.setVersion(FSUtils.java:651)
  22. at org.apache.hadoop.hbase.util.FSUtils.setVersion(FSUtils.java:629)
  23. at org.apache.hadoop.hbase.util.FSUtils.checkVersion(FSUtils.java:587)
  24. at org.apache.hadoop.hbase.master.MasterFileSystem.checkRootDir(MasterFileSystem.java:461)
  25. at org.apache.hadoop.hbase.master.MasterFileSystem.createInitialFileSystemLayout(MasterFileS
  26. ystem.java:152)
  27. at org.apache.hadoop.hbase.master.MasterFileSystem.<init>(MasterFileSystem.java:128)
  28. at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:790)
  29. at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:603)
  30. at org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.run(HMasterCommandLine.java:263)
  31. at java.lang.Thread.run(Thread.java:744)
  32. 2014-08-13 14:37:26,912 INFO [M:0;rzm01:57477] master.HMaster: Aborting
  33. 2014-08-13 14:37:26,912 DEBUG [M:0;rzm01:57477] master.HMaster: Stopping service threads
  34. 2014-08-13 14:37:26,913 INFO [M:0;rzm01:57477] ipc.RpcServer: Stopping server on 57477
  35. 2014-08-13 14:37:26,914 INFO [M:0;rzm01:57477] master.HMaster: Stopping infoServer
  36. 2014-08-13 14:37:26,918 INFO [RpcServer.listener,port=57477] ipc.RpcServer: RpcServer.listener,port=57477: stopping
  37. 2014-08-13 14:37:26,952 INFO [main] regionserver.ShutdownHook: Installed shutdown hook thread: Shutdownhook:RS:0;rzm01:57505

通过看 ProcessBuilder#start() 方法引发异常时,似乎缺少某些参数:

  1. public Process start() throws IOException {
  2. // Must convert to array first -- a malicious user-supplied
  3. // list might try to circumvent the security check.
  4. String[] cmdarray = command.toArray(new String[command.size()]);
  5. cmdarray = cmdarray.clone();
  6. for (String arg : cmdarray)
  7. if (arg == null)
  8. throw new NullPointerException(); // this is line 1010
  9. // Throws IndexOutOfBoundsException if command is empty
  10. String prog = cmdarray[0];

有什么问题吗?

0pizxfdo

0pizxfdo1#

问题是hbase distributive for windows缺少一些hadoop文件。您可以从以下博客下载这些文件:http://www.srccodes.com/p/article/39/error-util-shell-failed-locate-winutils-binary-hadoop-binary-path (感谢abhijit ghosh为windows构建并共享这些文件—否则您必须自己构建它们)。
因此,请按照以下步骤解决问题:
下载或构建适用于windows的hadoop二进制文件和库;
将这些文件(例如winutils.exe、winutils.dll等)复制到 %HBASE_HOME%\bin 编辑 %HBASE_HOME%\conf\hbase-env.cmd :查找行:

  1. set HBASE_OPTS="-XX:+UseConcMarkSweepGC" "-Djava.net.preferIPv4Stack=true"

并在末尾添加以下选项: "-Dhadoop.home.dir=c:\hbase-0.98.5-hadoop2" 哪里 c:\hbase-0.98.5-hadoop2 是您的hbase主目录,因此它将变为:

  1. set HBASE_OPTS="-XX:+UseConcMarkSweepGC" "-Djava.net.preferIPv4Stack=true" "-Dhadoop.home.dir=c:\hbase-0.98.5-hadoop2"`

祝你好运

相关问题