我已经创建了 Linux Azure VM 并在其上运行 Java 应用程序。然后我创建了 HDInsight Spark Cluster,其中包含 hdfs、yarn、spark 等。
我已使用虚拟机上 core-site.xml 中的存储访问 key 将虚拟机与 Spark 集群连接起来。
核心站点.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 应用程序进行身份验证。
是否有任何可能的选项和文档?请帮助我
最佳答案
首先,请确保已为 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 进行身份验证来配置您的 Web 应用程序。
或者您可以在编程中手动使用 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);
关于java - Azure VM 中的 WASB 是否支持 Kerberos 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41427731/