LoginSignup
9
3

More than 5 years have passed since last update.

Kerberizedクラスターを構築しSentryの挙動を確認する

Last updated at Posted at 2017-01-23

HDFSのパーミッション, HDFS-ACL, Sentryの違い

  • HDFSのパーミッション
    • いわゆるLinuxのパーミッション的なもの。ファイル、ディレクトリに対してユーザ/グループ単位でオーナーを付与する。
  • HDFS-ACL
    • HDFSのファイルやディレクトリに対してユーザ/グループ単位で権限を付与する。POSIX ACLやActive Directory的なもの。一つのファイル/ディレクトリに対して複数のユーザ/グループの権限を細かく設定できる
  • Sentry
    • Hive,ImpalaなどSQL on Hadoop向けののDB/テーブルの権限管理のためのもの。role groupベースで権限を管理する

HDFSでややこしいのが、たまたまHiveのテーブルもHDFSのディレクトリで表現されるため、Sentryの権限とHDFS-ACLの権限が混乱しやすいです。(僕は色々勘違いをしていました)

HDFS-ACLは明示的に有効にしてはじめて使えるものです。詳しくはドキュメントを参照ください。
http://www.cloudera.com/documentation/enterprise/latest/topics/cdh_sg_hdfs_ext_acls.html

Kerberosの設定

まず、これらを読みます。

Kerberosの設定の仕方は、Cloudera Manager によるクラスタのKerberos化 - Qiitaも参考にします。

今回はAWS上のCloudera Directorでクラスタを作ります。
DirectorのインストールはCloudera Director のインストール方法 - Qiitaを参考にするといいでしょう。

Directorの入っているインスタンスに、KDCを入れて設定します。便利なkrb-bootstrapというスクリプトがあるので、今回はそれで試してみます。

なお、krb-bootstrapはテスト用にKDCの環境を作るものですので、本番環境には利用しないでください。

$ yum -y install git
$ git clone https://github.com/daisukebe/krb-bootstrap.git
$ cd krb-bootstrap
$ ./configure_krb5.sh

そうすると、以下のprincipalがスクリプトによって作られます。

  • hive@HADOOP
  • hdfs@HADOOP

Clouder DirectorによるKerberized Clusterの作成

次にCloudera DirectorのWeb UIでクラスタを作成します。
ドキュメントにはCloudera Director clientを使ったconfiguration fileを使った設定方法があります。

こちらに従いKerberos環境を構築します。

krb-bootstrapを使ってKDCを設定している場合、conf fileの変更点としては、以下の通りになります。

-krbAdminUsername: "REPLACE-ME"
+krbAdminUsername: "cloudera-scm/admin"
-krbAdminPassword: "REPLACE-ME"
+krbAdminPassword: "cloudera"

-            KDC_TYPE: "Active Directory"
+            KDC_TYPE: "MIT KDC"
-            KDC_HOST: "REPLACE-ME"
+            KDC_HOST: "自分のdirector serverのhost名"
-            SECURITY_REALM: "REPLACE-ME"
+            SECURITY_REALM: "HADOOP"
-            KRB_ENC_TYPES: "aes256-cts aes128-cts des3-hmac-sha1 arcfour-hmac des-hmac-sha1 des-cbc-md5 des-cbc-crc"
+            KRB_ENC_TYPES: "rc4-hmac"

なお、暗号化の方式は今回はテスト用なのでrc4-hmacを使っていますが、本番環境ではAES-256をお使いください。
http://www.cloudera.com/documentation/enterprise/latest/topics/cdh_sg_jce_policy_file_install.html

以降は通常通り、Director Clientからクラスタを起動すればOKです。
今回はテスト用にgatewayサーバは立てず、workerノードも1インスタンスのみにしています。
Sentryはクラスタ起動後にCloudera Managerから入れます。

Sentryの導入

Yet Another HDIF? — Apache Sentryで始めるアクセス制御 (Hive編)を参考にしながら、CMで頑張ります。

Hive Server2のimpersonationの無効化と、HiveでのSentryの有効化をお忘れなく...。

image
image

principalの作成

Sentryはroleベースで権限を管理します。SentryはACLのgroupに対してパーミッションを管理するものですが、今回は簡略化のためにhiveとcentosをgroupだと思って進めていきます。

Cloudera DirectorのインスタンスでKDCの管理コンソールにログインし、centos@HADOOPというprincipalを作ります

$ sudo kadmin.local
 ...snip...
kadmin.local: addprinc centos
 ...snip...
kadmin.local: exit

正しく設定できていれば、kinitでチケットの発行ができます。

$ kinit centos

Sentryの権限の付与

続いて、クラスタのmasterサーバでbeelineを用いて、Sentryの権限を付与します
Sentryの権限付与の詳細についてはドキュメントを参照してください。

今回はadmincommonというroleを作ります。adminにはhive groupを、commonにはcentos groupを追加します。

$ beeline
beeline> !connect jdbc:hive2://ip-10-0-1-111.ap-northeast-1.compute.internal:10000/default;principal=hive/ip-10-0-1-111.ap-northeast-1.compute.internal@HADOOP

GRANTのSQLは以下の通り

create role admin;
grant ALL on database default to role admin;
grant role admin to group hive;

create role common;
grant select on database default to role common;
grant role common to group centos;

きちんとGRANTされていれば、hdfs groupの権限ではtableも見れません。

$ kinit hdfs
Password for hdfs@HADOOP:
$ beeline
beeline> !connect jdbc:hive2://ip-10-0-1-111.ap-northeast-1.compute.internal:10000/default;principal=hive/ip-10-0-1-111.ap-northeast-1.compute.internal@HADOOP
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show tables;
...snip...
+-----------+--+
| tab_name  |
+-----------+--+
+-----------+--+

centos groupだとtableを見ることができます。

$ kinit centos
Password for centos@HADOOP:
$ beeline
beeline> !connect jdbc:hive2://ip-10-0-1-111.ap-northeast-1.compute.internal:10000/default;principal=hive/ip-10-0-1-111.ap-northeast-1.compute.internal@HADOOP
...snip...
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show tables;
...snip...
+------------+--+
|  tab_name  |
+------------+--+
| customers  |
| sample_07  |
| sample_08  |
| web_logs   |
+------------+--+
4 rows selected (0.272 seconds)

Sentry HDFS-ACL syncを有効にする

Sentry HDFS-ACL syncはSentryの権限の設定をHDFS ACLに対して同期するものです。
これは、指定したディレクトリ以下のHiveで管理されているデータに対してACLが設定されます。

詳しくはドキュメントを参照ください。
http://www.cloudera.com/documentation/enterprise/latest/topics/sg_hdfs_sentry_sync.html

CMのHDFSの設定で「Sentry同期の有効化」のチェックをONにします。

image

HDFS-ACL sync利用時のSentryの挙動

外部テーブルのHDFS-ACL syncの挙動を確認する

HDFS-ACL syncは通常、/user/hive/warehouse以下に作られるDB/テーブルのACL連携を使うことが多いと思います。
それでは、外部テーブルや別の場所にあるDBはどういう挙動をするのでしょうか?
確認してみたいと思います。

今回は、外部テーブルに使うデータを
https://catalog.data.gov/dataset/consumer-complaint-database からCSVをダウンロードし、
/user/centos/data/consumer_complaints/row.csv に置きました

$ wget -O raw.csv https://data.consumerfinance.gov/api/views/s6ew-h6mp/rows.csv?accessType=DOWNLOAD
$ kinit hdfs
$ hdfs dfs -mkdir /user/centos
$ hdfs dfs -chown centos:centos /user/centos
$ kinit centos
$ hdfs dfs -mkdir -p /user/centos/data/consumer_complaints
$ hdfs dfs -put rows.csv /user/centos/data/consumer_complaints/rows.csv

hive groupでチケットを発行して、beelineから外部テーブルを作ります。

$ kinit hive
$ beeline
!connect ...
create external table customer_complaints(
  date_received DATE, product STRING, subproduct STRING, 
  issue STRING, subissue STRING, consumer_complaint_narrative STRING,
  company_public_response STRING,
  company STRING, state STRING, zipcode STRING, tags STRING, consumer_consent_provided DATE, submitted_via STRING, date_sent_to_company DATE, company_response_to_consumer STRING,
  timely_response STRING, consumer_disputed STRING, complaint_id BIGINT 
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
stored as textfile
location '/user/centos/data/consumer_complaints/'
tblproperties ("skip.header.line.count"="1")
;
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show tables;
 ...snip...
+----------------------+--+
|       tab_name       |
+----------------------+--+
| customer_complaints  |
| customers            |
| sample_07            |
| sample_08            |
| web_logs             |
+----------------------+--+
5 rows selected (0.162 seconds)
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> select complaint_id from customer_complaints limit 10;
 ...snip...
+---------------+--+
| complaint_id  |
+---------------+--+
| 468882        |
| 468889        |
| 468879        |
| 468949        |
| 475823        |
| 468981        |
| 467801        |
| 475728        |
| 469026        |
| 469035        |
+---------------+--+
10 rows selected (0.187 seconds)

外部テーブルがある場所をCMからHDFS-ACL syncのターゲットに追加します。
今回は、/user/centos/dataを追加します。

image

HUEでACLを確認してみたところ、きちんとcustomer_complaintsのACLが設定されていることがわかります。ファイルやディレクトリのアイコンが青くなっているのがACLがセットされたものになります。(なお、hogeというファイルは別途ACLをテストでセットしたものです。)

image

HDFS-ACL syncのwarehouseディレクトリ以外のDBの挙動を確認する

今度は、HDFS-ACL syncを/user/hive/warehouse以外のDBに対して設定した場合の挙動を確認しましょう。
先程まで設定した /user/centos/data は何かしらのingestしたデータが入ってくる場所と考えて、
今回は/user/centos/dbをDB用のディレクトリにします。
なお、多くの場合個別ユーザの下にDBを作る必要はないと思いますが、今回は検証目的に作成してみます。

$ kinit centos
$ hdfs dfs -mkdir /user/centos/db

HDFS-ACL syncの設定をする前に、先に手動でACLを設定します。
/user/centos/dbに対してhiveが書き込みできるようにACLを設定します。

$ hdfs dfs -setfacl -m group:hive:rwx /user/centos/db
# file: /user/centos/db
# owner: centos
# group: centos
user:hive:rwx
group::r-x

/user/centos/dbにデータベースを作成します。

0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> create database centos
. . . . . . . . . . . . . . . . . . . . . . .> location '/user/centos/db'
. . . . . . . . . . . . . . . . . . . . . . .> ;
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| centos         |
| default        |
+----------------+--+
2 rows selected (0.238 seconds)

kinit hiveをしたあと、beelineで権限をcentosに付与します。
今回はcentosgroupにはcentosDBに対してすべての権限を付与します。

create role centos;
grant all on database centos to role centos;
grant role centos to group centos;

kinit centosをしたあと、DBの様子を確認してみましょう。

0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show databases;
..snip..
+----------------+--+
| database_name  |
+----------------+--+
| centos         |
| default        |
+----------------+--+
2 rows selected (0.267 seconds)

次にcentosDBにテーブルを作成します。
customer_complaintsのParquet形式のテーブルを作成してみます。

use centos;
create table customer_complaints_pq(
  date_received TIMESTAMP, product STRING, subproduct STRING, 
  issue STRING, subissue STRING, consumer_complaint_narrative STRING,
  company_public_response STRING,
  company STRING, state STRING, zipcode STRING, tags STRING, consumer_consent_provided TIMESTAMP, submitted_via STRING, date_sent_to_company TIMESTAMP, company_response_to_consumer STRING,
  timely_response STRING, consumer_disputed STRING, complaint_id BIGINT 
)
stored as parquet
;
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show tables;
...snip...
+-------------------------+--+
|        tab_name         |
+-------------------------+--+
| customer_complaints_pq  |
+-------------------------+--+
1 row selected (0.169 seconds)

テーブルができていますね。
そこにcustomer_complaintsテーブルからデータを流し込みます。

insert overwrite table customer_complaints_pq select * from default.customer_complaints;
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> select complaint_id, company from customer_complaints_pq limit 10;
...snip...
+---------------+-----------------------------+--+
| complaint_id  |           company           |
+---------------+-----------------------------+--+
| 468882        | Wells Fargo & Company       |
| 468889        | Wells Fargo & Company       |
| 468879        | Santander Bank US           |
| 468949        | Wells Fargo & Company       |
| 475823        | Franklin Credit Management  |
| 468981        | Bank of America             |
| 467801        | NRA Group, LLC              |
| 475728        | SunTrust Banks, Inc.        |
| 469026        | Citibank                    |
| 469035        | Wells Fargo & Company       |
+---------------+-----------------------------+--+
10 rows selected (0.257 seconds)

一通り設定したので、CMからACL syncのディレクトリに/user/centos/dbを追加します。

ACLの確認

最終的にできたACLはこんな感じになります。

image

/user/centos 以下のACLはこのような形になっています。
/user/centosに関しては手動で設定したものが残っています)

$ hdfs dfs -getfacl -R /user/centos
# file: /user/centos
# owner: centos
# group: centos
user::rwx
user:centos:rwx
group::r-x
mask::rwx
other::r-x

..snip..

# file: /user/centos/data
# owner: centos
# group: centos
user::rwx
group::r-x
other::r-x

# file: /user/centos/data/consumer_complaints
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/centos/data/consumer_complaints/rows.csv
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/centos/db
# owner: hive
# group: hive
user::rwx
group:centos:rwx
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/centos/db/customer_complaints_pq
# owner: hive
# group: hive
user::rwx
group:centos:rwx
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/centos/db/customer_complaints_pq/000000_0
# owner: hive
# group: hive
user::rwx
group:centos:rwx
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/centos/db/customer_complaints_pq/000001_0
# owner: hive
# group: hive
user::rwx
group:centos:rwx
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

/user/hive/warehouse 以下のACLはこのような形になっています。

$ hdfs dfs -getfacl -R /user/hive/warehouse
# file: /user/hive/warehouse
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/customers
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/customers/customers
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/sample_07
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/sample_07/sample_07
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/sample_08
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/sample_08/sample_08
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

# file: /user/hive/warehouse/web_logs
# owner: hive
# group: hive
user::rwx
group:centos:r-x
user:hive:rwx
group::---
group:hive:rwx
mask::rwx
other::--x

というわけで、Hive管理下のデータに関してSentryの権限ベースのものがHDFS-ACLに設定されているのがわかります。

一点気をつけてほしいのが、HDFS ACLのエントリ数は32までという制約があるため(HDFS-7447)、Sentryベースで管理するにしても権限を作りすぎるのは難しいので注意してください。

ACLの読み込み権限がない外部テーブルに対するhiveクエリ

customer_complaints テーブルについてACL権限を外した場合、どう挙動するかを調べてみます。

まずは確認のため、今までの挙動を見ておきます。

$ kinit hive
$ beeline
..snip..
0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> select * from customer_complaints limit 10;
INFO  : Compiling command(queryId=hive_20170123052323_aa3dffda-03fe-42f8-91c9-5779a5e9c58f): select * from customer_complaints limit 10
..snip..
Time taken: 0.004 seconds
INFO  : OK
+------------------------------------+------------------------------+----------------------------------------+-------------------------------------------+-------------------------------+---------------------------------------------------+----------------------------------------------+------------------------------+----------------------------+------------------------------+---------------------------+------------------------------------------------+------------------------------------+-------------------------------------------+---------------------------------------------------+--------------------------------------+----------------------------------------+-----------------------------------+--+
| customer_complaints.date_received  | customer_complaints.product  |     customer_complaints.subproduct     |         customer_complaints.issue         | customer_complaints.subissue  | customer_complaints.consumer_complaint_narrative  | customer_complaints.company_public_response  | customer_complaints.company  | customer_complaints.state  | customer_complaints.zipcode  | customer_complaints.tags  | customer_complaints.consumer_consent_provided  | customer_complaints.submitted_via  | customer_complaints.date_sent_to_company  | customer_complaints.company_response_to_consumer  | customer_complaints.timely_response  | customer_complaints.consumer_disputed  | customer_complaints.complaint_id  |
+------------------------------------+------------------------------+----------------------------------------+-------------------------------------------+-------------------------------+---------------------------------------------------+----------------------------------------------+------------------------------+----------------------------+------------------------------+---------------------------+------------------------------------------------+------------------------------------+-------------------------------------------+---------------------------------------------------+--------------------------------------+----------------------------------------+-----------------------------------+--+
| 07/29/2013                         | Consumer Loan                | Vehicle loan                           | Managing the loan or lease                |                               |                                                   |                                              | Wells Fargo & Company        | VA                         | 24540                        |                           | N/A                                            | Phone                              | 07/30/2013                                | Closed with explanation                           | Yes                                  | No                                     | 468882                            |
| 07/29/2013                         | Bank account or service      | Checking account                       | Using a debit or ATM card                 |                               |                                                   |                                              | Wells Fargo & Company        | CA                         | 95992                        | Older American            | N/A                                            | Web                                | 07/31/2013                                | Closed with explanation                           | Yes                                  | No                                     | 468889                            |
| 07/29/2013                         | Bank account or service      | Checking account                       | Account opening, closing, or management   |                               |                                                   |                                              | Santander Bank US            | NY                         | 10065                        |                           | N/A                                            | Fax                                | 07/31/2013                                | Closed                                            | Yes                                  | No                                     | 468879                            |
| 07/29/2013                         | Bank account or service      | Checking account                       | Deposits and withdrawals                  |                               |                                                   |                                              | Wells Fargo & Company        | GA                         | 30084                        |                           | N/A                                            | Web                                | 07/30/2013                                | Closed with explanation                           | Yes                                  | No                                     | 468949                            |
| 07/29/2013                         | Mortgage                     | Conventional fixed mortgage            | Loan servicing, payments, escrow account  |                               |                                                   |                                              | Franklin Credit Management   | CT                         | 06106                        |                           | N/A                                            | Web                                | 07/30/2013                                | Closed with explanation                           | Yes                                  | No                                     | 475823                            |
| 07/29/2013                         | Bank account or service      | Checking account                       | Deposits and withdrawals                  |                               |                                                   |                                              | Bank of America              | TX                         | 75025                        |                           | N/A                                            | Web                                | 07/30/2013                                | Closed with explanation                           | Yes                                  | No                                     | 468981                            |
| 07/29/2013                         | Debt collection              | Other (i.e. phone, health club, etc.)  | Cont'd attempts collect debt not owed     | Debt is not mine              |                                                   |                                              | NRA Group, LLC               | VA                         | 20147                        |                           | N/A                                            | Web                                | 08/07/2013                                | Closed with non-monetary relief                   | Yes                                  | No                                     | 467801                            |
| 07/29/2013                         | Debt collection              | I do not know                          | Cont'd attempts collect debt not owed     | Debt was paid                 |                                                   |                                              | SunTrust Banks, Inc.         | FL                         | 32818                        |                           | N/A                                            | Referral                           | 08/01/2013                                | Closed with explanation                           | Yes                                  | Yes                                    | 475728                            |
| 07/29/2013                         | Credit card                  |                                        | Billing statement                         |                               |                                                   |                                              | Citibank                     | OH                         | 45247                        |                           | N/A                                            | Referral                           | 07/30/2013                                | Closed with explanation                           | Yes                                  | Yes                                    | 469026                            |
| 07/29/2013                         | Mortgage                     | Other mortgage                         | Loan servicing, payments, escrow account  |                               |                                                   |                                              | Wells Fargo & Company        | NV                         | 89511                        |                           | N/A                                            | Referral                           | 07/30/2013                                | Closed with explanation                           | Yes                                  | Yes                                    | 469035                            |
+------------------------------------+------------------------------+----------------------------------------+-------------------------------------------+-------------------------------+---------------------------------------------------+----------------------------------------------+------------------------------+----------------------------+------------------------------+---------------------------+------------------------------------------------+------------------------------------+-------------------------------------------+---------------------------------------------------+--------------------------------------+----------------------------------------+-----------------------------------+--+
10 rows selected (0.261 seconds)

別コンソールでACLを設定変更します。

$ kinit centos
$ hdfs dfs -setfacl -m other::--- /user/centos/data/consumer_complaints
$ hdfs dfs -getfacl  /user/centos/data/consumer_complaints
# file: /user/centos/data/consumer_complaints
# owner: centos
# group: centos
user::rwx
group::---
group:centos:rwx
mask::rwx
other::---

beelineで同じクエリを発行すると、Permission deniedがでてアクセスできません。

0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> select * from customer_complaints limit 10;
Error: Error while compiling statement: FAILED: SemanticException Unable to determine if hdfs://ip-10-0-1-111.ap-northeast-1.compute.internal:8020/user/centos/data/consumer_complaints is encrypted: org.apache.hadoop.security.AccessControlException: Permission denied: user=hive, access=READ, inode="/user/centos/data/consumer_complaints":centos:centos:drwxrwx---
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkAccessAcl(DefaultAuthorizationProvider.java:365)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.check(DefaultAuthorizationProvider.java:258)
    at org.apache.hadoop.hdfs.server.namenode.DefaultAuthorizationProvider.checkPermission(DefaultAuthorizationProvider.java:175)
    at org.apache.sentry.hdfs.SentryAuthorizationProvider.checkPermission(SentryAuthorizationProvider.java:178)
    at org.apache.hadoop.hdfs.server.namenode.FSPermissionChecker.checkPermission(FSPermissionChecker.java:152)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:6632)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPermission(FSNamesystem.java:6614)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkPathAccess(FSNamesystem.java:6539)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getEZForPath(FSNamesystem.java:9221)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.getEZForPath(NameNodeRpcServer.java:1632)
    at org.apache.hadoop.hdfs.server.namenode.AuthorizationProviderProxyClientProtocol.getEZForPath(AuthorizationProviderProxyClientProtocol.java:928)
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.getEZForPath(ClientNamenodeProtocolServerSideTranslatorPB.java:1350)
    at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:617)
    at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1073)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2086)
    at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2082)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
    at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2080) (state=42000,code=40000)

なお、show tablesをした場合には、ACLのみの設定ではtableは見えてしまいます。

0: jdbc:hive2://ip-10-0-1-111.ap-northeast-1.> show tables;
...snip...
INFO  : OK
+----------------------+--+
|       tab_name       |
+----------------------+--+
| customer_complaints  |
| customers            |
| sample_07            |
| sample_08            |
| web_logs             |
+----------------------+--+
5 rows selected (0.264 seconds)
9
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3