[ElasticSearch填坑]创建hdfs repository: Permission Denied

ElasticSearch作为数据库类软件,提供了宜用的备份还原功能。不过想使用备份功能,必须事先创建repository用于保存snapshot文件。本文记录了在创建hdfs类型的repository时遇到的坑。

HDFS Permission Denied

在创建repository失败,返回错误详情里包含下面内容:

Permission denied: user=esuser, access=WRITE, inode="/user/esuser/repository":hdfs:supergroup:drwxr-xr-x

意思是esuser用户对hdfs的/user/es/repository目录无写权限。各种google,找到原因:我们的hadoop集群未开启用户验证(因为在内网环境中安全上已经相对有保证),在创建repository时就未使用security.principal。在这种情况下,ElasticSearch会使用启动实例的用户esuser来在hdfs创建repository指定的目录,染鹅该用户并没有这个权限。

那么问题来了,怎么解决?2个方案:

  • 方案1: 开启hadoop服务器的Kerberos (KRB5)认证,生成krb5.keytab文件并拷贝到ElasticSearch服务器上。具体步骤自行google。最后创建repository使用security.principal`参数。

  • 方案2: 既然知道是用户权限的原因,那么采用最直接的方法,给该用户开启对于指定目录的读写权限

hdfs dfs –mkdir -p /user/esuser
hdfs dos –chown -R esuser:supergroup /user/esuser

你可能感兴趣的:([ElasticSearch填坑]创建hdfs repository: Permission Denied)