この投稿はSentryとHiveのバインディングに関するものです。私はしばらくこの問題に直面してきました。SentryとHiveをバインドできません
私の主な目的は、ロールを作成しながら権限を与えられたデータベースとテーブルへのアクセスを提供することです。
すべてのだから、最初、私はその後、私は今、私は、以下のコマンドを実行した場合の役割を作成し、
CREATE ROLE role1;
GRANT ROLE role1 TO GROUP hive;
GRANT SELECT ON DATABASE db1 TO ROLE role1;
GRANT ALL ON URI 'file:///path/to/hive-udfs.jar' TO ROLE role1;
SET ROLE role1;
SHOW CURRENT ROLES;
below-与えられるように真っすぐに特権を与えたClouderaのManagerで歩哨を有効にし、サーバー を再起動しますbeeline
、私はのオブジェクトを作成することによって、コードを使用して同じことを行うときに問題ありのみDEFAULT
データベースとDB1
データベース
SHOW DATABASES;
問題が生じる参照を呼び出して、getAllDatabases()
またはgetAllTables("table_name")
のようなメソッドにアクセスします。ここで私はエラーを取得する:
Caused by: java.lang.NullPointerException
at org.apache.sentry.binding.metastore.SentryHiveMetaStoreClient.getConf(SentryHiveMetaStoreClient.java:161)
at org.apache.sentry.binding.metastore.SentryHiveMetaStoreClient.getHiveAuthzBinding(SentryHiveMetaStoreClient.java:135)
at org.apache.sentry.binding.metastore.SentryHiveMetaStoreClient.filterDatabases(SentryHiveMetaStoreClient.java:98)
at org.apache.sentry.binding.metastore.SentryHiveMetaStoreClient.getAllDatabases(SentryHiveMetaStoreClient.java:65)
at my.data.in.hive.resources.MetadataResource.getDatabase(MetadataResource.java:46)
私が直面してる他の問題は、私はHiveMetaStoreClient
のオブジェクトを作成し、getAllDatabases()
のようなそのメソッドにアクセスするとき、それは特権の概念を捨て、すべてのデータベースは、によって与えられた私を示し、ということですさまざまな役割を果たしています。しかし、私がそのメソッド(listRoleNames()
)にアクセスすると、私は管理者と公開者になります。 beeline
で作成したロールの名前は、role1
としてください。
Cludera ManagerでSentryとHiveを設定する際に問題があるかもしれません。何か問題が起きた可能性があります。それを動作させるために何ができるかについてのアイデアはありますか?バインディングが正しく設定されているかどうかをチェックするあなたの質問
May be there is some problem in configuring Sentry and Hive ...
と与えられたエラーメッセージ
Caused by: java.lang.NullPointerException
at org.apache.sentry.binding.metastore.SentryHiveMetaStoreClient ...
に関しては