Я использую Hive на Hadoop и успешно установил его в Google Cloud Storage, используя bdutil версии 1.3.1. Я выполнил следующую команду:
./bdutil -e platforms/hdp/ambari_env.sh deploy
Как пользователь улья, я могу без проблем создавать/удалять базы данных и таблицы:
hive> create database db_final location 'gs://cip-hadoop-dev-data/apps/hive/warehouse/db_final';
OK
Time taken: 1.816 seconds
Но я получаю следующую ошибку, если пытаюсь получить доступ к базе данных как любой другой пользователь:
hive> use db_final;
FAILED: SemanticException MetaException(message:java.security.AccessControlException: Permission denied: user=andy, path="gs://cip-hadoop-dev-data/apps/hive/warehouse/db_final":hive:hive:drwx------)
Я могу сказать, что это ошибка с разрешениями, так как права доступа к файлу 700, что указано выше и подтверждается из командной строки:
[andy@hadoop-m ~]$ hdfs dfs -ls gs:///apps/hive/warehouse/
drwx------ - andy andy 0 2015-09-11 01:46 gs:///apps/hive/warehouse/db_final
Я попытался изменить права доступа к файлу с помощью команды hdfs, но они остались прежними:
[andy@hadoop-m ~]$ sudo hdfs dfs -chmod 750 gs:///apps/hive/warehouse/db_final
[andy@hadoop-m ~]$ hdfs dfs -ls gs:///apps/hive/warehouse/
drwx------ - andy andy 0 2015-09-11 01:46 gs:///apps/hive/warehouse/db_final
Я также предоставил пользователю разрешения SELECT для базы данных, что удалось, но я все еще получаю ту же ошибку, когда пытаюсь использовать базу данных.
Это похоже на эта проблема, но я использую последнюю версию bdutil, поэтому не знаю, та же ли это проблема. Я также подтвердил, что для dfs.permissions.enabled установлено значение false.
Таким образом, все работает нормально, если я запускаю его как пользователь улья, но я не хочу отправлять имя пользователя/пароль улья всем, кому нужен доступ к базе данных.
Что еще я должен попробовать / изучить?
Спасибо за вашу помощь