问题描述

在客户端执行hbase org.apache.hadoop.hbase.mapreduce.ImportTsv命令的时候报如下错误:

initialize at /usr/local/hadoop/hbase-release/lib/ruby/hbase/hbase.rb:42
    (root) at /usr/local/hadoop/hbase-release/bin/hirb.rb:131

尝试直接执行hbase shell命令,依然报上面的错误,找问题吧。

心路历程

  • 起初
    是以为服务器的jdk版本的问题,因为开发环境和测试环境的jdk版本的确不一样,一顿操作之后不生效,试着调整之后依然报这个错误,不是这个问题所导致的。

  • 度娘
    -直接百度查询,知道是hbase.tmp.dir设置的路径,hbase没有读写权限。
    具体的配置文件为/etc/hbase/conf/hbase-site.xml,找到hbase.tmp.dir相关的property就可看到的自己的hbase.tmp.dir地址。

解决办法

  1. 原因是因为客户端初始化安装的时候没有自动生成这个目录,所以报上面那个错误。
  2. 如果不是上面原因,可能是权限不足,需添加权限即可,直接添加777权限,一步到位。

参考链接

https://community.hortonworks.com/content/supportkb/150642/unable-to-start-hbase-shell-due-to-javaioioexcepti.html
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐