我已经创建了Linux Azure VM并在其上运行Java应用程序。然后我创建了具有hdfs,yarn,spark等的HDInsight Spark Cluster。
我已使用VM上core-site.xml中的存储访问密钥将VM与Spark群集连接起来。
芯-site.xml中
<property>
<name>fs.azure.account.key.YOUR_ACCOUNT.blob.core.windows.net</name>
<value>Storage_Access_Key</value>
</property>
我可以用上面的方式验证我的应用程序。但我想在Azure VM上的Azure Blob存储(WASB)中使用Kerberos对我的JAVA应用程序进行身份验证。
是否有任何可能的选项和文档?请帮助我
答案 0 :(得分:1)
首先,请确保已为HDInsight配置了Kerberos身份验证。如果不确定,请参阅hortonworks官方文档https://docs.hortonworks.com/HDPDocuments/Ambari-2.1.2.1/bk_Ambari_Security_Guide/content/ch_configuring_amb_hdp_for_kerberos.html来执行此操作。
其次,您可以尝试引用Hadoop官方document进行身份验证与Kerberos配置您的webapp。
或者您可以在编程中手动对Kerberos进行身份验证,如下所示。
import org.apache.hadoop.security.UserGroupInformation;
import org.apache.hadoop.conf.Configuration
Configuration conf = new Configuration();
conf.set("hadoop.security.authentication", "Kerberos");
UserGroupInformation.setConfiguration(conf);
UserGroupInformation.loginUserFromKeytab("<username>", "/path/to/kerberos.keytab");
然后
FileSystem fs = FileSystem.get(conf);