presto集成kerberos以及訪問集成了kerberos的hive集群


1、創建主體

注:

192.168.0.230 為單節點集群

192.168.4.50kdc服務器

192.168.0.9為客戶端

1.1、Kdc服務器創建主體

# kadmin.local -q ‘addprinc -randkey presto’

#kadmin.local -q ‘addprinc -randkey presto/yjt’

1.2、創建秘鑰文件

# kadmin.local -q ‘xst -norandkey -k presto.keytab presto presto/yjt hive/yjt nn/yjt’

上述的hive/yjt nn/yjt兩個認證用戶也需要添加到秘鑰表,hive/yjt用於presto連接hive集群時使用,nn/yjt用戶操作hdfs時使用

1.3、分發秘鑰文件

# scp presto.keytab 192.168.0.230:/data1/hadoop/presto

如下操作在集群

# chmod 444 /data1/hadoop/presto/presto.keytab

1.4、生成keystore文件

presto主節點生成keystore

# keytool -genkeypair -alias localhost -keyalg RSA -keystore keystore.jks

輸入密鑰庫口令:  

再次輸入新口令:

您的名字與姓氏是什么?

  [Unknown]:  yjt

您的組織單位名稱是什么?

  [Unknown]:  

您的組織名稱是什么?

  [Unknown]:  

您所在的城市或區域名稱是什么?

  [Unknown]:  

您所在的省//自治區名稱是什么?

  [Unknown]:  

該單位的雙字母國家/地區代碼是什么?

  [Unknown]:  

CN=slave1, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown是否正確?

  []:  y

 

輸入 <localhost> 的密鑰口令

    (如果和密鑰庫口令相同, 按回車):  

再次輸入新口令:

注:上述的別名alias為當前的主機名,也可以使用localhost

 

2、修改presto配置文件

2.1、修改hive.properties

添加如下屬性:

#配置Presto訪問HiveMetastore服務的Kerberos信息,該段配置可以只存在PrestoCoordinator節點

hive.metastore.authentication.type=KERBEROS

hive.metastore.service.principal=hive/_HOST@HADOOP.COM

hive.metastore.client.principal=presto/yjt@HADOOP.COM

hive.metastore.client.keytab=/data1/hadoop/presto/presto.keytab

 

#配置Presto訪問HDFSKerberos信息,改段配置可以只存在PrestoWorker節點

hive.hdfs.authentication.type=KERBEROS

hive.hdfs.impersonation.enabled=true

hive.hdfs.presto.principal=nn/_HOST@HADOOP.COM

hive.hdfs.presto.keytab=/data1/hadoop/presto/presto.keytab

2.1、修改jvm.properties

添加如下屬性:

-Dsun.security.krb5.debug = true

-Dlog.enable-console = true

-Djava.security.krb5.conf=/etc/krb5.conf

2.2、修改config.properties

添加如下屬性:

http-server.authentication.type=KERBEROS

 

http.server.authentication.krb5.service-name=presto

http.server.authentication.krb5.keytab=/data1/hadoop/presto/presto.keytab

http.authentication.krb5.config=/etc/krb5.conf

 

http-server.https.enabled=true

http-server.https.port=7778

 

http-server.https.keystore.path=/data1/hadoop/presto/keystore.jks

#http-server.https.keystore.path=/data1/hadoop/keystore/keystore

http-server.https.keystore.key=123456

 

注:上述的http-server.https.keystore.key值為創建keystore時輸入的密碼。

2.3、重啟presto

# launcher restart

3、測試

$ presto --server https://yjt:7778 --krb5-config-path /etc/krb5.conf --krb5-principal presto/yjt --krb5-keytab-path /data1/hadoop/presto/presto.keytab --krb5-remote-service-name presto --keystore-path /data1/hadoop/keystore/keystore --keystore-password 123456 --catalog hive --schema default

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM