因为开发环境需要迁移,将原来HBase中的表使用 org.apache.hadoop.hbase.mapreduce.Export 工具序列化到hdfs后下载出来,在新的开发环境中导入。导入时遇到了两个问题。


问题一:导入失败提示User hbase cannot submit applications to queue root.hbase

wKiom1haiADgbh6dAABSuAn1HZM260.png

解决方法:

登录到yarn集群管理节点Resource Manager机器上/etc/hadoop 路径 ,修改fair-scheduler.xml 

vi /etc/hadoop/fair-scheduler.xml,新增以下内容(所有的Resource Manager节点都需要修改),保存退出。不需要重启集群和组件

<queue name='hbase'>
  <weight>1</weight>
  <schedulingPolicy>drf</schedulingPolicy>
  <aclSubmitApps>hdfs,hbase,hive</aclSubmitApps>
  <aclAdministerApps>hbase</aclAdministerApps>
  <minResources>100 mb,10 vcores</minResources>
  <maxResources>10240 mb,50 vcores</maxResources>
  <maxRunningApps>50</maxRunningApps> 
</queue>


问题二:导入失败,终端没有按正常进度走,也没有相关错误提示。

查看yarn 中的job日志发现如下信息

wKiom1haiBbg3fLPAAAbP_cgQXY838.png

解决方法:

去系统下查看hbaseiduid=482(hbase)yarn的配置中有一项为“min.user.id”最小用户id这里配置了1000。修改为300后问题排除。

这个配置的作用是允许的最小 Linux 用户 ID。用于阻止其他超级用户。