HDInsight Kafka群集无法访问主存储Blob帐户

时间:2018-07-02 06:26:15

标签: azure apache-kafka azure-storage hdinsight

我使用blob存储(通用v1)作为主存储旋转了Kafka集群。没有附加其他存储。但是,kafka节点无法访问同一存储上的Blob文件。 Spark / R群集可以访问同一Blob上的文件。 我创建了另一个kafka群集,但是问题仍然存在。我为每个群集提供了不同的容器名称。

命令:hdfs dfs -ls wasb://elckafka2@demostoragepoc.blob.core.windows.net/

错误:

  

ls:org.apache.hadoop.fs.azure.AzureException:未找到凭据   配置中的帐户dem​​ostoragepoc.blob.core.windows.net,   并且其容器elckafka2无法使用匿名访问   证书。请首先检查容器是否存在。如果不是   公开可用,您必须提供帐户凭据。

谢谢!

2 个答案:

答案 0 :(得分:0)

  

注意存储帐户中未连接到的专用容器   集群:除非您不访问容器中的Blob   提交WebHCat作业时定义存储帐户。

为您的理解,我创建了以下三个容器;

enter image description here

如果使用HDInsight访问容器,则对于私有 blob 公共访问级别,您将收到相同的错误消息,并为容器提供所需的输出公共访问级别。

enter image description here

有关更多详细信息,请参阅“ HDInsight Storage architecture”和“ Hadoop Azure Support: Azure Blob Storage”。

答案 1 :(得分:0)

在您的core-site.xml中,确保您具有:

<property>
  <name>fs.default.name</name>
  <value>wasb://default@(your account name).blob.core.windows.net</value>
</property>
<property>
  <name>fs.azure.account.key.(your account naume).blob.core.windows.net</name>
  <value>(your long hash value from the portal)</value>
</property>

然后确保将该文件传播到集群中所有节点的所有,并确保重新启动读取该文件的所有操作。